NEWS
[gelöst] Telegram wird im Blockly Script nicht ausgelöst
-
Hallo,
ich benötige eure Hilfe bei folgendem Blockly Script;![Bild Text]( Bild Link)
Das Script löst keine Nachricht aus, sobald ein Update vorliegt. Die Objekt ID ist als Zahl angelegt. Die Variable "Tele" habe ich erstmal deaktiviert, aber liegt es wohl nicht.
Danke für eure Hilfe -
@heinhan
Schonmal den ersten Fehler ....Heißen deine Empfänger so !
Tipp ,
wandel es in JS um , dann siehst du es auch wofür das Feld ist ...... -
@Glasfaser Danke für Deinen Tipp. habe ich angepasst/gelöscht und in JS umgewandelt:
var Tele; // Adapter Updates per Telegram melden on({id: 'admin.0.info.updatesNumber', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (Tele == false && (obj.state ? obj.state.val : "") > 0) { Tele = true; sendTo("telegram.0", "send", { text: 'Es sind Updates im ioBroker vorhanden' }); } else if ((obj.state ? obj.state.val : "") < 1) { Tele = false; sendTo("telegram.0", "send", { text: 'Es sind keine Updates im ioBroker vorhanden' }); } });
Im Log gibt es keine Fehlermeldung aber weiterhin keine Nachricht bei Änderung der "admin.0.info.updatesNumber"
-
Mit deiner Variabe Tele sperrst du weitere Updatemitteilungen , das heist bei dir
Update 0 vorhanden , dann kommt ein Update 1 , wenn ein weiteres Update kommst dann geht der Zähler vom Datenpunkt admin.0.info.updatesNumber hoch als 2 , aber dieser wird dann nicht mehr angezeit usw. 3,4,5 .
Also nur Beispiel : bei Stand 0 dann 1 und du machst sofort ein Update .Du kannst es auch so machen wenn gewünscht .
// Adapter Updates per Telegram melden on({id: 'admin.0.info.updatesNumber', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") > 0) { sendTo("telegram.0", "send", { text: 'Es sind Updates im ioBroker vorhanden' }); } else if ((obj.state ? obj.state.val : "") < 1) { sendTo("telegram.0", "send", { text: 'Es sind keine Updates im ioBroker vorhanden' }); } });
hast du denn mal dein Telegram getestet ob es überhauft funktioniert .
Nimm dieses Scriptschnipsel und starte es einmal .sendTo("telegram", "send", { text: 'Test' });
Du kannst ruhig weiter mit Blockly arbeiten .
Mit "wandel es in JS um , dann siehst du es auch wofür das Feld ist ......"
meinte ich , du kann es mit dem Button umschalten und wieder zurück .
So lernt man JS ....wie es aufgebaut ist . -
@Glasfaser Leider erhalte ich immer noch keine Meldung von Telegram. Dein Scriptschnipsel funkioniert probemlos. Hier meine LOG dazu, hatte ein Update ausgeführt, steht jetzt wieder auf Null:
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1581951154160, "common": { "name": "Number of adapters to update", "role": "indicator.updates", "type": "number", "def": 0, "read": true, "write": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "admin.0.info.updatesNumber", "type": "state" }
Woran kann es liegen?
-
@heinhan zwar nicht mit telegram, e-mail Adapter wird benötigt
https://github.com/foxriver76/iot-blog-scripts/tree/master
https://github.com/foxriver76/iot-blog-scripts/blob/master/checkForAdapterUpgrades.js
https://github.com/foxriver76/iot-blog-scripts/blob/master/checkForAdapterUpgradesAdmin36.js -
@Glasfaser Ich habe den Raspi4 neu gestartet, jetzt habe ich eine Meldung über 0 Updates per Telegram erhalten.
Dann sollte es wohl auch bei neuen Updatern klappen. Warte ab bis eins vorliegt und melde mich dann abschließend -
@crunchip Danke für die links, eine gute alternative. Werde ich testen.