Guten Abend
Ich habe über eine structure "Haus" und Anwesenheit
Versucht eine Naricht zu bekommen.
Also Haus zu und keiner da mit Zeit gleich eine
Naricht Fenster und Türen zu. Das klappt aber nicht.
Mein Notify
Haus:off {if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_patricia","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent"){fhem("defmod atTmp_Haus_ at +00:00:35 {if(ReadingsVal('handy_sebastian','state','n.a.') eq 'absent' && ReadingsVal('handy_patricia','state','n.a.') eq 'absent' && ReadingsVal('handy_oma','state','n.a.') eq 'absent'){fhem(\"set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian,galaxya50' 1 'bugle' \")}}")}}
Internals:
DEF Haus:off {if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_patricia","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent"){fhem("defmod atTmp_Haus_ at +00:00:35 {if(ReadingsVal('handy_sebastian','state','n.a.') eq 'absent' && ReadingsVal('handy_patricia','state','n.a.') eq 'absent' && ReadingsVal('handy_oma','state','n.a.') eq 'absent'){fhem(\"set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian,galaxya50' 1 'bugle' \")}}")}}
[code] Internals:
DEF Haus:off {if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_patricia","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent"){fhem("defmod atTmp_Haus_ at +00:00:35 {if(ReadingsVal('handy_sebastian','state','n.a.') eq 'absent' && ReadingsVal('handy_patricia','state','n.a.') eq 'absent' && ReadingsVal('handy_oma','state','n.a.') eq 'absent'){fhem(\"set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian,galaxya50' 1 'bugle' \")}}")}}
FUUID 613e5fde-f33f-cdd4-a8d0-e52e17004c8d7f41
NAME Haus_abgeschlossen1
NOTIFYDEV Haus
NR 340
NTFY_ORDER 50-Haus_abgeschlossen1
REGEXP Haus:off
STATE active
TRIGGERTIME 1642005168.01933
TYPE notify
READINGS:
2022-01-12 19:20:32 state active
2022-01-12 17:32:48 triggeredByDev Haus
2022-01-12 17:32:48 triggeredByEvent closed
Attributes:
room 8_Zuhause
ADDRESS 192.168.0.111
DEF lan-ping 192.168.0.111 3
FUUID 5fb7f2f5-f33f-cdd4-2f54-74db163aaa2710b7
INTERVAL_NORMAL 3
INTERVAL_PRESENT 3
MODE lan-ping
NAME handy_oma
NOTIFYDEV global
NR 182
NTFY_ORDER 50-handy_oma
STATE Abwesend
TYPE PRESENCE
READINGS:
2022-01-11 12:01:39 model lan-ping
2022-01-12 21:33:43 presence absent
2022-01-12 21:33:43 state absent
helper:
ABSENT_COUNT 0
RUNNING_PID:
abortFn PRESENCE_ProcessAbortedScan
arg handy_oma|192.168.0.111|0|4
bc_pid 42185
finishFn PRESENCE_ProcessLocalScan
fn PRESENCE_DoLocalPingScan
pid 31032
telnet telnetForBlockingFn_1641898902_127.0.0.1_35550
timeout 60
abortArg:
Attributes:
eventMap absent:Abwesend present:Zuhause
group Anwesenheit
room 8_Zuhause
userattr handy_sebastian handy_sebastian_map notify notify_map structexclude
ADDRESS 192.168.0.106
DEF lan-ping 192.168.0.106 3
FUUID 5ecac278-f33f-b383-48c4-f0128dde394e66ae
INTERVAL_NORMAL 3
INTERVAL_PRESENT 3
MODE lan-ping
NAME handy_patricia
NOTIFYDEV global
NR 94
NTFY_ORDER 50-handy_patricia
STATE Zuhause
TYPE PRESENCE
READINGS:
2022-01-11 12:01:35 model lan-ping
2022-01-12 21:35:04 presence present
2022-01-12 21:35:04 state present
helper:
CURRENT_STATE present
RUNNING_PID:
abortFn PRESENCE_ProcessAbortedScan
arg handy_patricia|192.168.0.106|0|4
bc_pid 42216
finishFn PRESENCE_ProcessLocalScan
fn PRESENCE_DoLocalPingScan
pid 31975
telnet telnetForBlockingFn_1641898902_127.0.0.1_35894
timeout 60
abortArg:
Attributes:
eventMap absent:Abwesend present:Zuhause
group Anwesenheit
room 8_Zuhause
userattr handy_sebastian handy_sebastian_map notify notify_map presence presence_map structexclude structure structure_map
ADDRESS 192.168.0.107
DEF lan-ping 192.168.0.107 5
FUUID 5ecab806-f33f-b383-7dc6-8d81b875ebaea5e5
INTERVAL_NORMAL 5
INTERVAL_PRESENT 5
MODE lan-ping
NAME handy_sebastian
NOTIFYDEV global
NR 93
NTFY_ORDER 50-handy_sebastian
STATE Abwesend
TYPE PRESENCE
READINGS:
2022-01-11 12:01:35 model lan-ping
2022-01-12 21:36:09 presence absent
2022-01-12 21:36:09 state absent
helper:
CURRENT_STATE present
Attributes:
eventMap absent:Abwesend present:Zuhause
group Anwesenheit
room 8_Zuhause
userattr notify notify_map presence presence_map structexclude structure structure_map
Es muss über Zeit gehen weil ich noch ziemlich weit vom Haus Wlan habe. Damit ich dann erst wenn ich aus den Wlan raus bin die Abfrage kommt.
Warum ein notify auf Haus:off?
Du willst doch eine Nachricht bei: alle weg?
Wann kommt denn das Event Haus:off?
Doch (immer) dann, wenn alle Türen/Fenster zu gemacht wurden?
Also warum keine structure Anwesenheit oder auch Resident o.ä. und dann ein notify auf "alle weg" oder "ich weg" (je nachdem) und dann prüfen, ob alles zu (Haus:off?)...
EDIT: du hast doch eine Structure bzgl. Anwesenheit? Warum dann 1. kein notify auf "weg" und 2. warum dann im notify (wenn du es tatsächlich so haben willst) nicht einfach die Structure prüfen? Wenn die Structure bzgl. Anwesenheit den Status nicht "zusammenfasst", dann ist doch die Structure "falsch" (oder "unnütz")?
Dann hast du doch auch das Problem nicht mit "bin ich nun immer noch im WLAN oder doch schon weg"... ;)
EDIT: weil was du hier machst/versuchst (wenn ich das richtig interpretiere) ist ja du sperrst ab (Haus:off?) und dann wartest du bis du normalerweise weg bist allerdings wartest du ja NUR, wenn du schon weg bist also prüfst du erst mal ob alle weg sind und wenn ja dann später (at) noch mal? Also immer noch weg? Kann ja nicht wirklich klappen, weil schon viel zusammen kommen muss. 1. du bzw. ALLE müssen schon absent sein, in dem Moment wo du absperrst (Haus:off) weil sonst ist das notify schon "fertig" ;) Wenn du bzw. alle schon weg sind in dem Moment wo Haus:off kommt wartet das notify (ohne jetzt geprüft zu haben, ob der "Code" stimmt) und prüft dann noch mal auf "alle" weg. Dann wird davon ausgegangen (weil ja Haus:off), dass alles zu ist? Was, wenn alle gehen und das Haus nicht abgesperrt ist, also Haus:off NICHT kommt/kam, dann macht das notify GAR NICHTS weil es gar nicht getriggert wurde... Wo ist denn die Structure bzgl. Anwesenheit die du erwähnt hast?
Wie geschrieben: ich denke es ist "falsch rum" gedacht...
Zumindest mache ich das so...
Notify auf "weg" und dann prüfen, ob alles passt (Fenster, Türen, Steckdosen, Lichter, ...) und dann eine Nachricht "alles ok" oder eben "Fenster auf, Steckdose an, ..."
EDIT: hattest du das nicht schon mal gefragt/gelöst? ;)
https://forum.fhem.de/index.php/topic,122877.msg1174056.html#msg1174056
EDIT: und wenn nicht, wo ist der Unterschied?
Gruß, Joachim
Anwesenheit1:absent.* defmod at_Check_Haus at +00:00:10 {if(ReadingsVal("Haus","state","n.a.") eq "closed"){ fhem "set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian,galaxya50' 1 'bugle' "}}
Damit geht es. Aber zwischendurch kommt auch ne Meldung obwohl ich zu Hause im WLAN bin.
Ich wollte jetzt noch nach der Hausabfrage ein Und Anwesenheit1 absend dann eine Naricht schicken.
Damit ich vielleicht die Fehlbildungen vermeiden kann.
Wenn du eine Nachricht bekommst, OBWOHL du zuhause bist, dann stimmt was mit der Anwesenheitserkennung nicht, ich würde eher DORT ansetzen.
Hatte ich auch, als ich noch Anwesenheit mit WLAN gemacht habe.
Also z.B. Fenster-offen Meldungen im Sommer nachts (wenn eben das Handy mal wieder in "sleep" ging und somt "abwesend" war/erkannt wurde / auch hping3 hat irgendwann nicht mehr 100%ig funktioniert)...
Mit Unifi (habe ich) soll es ganz stabil gehen, mag sein, war mir aber (immer) "zu langsam"...
Also bis eine Abwesenheit erkannt wurde...
Mittlerweile bin ich bei npresence gelandet und sehr zufrieden. Bzw. hatte ich "übergangsweise" mal einen BT-Tag/gTag.
https://forum.fhem.de/index.php/topic,118917.msg1133609.html#msg1133609
Da ich den gTag noch habe, habe ich für MEINE Anwesenheit (also nur für MEINE Person) eine structure aus BT-Handy (npresence) und dem gTag.
D.h. für Abwesend müssen beide weg sein für Anwesenheit reicht bereits einer wieder da...
EDIT: zuverlässige Abwesenheit und schnelle Anwesenheit :)
Läuft jetzt seit 2 Jahren (oder so) stabil. Aber auch schon der gTag alleine deutlich stabiler als das mit WLAN.
Alles andere ist "nur gebastel" (meine Meinung) und führt letztenendes dazu, dass eben (irgendwann) die Abwesenheit (oder Anwesenheit) nicht mehr zuverläsig erkannt wird oder eben (deutlich) später (manchmal "zu spät": weil ich hätte die Nachricht, dass alles i.O. ist oder eben Fenster auf/Steckdose an usw. noch solange ich noch in "Reichweite" bin aber doch zuverlässig "außer Haus")...
Wenn die An-/Abwesenheit sauber funktioniert, dann sind doch auch die 10s überflüssig, oder?
EDIT: wobei das ja noch geht, weil bekannte/gewünschte/nötige? Verzögerung und ja recht kurz...
EDIT: und du bekommst doch so auch nur eine Nachricht, wenn alles geschlossen ist!!? D.h. wenn doch noch was offen ist bekommst du KEINE Nachricht. Gut kann man nat. machen: man geht weg und wenn nichts kommt, dann ist noch was nicht i.O. (oder aber: die Message ging nicht durch oder sonst ist was "schief" gelaufen, dann fährt man zurück und stellt fest: nichts zu tun). Ich hatte zunächst die umgekehrte Logik: also nur eine Nachricht, wenn etwas nicht passt. Bin dann davon ausgegangen, dass alles i.O. ist, wenn keine Nachricht kommt/kam. Mittlerweile schicke ich beim Verlassen IMMER eine Nachricht. Entweder alles i.O. oder eben "irgendwas passt nicht"... Wenn dann mal gar keine Nachricht kommt, weiß ich, dass irgendwas (größeres) nicht passt ;)
Gruß, Joachim
Später wird doch nach dem gezeigten Code gar nicht mehr auf Anwesenheit geprüft, wieso verwundert es dann, wenn "trotzdem" die Nachricht kommt...
Was der TE sucht, ist eine watchdog-Funktionalität, und der aktuelle Code läßt sich auch nicht mit einer verbesserten Abwesenheitserkennung fixen... Da muss entweder eine weitere Prüfung (zum späteren Zeitpunkt) rein, oder eben auf das Ausbleiben des "bin wieder da"-Events gewartet werden (watchdog, wie gesagt).