Abfrage alle Fenster zu und Anwesenheit abfrage

Begonnen von Sebastian84, 12 Januar 2022, 21:36:47

Vorheriges Thema - Nächstes Thema

Sebastian84

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.

MadMax-FHEM

#1
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

  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.

MadMax-FHEM

#3
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

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).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors