Schönen guten Abend.
Mit einem DOIF lasse ich mich nach 15 Min benachrichtigen wenn das Fenster zu lange offen ist.
Nun würde ich gerne alle die Zuhause sind benachrichtigen. Ich überprüfe mit PRESENCE wer da ist. Ich habe aber keine Idee wie ich das DOIF so anpassen kann dass nur die anwesenden benachrichtigt werden.
Hier mal das DOIF welches z.Z. einwandfrei funktioniert:
define di_Fensterkontakt_BadEG DOIF ([Bdkl_Fensterkontakt] eq "open" and [Heizperiode] eq "ja" and [Wetter:temperature] < 15 )\
(set Telegram message Fenster im Bad ist ganz schön lange auf. Machs zu!) \
DOELSE
attr di_Fensterkontakt_BadEG repeatcmd 600
attr di_Fensterkontakt_BadEG room Bad_EG
attr di_Fensterkontakt_BadEG wait 900
Und hier die Presence Überprüfung:
define Pr_Gerd_d PRESENCE function {checkAllFritzMACpresent("XX:XX:XX:XX:XX:XX")} 60 60
attr Pr_Gerd_d event-on-change-reading .*
attr Pr_Gerd_d room TEST
Die gleiche Überprüfung findet noch für 4 weitere Handys statt.
Schönen Dank im voraus
Tja ... so eine schöne Filterfunktion im Set-Befehl (gibt es ja als Beispiel: Lampen nur einschalten wenn sie nicht schon an sind) geht hier nicht.
Spontan fallen mir prinzipiell drei Möglichkeiten ein:
1. in einer Sub in myUtils als Schleife über alle TYPE=PRESENCE die betreffenden Telegram-Usernamen zusammenzukratzen und in der Benachrichtigung mit anzugeben.
2. Wenn bei jedem PRESENCE-Wechsel ohnhin schon irgendwas läuft, dort die anwesenden Telegram-Usernamen zwischenspeichern und beim Sendebefehl abrufen
3. (quick & dirty) im Ausführungsteil den Befehl für alle in Frage kommenden Hausbewohner duplizieren (mit zusätzlicher Angabe des Adressaten) und mit einem IF zuvor die PRESENCE abzufragen.
Benachrichtigungsfunktionen über zu lange geöffnete Fenster gibt es natürlich auch im Rahmen diverser umfänglicher Automatiserungsmodule...
Mit Perl und Aggregationsfunktion @ des DOIFs, kann man wahrscheinlich etwas basteln
{foreach (AggrDoIf('@','^Pr_','state','"present"')) {message an $_}
@Pfriemler
Welche Automatisierungsmodule kämen da in Frage?
@amenomade
Hört sich sehr interessant an, da muss ich mich mal einlesen.