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?
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.
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
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.
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.
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?
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...
Wir verwenden geofencing auf den Handys. Funktioniert sehr zuverlässig (Ich sehe das Flurlicht gerade angehen, wenn ich abends heimkomme)
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...
Vielleicht ist das einen Versuch wert: https://forum.fhem.de/index.php?topic=76342.0
Funktioniert bei mir problemlos...
Gruß, Joachim
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.
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.
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