NEWS
[Gelöst] Http Befehl toggle scheint der falsche zu sein
-
Hallo zusammen
Brauche nun auch mal Eure Hilfe. Ich habe mir mit Hilfe dieses Forums ein Skript zusammen gebaut. Das schaut wie folgt aus:
var request = require('request'); var fs = require('fs'); function sendImage() { request.get({url: 'http://IP/snap.jpeg', encoding: 'binary'}, function (err, response, body) { fs.writeFile("/opt/snap.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', {text: 'Es hat soeben geklingelt!'}); sendTo('telegram.0', '/opt/snap.jpg'); //sendTo('telegram.0', {text: '/opt/snap.jpg', caption: 'Snapshot'}); } }); }); } on("javascript.0.Geklingelt", function (obj) { if (obj.state.val) { // send 4 images: immediately, in 5, 15 and 30 seconds sendImage(); setTimeout(sendImage, 5000); setTimeout(sendImage, 15000); setTimeout(sendImage, 30000); }Das Skript funktioniert soweit. Mein Problem liegt beim Triggern des Skripts. Wie Ihr seht wird das Skript beim verändern des Datenpunktes "javascript.0.Geklingelt" gestartet. Der Auslöser dazu ist ein http Befehl.
Dieser ist wie folgt:
http://IP:8087/toggle/javascript.0.GeklingeltLeider wird das Skript nur bei jedem 2. Klingeln gestartet. Muss ich anstatt toggle einen anderen Befehl wählen? Die Frage ist nur welcher und wie muss der http Befehl dann lauten?
Danke für Eure Hilfe.
Gruss
-
Hallo zusammen
Brauche nun auch mal Eure Hilfe. Ich habe mir mit Hilfe dieses Forums ein Skript zusammen gebaut. Das schaut wie folgt aus:
var request = require('request'); var fs = require('fs'); function sendImage() { request.get({url: 'http://IP/snap.jpeg', encoding: 'binary'}, function (err, response, body) { fs.writeFile("/opt/snap.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', {text: 'Es hat soeben geklingelt!'}); sendTo('telegram.0', '/opt/snap.jpg'); //sendTo('telegram.0', {text: '/opt/snap.jpg', caption: 'Snapshot'}); } }); }); } on("javascript.0.Geklingelt", function (obj) { if (obj.state.val) { // send 4 images: immediately, in 5, 15 and 30 seconds sendImage(); setTimeout(sendImage, 5000); setTimeout(sendImage, 15000); setTimeout(sendImage, 30000); }Das Skript funktioniert soweit. Mein Problem liegt beim Triggern des Skripts. Wie Ihr seht wird das Skript beim verändern des Datenpunktes "javascript.0.Geklingelt" gestartet. Der Auslöser dazu ist ein http Befehl.
Dieser ist wie folgt:
http://IP:8087/toggle/javascript.0.GeklingeltLeider wird das Skript nur bei jedem 2. Klingeln gestartet. Muss ich anstatt toggle einen anderen Befehl wählen? Die Frage ist nur welcher und wie muss der http Befehl dann lauten?
Danke für Eure Hilfe.
Gruss
@drapo sagte:
Leider wird das Skript nur bei jedem 2. Klingeln gestartet.
Lass die Abfrage in Zeile 20 weg
on("javascript.0.Geklingelt", function () { // send 4 images: immediately, in 5, 15 and 30 seconds sendImage(); setTimeout(sendImage, 5000); setTimeout(sendImage, 15000); setTimeout(sendImage, 30000); }); -
@drapo sagte:
Leider wird das Skript nur bei jedem 2. Klingeln gestartet.
Lass die Abfrage in Zeile 20 weg
on("javascript.0.Geklingelt", function () { // send 4 images: immediately, in 5, 15 and 30 seconds sendImage(); setTimeout(sendImage, 5000); setTimeout(sendImage, 15000); setTimeout(sendImage, 30000); }); -
@paul53 geht leider nicht. Jetzt läuft es auch jedes 2. Mal nicht mehr. Jetzt läuft es gar nicht mehr. Sonst noch jemand einen Tip?
@drapo sagte:
Jetzt läuft es gar nicht mehr.
Dann hast Du einen Fehler eingebaut. Der Trigger muss bei jeder Wertänderung (toggle) auslösen. Oder hast Du das Kommando geändert ?
Dieser ist wie folgt:
http://IP:8087/toggle/javascript.0.Geklingelt -
@drapo sagte:
Jetzt läuft es gar nicht mehr.
Dann hast Du einen Fehler eingebaut. Der Trigger muss bei jeder Wertänderung (toggle) auslösen. Oder hast Du das Kommando geändert ?
Dieser ist wie folgt:
http://IP:8087/toggle/javascript.0.Geklingelt -
@paul53 hast recht. hatte noch einen Fehler drin. Funktioniert einwandfrei. Vielen Dank für die Hilfe.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden