NEWS
Zustand einer Variable wird dauerhaft per Telegram gesendet
-
Guten Abend,
für das folgende Problem habe ich mich hier schon komplett durch das Skripting-Forum gelesen, komme aber dennoch nicht ans Ziel.
Der installierte hm_pdetect in der Homematic ändert eine Systemvariable bei Anwesenheit auf "TRUE". Diese wird über den unten stehenden Code abgefragt
und wenn der Wert "TRUE" ist, ein Text über Telegram versendet.
Mein Problem:
Mit "on" wird die Variable durchgehend belauscht & ich bekomme unendlich viele Nachrichten per Telegram.
Gibt es eine Funktion, die nur bei Änderung der Variable von TRUE/FALSE auslöst?
on({id:"hm-rega.0.1237"/*Anwesenheit.Klaus*/, val: true}, function() { sendTo('telegram', "Klaus ist zu Hause"); });
Meine Idee wäre ansonsten noch die letzte Änderungszeit der Variable zu vergleichen und darüber dann nur einmal auszulösen.
Das kann ich mit meinen schlechten Java-Script Kenntnissen aber nicht umsetzen.
Bin um jede Hilfe dankbar.
Gruß Micha 8-)
-
Guten Abend,
für das folgende Problem habe ich mich hier schon komplett durch das Skripting-Forum gelesen, komme aber dennoch nicht ans Ziel.
Der installierte hm_pdetect in der Homematic ändert eine Systemvariable bei Anwesenheit auf "TRUE". Diese wird über den unten stehenden Code abgefragt
und wenn der Wert "TRUE" ist, ein Text über Telegram versendet.
Mein Problem:
Mit "on" wird die Variable durchgehend belauscht & ich bekomme unendlich viele Nachrichten per Telegram.
Gibt es eine Funktion, die nur bei Änderung der Variable von TRUE/FALSE auslöst?
on({id:"hm-rega.0.1237"/*Anwesenheit.Klaus*/, val: true}, function() { sendTo('telegram', "Klaus ist zu Hause"); });
Meine Idee wäre ansonsten noch die letzte Änderungszeit der Variable zu vergleichen und darüber dann nur einmal auszulösen.
Das kann ich mit meinen schlechten Java-Script Kenntnissen aber nicht umsetzen.
Bin um jede Hilfe dankbar.
Gruß Micha 8-) `
So sollte gehen:on("hm-rega.0.1237"/*Anwesenheit.Klaus*/, function(obj) { if (obj.state.val) sendTo('telegram', "Klaus ist zu Hause"); });
-
Besten dank! Manchmal sieht man den Wald vor lauter Bäumen nicht :lol:
Das werde ich gleich mal testen.
Gruß Micha 8-)
-
So sollte gehen:
on("hm-rega.0.1237"/*Anwesenheit.Klaus*/, function(obj) { if (obj.state.val) sendTo('telegram', "Klaus ist zu Hause"); }); ```` `
oder so:
on({id:"hm-rega.0.1237"/*Anwesenheit.Klaus*/, val: true, change: "ne"}, function() { sendTo('telegram', "Klaus ist zu Hause"); });