Vorab,
ich bin nicht der jüngste und auch nicht der Programmierer.
Ich habe ein funktionierendes notify:
define wakeIPAD_n notify MotionIPAD:motion set pushmsg msg title="FHEM IPAD-Uwe" message="Bewegung erkannt" device="IPAD-Uwe" priority="-1"
dies sendet mir zuverlässig eine Nachricht auf mein IPAD, wenn der Bewegungsmelder eine Bewegung erkennt. Aber auch, wenn ich im Haus bin.
Sehr gerne würde ich das notify ergänzen durch eine Anwesenenheitserkennung, die ebenfalls bereits seit langer Zeit und zuverlässig funktioniert. Die Anwensenheitserkennung ist über über Iphone/Geofanccy/Residentsrealisiert. In residents ist der "home" status damit immer aktuell.
Der "home" status von Residents soll verantwortlch sein, ob die message gesendet wird. Nur, wenn niemand zu Hause ist, soll die message gesendet werden, also "not home".
Leider bekomme ich diese Bedingung nicht realisiert.
Kann mir jemand einen TIP geben?
Der einfachste Weg ist es, die Abfrage auf "home" einfach anzuhängen und den "set" Befehl für die Nachricht in fhem() zu kapseln, damit Du komplett in perl arbeitest.
define wakeIPAD_n notify MotionIPAD:motion { fhem('set pushmsg msg title="FHEM IPAD-Uwe" message="Bewegung erkannt" device="IPAD-Uwe" priority="-1"') if (ReadingsVal(<residentDevice>,<residentReading,"") eq "home") }
Die Werte in ReadingsVal() musst Du halt auf Deine Gegebenheiten anpassen, um den Vergleich zu ermöglichen.
Andere Ansatz:
Falls mit dem home Status sowieso schon an anderer Stelle etwas "geschaltet" wird, könnte man damit zusätzlich das notify auch einfach aktivieren / deaktivieren
set wakeIPAD_n active / inactive
Hallo Otto,
danke für den Hinweis. Ja, ich schalte an anderer Seite mit dem home status:
Ich habe das so verstanden:
define Bewegung doif ([Bewohner:state] eq "home") (set wakeIPAD_n inactive) DOELSEIF ([Bewohner:state] eq "absent") (set wakeIPAD_n active) DOELSEIF ([Bewohner:state] eq "gone") (set wakeIPAD_n active)
Ist dies so korrekt?
Hallo,
ich würde es so versuchen:
define di_Bewegung DOIF ([Bewohner:state] eq "home") (set wakeIPAD_n inactive)
DOELSEIF ([Bewohner:state] ne "home") (set wakeIPAD_n active)
Zitat von: UweUwe am 14 Oktober 2023, 12:49:11danke für den Hinweis. Ja, ich schalte an anderer Seite mit dem home status:
Ich hatte dann eher daran gedacht nichts extra zu machen, sondern lediglich set wakeIPAD_n active / inactive dem bestehen Vorgang hinzuzufügen.
Ansonsten sieht es nicht verkehrt aus ;)
Hallo Jürgen02 und Otto123,
euren Vorschlag
define di_Bewegung DOIF ([Bewohner:state] eq "home") (set wakeIPAD_n inactive)
DOELSEIF ([Bewohner:state] ne "home") (set wakeIPAD_n active)
hab ich sehr gerne empfangen und implementiert. Die Test sind alle bisher positiv. Danke