NEWS
Java Script startet nicht von Blockly aus
-
Hallo zusammen,
ich möchte hier ein Thema aufnehmen und um eure Hilfe bitten, da ich mittlerweile fast verzweifle und auch an mir zweifle. :?
Ich habe das Klingelbild Script von ([viewtopic.php?f=22&t=2912&sid=48bb7ccf2 … 1d1#p26352]) für mich umgesetzt.
Der Code an sich läuft manuell angestoßen sauber rund, schickt das Bild an die Telegram Gruppe und setzt sich nach 12 Sekunden selbst wieder zurück auf „false“, wie es sein soll.
Will ich jetzt jedoch das Skript über Blockly durch einen Trigger State starten, so wird das Skript automatisch angestoßen (State des Skripts wechselt auf „true“) aber dann hängt er scheinbar.
Kein Bild, keine automatischer Reset, es bleibt einfach stehen mit dem True Status.
Hat jemand eine Idee woran es liegen kann ?
Bildscript:
/* BILDSPEICHERUNG Obergeschoss soll bei Aktion Webcam Bild speichern und per telegram senden Skript ist normalerweise inaktiv und wird per ScriptEnabled ausgelöst */ var source_url = 'http://User:PWD@192.168.xxx.xxx/Streaming/channels/102/picture', // Kamerabild zB http://kameraserver:9090/image1.jpg dest_path = '/opt/iobroker/iobroker-data/klingelbild/'; var request = require('request'); var fs = require('fs'); // Bild an telegram schicken (immer Dienst 3) function sendImage (pfad) { setTimeout(function() { sendTo('telegram.0', {text: '/opt/iobroker/iobroker-data/klingelbild/image2.jpg', chatId: '-27xxxxx30'}); log('Webcam Bild OG per telegram verschickt'); }, 2 * 1000); } // Bild speichern function saveImage() { request.get({url: source_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + 'image2.jpg', body, 'binary', function(err) { if (err) { log('Fehler beim Bild OG speichern: ' + err, 'warn'); } else { log('Webcam Bild OG gespeichert'); sendImage(dest_path + 'image2.jpg'); } }); }); } // bei Skriptstart ausführen saveImage(); // selbständig Skript wieder anhalten (nach 12s) setStateDelayed('javascript.' + instance + '.scriptEnabled.' + name.slice(10), false, 12*1000);
Log Meldung nach erfolgtem Start über Blockly:
javascript.0 2019-01-18 22:30:52.801 info script.js.Meine_Skripte.Klingeln.Benachrichtigung_Bild_OG: registered 1 subscription and 0 schedules
javascript.0 2019-01-18 22:30:52.793 info Start javascript script.js.Meine_Skripte.Klingeln.Benachrichtigung_Bild_OG
Blockly Script:
Danke und Gruß
Newi
-
Der Befehl sollte innerhalb des Triggers stattfinden.
Also den einzelnen Block direkt unter den Telegram Block setzen
-
Hallo Cruunnerr,
danke für den Tip, aber auch im Triggerbereich wird der JS-Script nicht gestartet ! :evil:
Jetzt bleibt auch der log ohne jeglichen Eintrag.
Noch weitere Ideen ?
Gruß Newi
-
Es gibt unter Blockly auch den Block Javascript-Funktion (unter Funktionen), damit soll sowas besser durchgeführt werden. Scripte durch andere Scripte zu starten und zu stoppen ist nicht die beste Lösung!
Musst du mal probieren, ich habe das bisher noch nicht ausprobiert!
Enrico
-
Was ist denn Obergeschoss Klingel.STATE (ein button oder switch ?)
Wenn es ein button ist, der steht immer auf wahr, der muß auf wurde aktualisiert getriggert werden.
-
Hallo dslraser,
also der State ist ein button und steht richtigerweise auf true.
Egal worauf ich trigger (false oder aktualisieren) wird zwar der Text an Telegram geschickt aber es kommt kein Bild.
Habe gerade mit dem Ansatz der Funktionen von Enrico ein Bild mitgeschickt.
Werde ich jetzt mal detailliert testen.
Gruß Newi
-
Hallo zusammen,
also die Idee von Enrico mit der "Javascript Funktion" scheint bestens geklappt zu haben.
Ich häng den jetzigen Blockly der läuft mal dran, für diejenigen die es interessiert.
Danke Enrico ! …und natürlich auch allen anderen.
Gruß Newi
-
Danke für die Rückmeldung!
Enrico