NEWS
[gelöst] Skript auf AXIOS/httpGet umbauen
-
@latzi sagte in [gelöst] Skript auf AXIOS/httpGet umbauen:
@heinz527
versuche mal alle JSON.parse(result) durch JSON.parse(response.data) zu ersetzenes geht um Blockly!
Deswegen soll @heinz527 screenshot mit den betroffenen Blöcken zeigen
...und ja, da werden noch result Blöcke drin sein
-
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):

-
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 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.
-
@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!
-
@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.
@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.
-
@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
-
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
-
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 :)
