Meine An-/Abwesendheitserkennung spinnt

Begonnen von Christian72D, 11 Januar 2018, 09:03:32

Vorheriges Thema - Nächstes Thema

Christian72D

Ich habe hier drei FB Geräte über die ich die Erkennung laufen lassen, ich denke daß das soweit auch wirklich gut klappt.
Zumindest das mit der Abwesendheit.

Aber ab und an kommt es vor daß das System denkt ich wäre nicht da, obwohl ich es bin.
Und dann wird bei mir in der gesamten Wohnung Licht und Strom ausgeschaltet... nervt.

Ich weiß jetzt im Moment nicht wo ich anfangen soll zu suchen.

Über diese beiden DOIFs schalte ich aktuell alles. Und ja, zwei getrennte, weil wenn noch mehr Befehle hinzu kommen finde ich es unübersichtlich.

Internals:
   DEF        ([Bewohner] eq "home") (set Strom on,set Licht on)
   NAME       di_jemandDa
   NR         488
   NTFY_ORDER 50-di_jemandDa
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1515657442.05042
           VALUE      cmd_1
   READINGS:
     2018-01-11 08:57:21   Device          Bewohner
     2018-01-11 08:57:22   cmd             1
     2018-01-11 08:57:22   cmd_event       Bewohner
     2018-01-11 08:57:22   cmd_nr          1
     2018-01-11 08:57:21   e_Bewohner_STATE home
     2018-01-03 19:05:51   mode            enable
     2018-01-11 08:57:22   state           cmd_1
   Regex:
   condition:
     0          InternalDoIf($hash,'Bewohner','STATE') eq "home"
   devices:
     0           Bewohner
     all         Bewohner
   do:
     0:
       0          set Strom on,set Licht on
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      durTimerPresence: 00:20:09,lastActivity: home,lastActivityBy: Christian,lastActivityByDev: Christian
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Bewohner
     timerevent durTimerPresence: 00:20:09,lastActivity: home,lastActivityBy: Christian,lastActivityByDev: Christian
     triggerDev Bewohner
     timerevents:
       durTimerPresence: 00:20:09
       lastActivity: home
       lastActivityBy: Christian
       lastActivityByDev: Christian
     timereventsState:
       durTimerPresence: 00:20:09
       lastActivity: home
       lastActivityBy: Christian
       lastActivityByDev: Christian
     triggerEvents:
       durTimerPresence: 00:20:09
       lastActivity: home
       lastActivityBy: Christian
       lastActivityByDev: Christian
     triggerEventsState:
       durTimerPresence: 00:20:09
       lastActivity: home
       lastActivityBy: Christian
       lastActivityByDev: Christian
   internals:
     0           Bewohner:STATE
     all         Bewohner:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Residents,Steuerung


Internals:
   DEF        ([Bewohner] eq "absent") (set Strom off,set Licht off)
   NAME       di_keinerDa
   NR         487
   NTFY_ORDER 50-di_keinerDa
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1515657132.08695
           VALUE      cmd_1
   READINGS:
     2018-01-11 08:58:52   Device          Bewohner
     2018-01-11 08:52:12   cmd             1
     2018-01-11 08:52:12   cmd_event       Bewohner
     2018-01-11 08:52:12   cmd_nr          1
     2018-01-11 08:58:52   e_Bewohner_STATE home
     2018-01-11 08:52:12   state           cmd_1
     2018-01-11 08:52:11   wait_timer      no timer
   Regex:
   condition:
     0          InternalDoIf($hash,'Bewohner','STATE') eq "absent"
   devices:
     0           Bewohner
     all         Bewohner
   do:
     0:
       0          set Strom off,set Licht off
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      durTimerPresence_cr: 22,durTimerPresence: 00:21:40,lastActivity: home,lastActivityBy: Christian,lastActivityByDev: Christian
     globalinit 1
     last_timer 0
     sleepdevice Bewohner
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Bewohner
     timerevent residentsTotalRoommatesPresent: 0,residentsTotalRoommatesPresentDevs: -,residentsTotalRoommatesPresentNames: -,residentsTotalRoommatesAbsent: 1,residentsTotalRoommatesAbsentDevs: Christian,residentsTotalRoommatesAbsentNames: Christian,residentsTotalPresent: 0,residentsTotalPresentDevs: -,residentsTotalPresentNames: -,residentsTotalAbsent: 1,residentsTotalAbsentDevs: Christian,residentsTotalAbsentNames: Christian,residentsHome: 0,residentsHomeDevs: -,residentsHomeNames: -,residentsAbsent: 1,residentsAbsentDevs: Christian,residentsAbsentNames: Christian,lastState: home,absent,presence: absent,lastDeparture: 2018-01-11 08:37:11,lastDurPresence: 00:15:05,lastDurPresence_cr: 15,durTimerPresence_cr: 0,durTimerPresence: 00:00:00,lastActivity: absent,lastActivityBy: Christian,lastActivityByDev: Christian
     triggerDev Bewohner
     timerevents:
       residentsTotalRoommatesPresent: 0
       residentsTotalRoommatesPresentDevs: -
       residentsTotalRoommatesPresentNames: -
       residentsTotalRoommatesAbsent: 1
       residentsTotalRoommatesAbsentDevs: Christian
       residentsTotalRoommatesAbsentNames: Christian
       residentsTotalPresent: 0
       residentsTotalPresentDevs: -
       residentsTotalPresentNames: -
       residentsTotalAbsent: 1
       residentsTotalAbsentDevs: Christian
       residentsTotalAbsentNames: Christian
       residentsHome: 0
       residentsHomeDevs: -
       residentsHomeNames: -
       residentsAbsent: 1
       residentsAbsentDevs: Christian
       residentsAbsentNames: Christian
       lastState: home
       absent
       presence: absent
       lastDeparture: 2018-01-11 08:37:11
       lastDurPresence: 00:15:05
       lastDurPresence_cr: 15
       durTimerPresence_cr: 0
       durTimerPresence: 00:00:00
       lastActivity: absent
       lastActivityBy: Christian
       lastActivityByDev: Christian
     timereventsState:
       residentsTotalRoommatesPresent: 0
       residentsTotalRoommatesPresentDevs: -
       residentsTotalRoommatesPresentNames: -
       residentsTotalRoommatesAbsent: 1
       residentsTotalRoommatesAbsentDevs: Christian
       residentsTotalRoommatesAbsentNames: Christian
       residentsTotalPresent: 0
       residentsTotalPresentDevs: -
       residentsTotalPresentNames: -
       residentsTotalAbsent: 1
       residentsTotalAbsentDevs: Christian
       residentsTotalAbsentNames: Christian
       residentsHome: 0
       residentsHomeDevs: -
       residentsHomeNames: -
       residentsAbsent: 1
       residentsAbsentDevs: Christian
       residentsAbsentNames: Christian
       lastState: home
       state: absent
       presence: absent
       lastDeparture: 2018-01-11 08:37:11
       lastDurPresence: 00:15:05
       lastDurPresence_cr: 15
       durTimerPresence_cr: 0
       durTimerPresence: 00:00:00
       lastActivity: absent
       lastActivityBy: Christian
       lastActivityByDev: Christian
     triggerEvents:
       durTimerPresence_cr: 22
       durTimerPresence: 00:21:40
       lastActivity: home
       lastActivityBy: Christian
       lastActivityByDev: Christian
     triggerEventsState:
       durTimerPresence_cr: 22
       durTimerPresence: 00:21:40
       lastActivity: home
       lastActivityBy: Christian
       lastActivityByDev: Christian
   internals:
     0           Bewohner:STATE
     all         Bewohner:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Residents,Steuerung
   wait       900


Internals:
   DEF        function {checkAllFritzMACpresent("90:A5:AD:1E:23:66")} 60 60
   MODE       function
   NAME       Chris_FB
   NOTIFYDEV  global
   NR         400
   NTFY_ORDER 50-Chris_FB
   STATE      present
   TIMEOUT_NORMAL 60
   TIMEOUT_PRESENT 60
   TYPE       PRESENCE
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1515657744.45526
           VALUE      present
   READINGS:
     2018-01-06 17:49:44   model           function
     2018-01-11 09:02:24   presence        present
     2018-01-11 09:02:24   state           present
   helper:
     CURRENT_STATE present
     call       {checkAllFritzMACpresent("12:34:56:78:90:AB")}
Attributes:
   room       Residents


Die Routine habe ich 1:1 aus dem Wiki übernommen.


Jemand eine Idee?

andi11

Zitat von: Christian72D am 11 Januar 2018, 09:03:32
ich denke daß das soweit auch wirklich gut klappt.
D.h. es ging mal über einen längeren Zeitraum problemlos?
Manche Handys schalten das WLAN soweit aus, dass in einer Fritzbox das Gerät nicht mehr auftaucht.

Otto123

#2
Die Wlan Erkennung über die Fritzbox ist in Abhängigkeit von Smartphone, aktuellem Firmware Stand der Fritzbox und vom Smartphone und von Zeit und Raum einfach unzuverlässig.
Empfehlung: steig um - auf Bluetooth Erkennung.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Brice

#3
Das Problem mit "ohne" Licht kenne ich ;D. Ich habe die Anwesenheitserkennung um Bluetooth erweitert. Erst wenn keine Mobiltelefone über NetDevDa und Bluetooth anwesend sind, laufen die Routinen. Seit dem habe keine unerwünschten Nebeneffekte.

Edit: setzt natürlich voraus, dass BT permanent eingeschaltet ist.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

Christian72D

Zitat von: andi11 am 11 Januar 2018, 09:14:59
Manche Handys schalten das WLAN soweit aus, dass in einer Fritzbox das Gerät nicht mehr auftaucht.
Sorry, vergessen zu erwähnen: das WLAN ist im Handy auch im Standby dauerhaft aktiviert.

Christian72D

BT ist nicht DIREKT möglich, dafür ist die Wohnung zu groß, d.h. ich müsste mehrere BT Empfänger verteilen.

Was wäre da die günstigste Möglichkeit?


Aber komisch ist doch: die FB Routine überprüft den Status alle 60 Sekunden.

Bei Abwesenheit soll das DOIF doch 900 Sekunden (15 Minuten) warten bevor es abschaltet.
Das Zuschalten bei Anwesenheit erfolgt ja sofort.

Wie kann es denn dann passieren daß das Licht aus und eine Sekunde später wieder eingeschaltet wird?

Otto123

Zitat von: Christian72D am 11 Januar 2018, 21:49:12
Sorry, vergessen zu erwähnen: das WLAN ist im Handy auch im Standby dauerhaft aktiviert.
Sorry aber das ist Beschiss von der Handy Firmware. Ist bei manchen iPhone und bei manchen Android zwar einstellbar wird aber nicht wie gewünscht umgesetzt. Findest Du hier 1000 Posts...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

andi11

Wir verwenden geofencing auf den Handys. Funktioniert sehr zuverlässig (Ich sehe das Flurlicht gerade angehen, wenn ich abends heimkomme)

Christian72D

Zitat von: Otto123 am 11 Januar 2018, 22:32:20
Sorry aber das ist Beschiss von der Handy Firmware. Ist bei manchen iPhone und bei manchen Android zwar einstellbar wird aber nicht wie gewünscht umgesetzt. Findest Du hier 1000 Posts...
Die große Frage ist dann nur: wieso schaltet das System Licht und Steckdosen aus und eine Sekunde später wieder an?
Bei der Abwesendheit ist eine Verzögerung von 900 Sekunden eingestellt, bei der Anwesendheit keine.
Und beide sind getrennt geschaltet...

MadMax-FHEM

Vielleicht ist das einen Versuch wert: https://forum.fhem.de/index.php?topic=76342.0

Funktioniert bei mir problemlos...

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)

CoolTux

Zitat von: Christian72D am 29 April 2018, 08:23:06
Die große Frage ist dann nur: wieso schaltet das System Licht und Steckdosen aus und eine Sekunde später wieder an?
Bei der Abwesendheit ist eine Verzögerung von 900 Sekunden eingestellt, bei der Anwesendheit keine.
Und beide sind getrennt geschaltet...

Vielleicht hilft es mehr wenn du beides in ein DOIF packst.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

thgorjup

Ich verwende auch Geofency. Ist eigentlich ganz praktisch, denn ich hatte auch viele Probleme mit der Erkennung über WLAN. 
Allerdings läuft Geofency auch manchmal nicht ganz rund und meldet, dass es nach mehreren Versuchen aufgegeben hat.
Ist wohl ein Problem mit der DynDns Adresse im Webhook.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Otto123

Moin,

die An- und Abwesenheit einer Person wird bei mir in einem DOIF festgestellt.
defmod di_Dev_Otto DOIF ([st_Dev_Otto] eq "absent")(set PersonOtto absent) DOELSEIF ([st_Dev_Otto] eq "present")(set PersonOtto present)
attr di_Dev_Otto room Status
attr di_Dev_Otto wait 300


Die structure der Geräte (st_Dev_) ist eine Sammlung von Geräten die als An- oder Abwesend festgestellt werden. Bei denen wird keine zeitliche Bewertung durchgeführt. Die zeitlichen Zusammenhänge sind nur von den Geräten abhängig. Es kann auch nur ein Gerät  in der structure sein, der Vorteil ist die leichte Austauschbarkeit oder Ergänzung.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz