NEWS
Telegram-Benachrichtigung über geöffnete Wohnungstür - nur bei Abwesenheit!
-
Hallo zusammen,
mit der Suche bin ich bei folgendem Problem leider nicht weiter gekommen:
Ich habe folgendes Blockly-Skript, welches mir einen Telegram-Nachricht sendet, wenn die Wohnungstür geöffnet und geschlossen wird (hier in Code umgewandelt):
on({id: "hm-rpc.0.0015599393DB6F.1.STATE", change: "ne", ack: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((function (){var val = (obj.state ? obj.state.val : ""); if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == true) { sendTo("telegram.0", "send", { text: 'Wohnungstür wurde soeben geöffnet' }); console.log("telegram: " + 'Wohnungstür wurde soeben geöffnet'); } if ((function (){var val = (obj.state ? obj.state.val : ""); if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == false) { sendTo("telegram.0", "send", { text: 'Wohnungstür wurde soeben geschlossen' }); console.log("telegram: " + 'Wohnungstür wurde soeben geschlossen'); } });
Allerdings möchte ich, dass ich die Telegram-Nachricht nur bekomme, wenn ich nicht Zuhause bin. Hierfür stehen mir der Ping- und der tr-064 Adapter zur Verfügung. Ich habe hier keine Idee, wie ich das umsetzen kann. Der Trigger ist ja weiterhin die Änderung des Homematic-Türkontakts, aber wie prüfe ich nun am besten danach die Abwesenheit?
Vielen Dank im Voraus!
-
Du kannst einfach innerhalb des Codes prüfen, ob du abwesend bist.
on({...}, function(obj){ // hier Anwesenheit aus Datenpunkten abrufen var anwesend = true/false; if(!anwesend){ // du bist nicht anwesend, also sende Nachricht var value = [...] }
-
Den Datenpunkt "anwesend" muss ich mir dann erst erstellen? Kannst du mir noch sagen, wie das genau funktioniert?
-
Du brauchst nicht unbedingt einen Datenpunkt "anwesend", sondern du kannst auch eine Variable "anwesend" im Skript erstellen, die du anhand der Datenpunkte von Ping und/oder tr-064 füllst. Zum allgemeinen Lesen von Datenpunkten gibt es die "getState()"-Funktion.
Bei diesem Link ist der Einstieg in das Thema der Bedingungen gut erklärt:
http://www.iobroker.net/docu/?page_id=5385&lang=de#Bedingte_Ausfuehrung