NEWS
Pushover mit zwei Variablen
-
Hallo zusammen,
eine Pushover zu verschicken funktioniert schon bei mir. In meinem Beispiel, eine Nachricht wenn die Alarmanlage eingeschaltet ist (siehe unten).
Jetzt hätte ich gerne eine Erweiterung, dass eine weitere Meldung kommt wenn bei aktiver Alarmanlage der Bewegungssensors anschlägt.
var idAlarm = "hm-rega.0.26379"/*Alarmanlage*/; on({id:idAlarm, change:'ne', val: true}, function () { warten(); }); function warten() { setTimeout(waittime, 1 * 2000); // Warteschleife, 1 * 2 Sekunden und rufe dann waittime auf } function waittime() { var Alarm = getState(idAlarm).val; if (Alarm === true) sendTo("pushover", "Alarmanlage AKTIVIERT"); }
Wie müsste ich den Code erweitern/abändern? Über eine Nachricht wäre ich Euch dankbar.
Viele Grüße
Balu der Bär
-
Hallo,
neu sind die erste Zeile (bitte anpassen) und die Subscription am Schluss.
var idMotion = "hm-rpc.0.xxxxxx"; // Bewegungsmelder Datenpunkt MOTION var idAlarm = "hm-rega.0.26379"/*Alarmanlage*/; on({id:idAlarm, change:'ne', val: true}, function () { warten(); }); function warten() { setTimeout(waittime, 1 * 2000); // Warteschleife, 1 * 2 Sekunden und rufe dann waittime auf } function waittime() { var Alarm = getState(idAlarm).val; if (Alarm === true) sendTo("pushover", "Alarmanlage AKTIVIERT"); } on({id:idMotion, val: true}, function () { var Alarm = getState(idAlarm).val; if (Alarm === true) sendTo("pushover", "Alarmanlage aktiviert UND BEWEGUNG!"); });
Das sendet die Meldung "Alarmanlage aktiviert UND BEWEGUNG!" immer dann, wenn bei aktiviert Alarmanlage der Bewegungsmelder anschlägt (Ich gehe von einem HM-Bewegungsmelder aus).
Teste erstmal. Es kann später sinnvoll sein, eine kleine Entprellung einzubauen, damit nicht wirklich jede Auslösung gemeldet wird.
Gruß
Pix
-
Hallo Pix,
danke für deine schnelle Antwort. Vielleicht hab ich mich ein wenig unklar ausgedrückt.
Die 1. Pushover Meldung kommt wenn die Alarmanlage scharf geschaltet wurde. Jetzt möchte ich, dass jedes Mal eine Meldung kommt, wenn ein Bewegungsmelder auslöst. Und zwar nur dann, wenn die Alarmanlage scharf ist.
Sinngemäß: Wenn Alarmanlage = scharf und Bewegung erkannt, dann schicke Pushover mit der Meldung "Bewegung erkannt".
Gruß Balu der Bär
Nachtrag: Habe es jetzt so umgesetzt und bin zufrieden. Danke für deinen Tipp Pix
var idMotion = "hm-rpc.0.KEQxxxxx.1.MOTION"; // Bewegungsmelder EZ Datenpunkt MOTION var idAlarm = "hm-rega.0.xxxx"/*Alarmanlage*/; on({id:idAlarm, change:'ne', val: true}, function () { warten(); }); on({id:idMotion, val: true}, function () { var Alarm = getState(idAlarm).val; if (Alarm === true) sendTo("pushover.1", "Motion Esszimmer"); });
-
Hallo Pix,
kannst du nochmal über dieses Skript schauen. Bin da nicht so bewandert drin.
Das Skript soll bei aktiver Alarmanlage (hm-rega.0.263xx) eine Meldung per Pushover rausgeben, wenn z.B. der Tür-Fensterkontakt (hm-rpc.0.MEQ0285xxx.1.STATE) auslöst.
var idMotion = "hm-rpc.0.MEQ0285xxx.1.STATE"; // Türkontakt Nebeneingang UG Datenpunkt var idAlarm = "hm-rega.0.263xx"/*Alarmanlage*/; on({id:idAlarm, change:'ne', val: true}, function () { warten(); }); function warten() { setTimeout(1 * 500); // Warteschleife, 1 * 500 Millisekunden und rufe dann waittime auf } on({id:idMotion, val: true}, function () { var Alarm = getState(idAlarm).val; if (Alarm === true) sendTo("pushover.1", "UG: Nebeneingang OFFEN"); });
Nachdem Alarmanlage scharf geschaltet wurde, erhalte ich folgende Fehlermeldung:
` > host.pi_iobroker 2017-07-29 14:19:48.723 info Restart adapter system.adapter.javascript.0 because enabledhost.pi_iobroker 2017-07-29 14:19:48.722 error instance system.adapter.javascript.0 terminated with code 0 (OK)
javascript.0 2017-07-29 14:19:48.679 info terminating
javascript.0 2017-07-29 14:19:48.663 error at Timer.listOnTimeout (timers.js:214:5)
javascript.0 2017-07-29 14:19:48.663 error at tryOnTimeout (timers.js:250:5)
javascript.0 2017-07-29 14:19:48.663 error at ontimeout (timers.js:399:18)
javascript.0 2017-07-29 14:19:48.663 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2068:44)
javascript.0 2017-07-29 14:19:48.663 error TypeError: callback.call is not a function
javascript.0 2017-07-29 14:19:48.662 error uncaught exception: callback.call is not a function
sayit.0 2017-07-29 14:19:35.396 info saying: Sind alle Fenster und Türen geschlossen? `
Wie man sehen kann verabschiedet sich auch der Java-Adapter und brauch ein paar Sekunden, bis er wieder einsatzbereit ist.Vorab besten Dank und ein schönes Wochenende.
Gruß Martin
-
Hallo,
da fehlt die Funktion waittime(), welche in warten() aufgerufen werden soll. Mir ist eigentlich das ganze Konstrukt mit waittime() und warten() nicht ganz klar. Ich bin kein Fan.
Probier mal so, wenn unbedingt nach dem Scharfschalten die Statusmeldung mit Verzögerung rausgehen soll:
var idMotion = "hm-rpc.0.MEQ0285xxx.1.STATE"; // Türkontakt Nebeneingang UG Datenpunkt var idAlarm = "hm-rega.0.263xx"/*Alarmanlage*/; on(idAlarm, function (obj) { if(obj.state.val) { // Meldung "scharf" nach 500ms ausgeben, wenn Alarm scharf setTimeout({ sendTo("pushover.1", "Alarm scharf"); }, 500); } }); on({id:idMotion, val: true}, function () { var alarm = getState(idAlarm).val; if (alarm) sendTo("pushover.1", "UG: Nebeneingang OFFEN"); });
Gruß
Pix
-
Danke für deine Hilfe. Werde es mir mal anschauen.
Gruß Martin