NEWS
[gelöst] Skript auf AXIOS/httpGet umbauen
-
Danke für die schnellen Rückmeldungen!
Weiter oben stand es sollte jemand die xml posten, daher hatte ich die Blockly nicht gepostet.
OK, dann hier das Neue (ja, da steht noch was mit result drin):
-
@heinz527 alle RESULT durch diesen Block ersetzen:
-
DANKESCHÖN!!!!
Damit kommen wieder Werte!
Achso: Mich nerven Warnmeldungen (Ist mein innerer Monk.....)
Danke an alle für die schnelle Hilfe!!!!
-
@heinz527 sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:
Sauberer wäre es übrigens, wenn Du eine neue Variable anlegst und nur 1x "JSON nach Objekt" aufrufst. Und dann diese immer wieder in den "Attribut von Objekt..."-Bausteinen verwendest.
-
Hm.... Da muss ich mich mal in Ruhe mit beschäftigen. Bin ja damals schon froh gewesen, dass ich es hinbekommen habe
Danke für den Hinweis!
-
@haus-automatisierung sagte: nur 1x "JSON nach Objekt" aufrufst. Und dann diese immer wieder in den "Attribut von Objekt..."-Bausteinen verwendest.
getAttr() wandelt selbst JSON in ein Objekt.
-
@paul53 Klar, aber dann auch bei jedem Aufruf. Daher besser direkt ein Objekt reingeben
-
Hallo, ich habe folgendes Skript um mir beim Klingeln ein Bild schicken zu lassen. Leider kenne ich mich nicht mit java aus. kann mir bitte jemand mein Skript so umschreiben, dass ich folgende Fehlermeldung nicht mehr erhalten:
script.js.Klingel.Haustürklingel_Snapshot: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
Das Skript ist folgendes:
var request = require('request'); var fs = require('fs'); function sendImage() { request.get({url: 'http://192.168.1.71/api/camera/snapshot?width=1280&height=960', encoding: 'binary'}, function (err, response, body) { fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', {text: '/tmp/snap.jpg', caption: 'Es hat geklingelt'}); } }); }); } on({id: '0_userdata.0.Klingel-Haustuere-Bewegung.Klingel-Haustuere-aktiv', change: "any"}, function (obj) { if (obj.state.val) { sendImage(); //setTimeout(sendImage, 1000); } });
Danke euch schonmal
-
on({ id: '0_userdata.0.Klingel-Haustuere-Bewegung.Klingel-Haustuere-aktiv', change: 'any' }, async (obj) => { if (obj.state.val) { httpGet('http://192.168.1.71/api/camera/snapshot?width=1280&height=960', { timeout: 5000, responseType: 'arraybuffer' }, async (err, response) => { sendTo('telegram.0', 'send', { text: createTempFile('snap.jpg', response.data), caption: 'Es hat geklingelt', }); }); } });
Alternativ komplett per Blockly (ohne JS), siehe https://forum.iobroker.net/topic/29229/iobroker-windows-kamerabild-blockly/8
-
vielen lieben Dank -> funktioniert