NEWS
Script Hilfe: Pushover bei Variablen Wechsel
-
Hallo zusammen,
ich habe in der Wohnung eine Anzeige einer Variable, ob ich die Waschmachiene läuft oder nicht.
Kann mir einer eine Script bauen, wenn ein Wert von True auf false wechselt, dass dan eine Pushover Info raus geht?
Danke im voraus
-
Versuche mal:
var idWaschmaschine = "hm-rega.0.5541"/*Waschmaschine*/; // anpassen!!! on({id:idWaschmaschine,change:'ne'}, function (obj) { if (obj.state.val) { sendTo("pushover", "Waschmaschine ist an"); } else { sendTo("pushover", "Waschmaschine ist aus"); } });
Ein paar Infos mehr wären gut:
-
die ID Deiner Variable
-
welche Werte kann Deine Variable annehmen
Ansonsten könnte es so schon funktionieren, wenn Du die ID anpasst.
-
-
oder so:
var idWaschmaschine = "hm-rega.0.5541"/*Waschmaschine*/; // anpassen!!! on({id:idWaschmaschine, change:'ne', val: false}, function () { sendTo("pushover", "Waschmaschine ist aus"); });
-
Hallo,
der Datenpunkt lautet:
"hm-rega.0.5809"/Waschküche/
Der Wert lautet "True" wenn die Waschmaschine läuft, und "False" wenn Sie dann fertig ist.
Ich werde einmal das Script vom Paul testen.
DANKE
-
Hallo zusammen,
Es klappt. Sagen wir so, es macht was ich angefragt habe.
var idWaschmaschine = "hm-rega.0.5809"/*Waschküche*/ on({id:idWaschmaschine, change:'ne', val: false}, function () { sendTo("pushover", "Waschmaschine / Trokner ist fertig"); });
Aber jetzt kommt die Meldung immer, auch wenn die Waschmaschine nur eine Pause macht.
Wie bau ich da noch eine 3 min Pause ein. Dh, wenn der Status "False" mindestens 3 Minuten ansteht, wird die Info verschickt.
-
Wie bau ich da noch eine 3 min Pause ein. Dh, wenn der Status "False" mindestens 3 Minuten ansteht, wird die Info verschickt. `
var idWaschmaschine = "hm-rega.0.5809"/*Waschküche*/ on({id:idWaschmaschine, change:'ne', val: false}, function () { // wenn von true auf false wechselt, rufe warte-Funktion auf warten(); }); function warten() { setTimeout(waittime, 3 * 60000); // Warteschleife, 3 * 1 Minute und rufe dann waittime auf } function waittime() { // Nach der Warteschleife, prüfe ob noch false und sende dann var waschmaschine = getState(idWaschmaschine).val; if (waschmaschine === false) sendTo("pushover", "Waschmaschine / Trockner ist fertig"); }
Könnte so klappen. Wenn der Wechsel von true auf false erfolgt und es genau 3 Minuten später noch false ist dann Pushovernachricht. Aber ich vermute dann kommen trotzdem 2-3 Nachrichten am Ende durch.
Ich würde den Ansatz anders machen: die idWaschmaschine schon auf den echten Waschmaschinenstatus setzen, also diese Variable, wo auch immer die erzeugt wird, so einstellen dass sie erst auf false springt wenn 3 Minuten kein Stromverbrauch, und dann das Script von Paul nehmen. .
-
Wie bau ich da noch eine 3 min Pause ein. `
var idWaschmaschine = "hm-rega.0.5809"/*Waschküche*/; var timer = null; on(idWaschmaschine, function (dp) { // bei Änderung auslösen if(timer) clearTimeout(timer); // Stopp Timer if(!dp.state.val) { // Änderung von true auf false timer = setTimeout(function() { sendTo("pushover", "Waschmaschine / Trockner ist fertig"); }, 3 * 60000); // 3 Minuten Verzögerung } });
EDIT: Kommentare hinzugefügt
-
Hallo Solear,
eigentlich hast du Recht.
Da ich dieses Variable auch noch auf dem Display im Flur anzeige, sollte ich die Variable patchen.
Mir ist das hin und her wechseln der Anzeige in der Vergangenheit nie aufgefallen 8-). Wieder ein Fehler beseitigt.
Ich erzeuge die Variable in der CCU2. (Das bekomme ich recht leicht hin). Da habe ich jetzt eine Verzögerung eingesetzt.
Danke.
Aber auch an Paul Danke. Ich denke ich werde das Script noch an vielen anderen Stellen nutzen!!!