Hallo,
ich beschäftige mich jetzt seit ein paar Tagen mit FHEM und stoße gerade auf ein komisches Problem..
Ich habe hier eine Unifi USG und WLAN-AP, diese werden über den Unifi-Controller auf einem Raspi gesteuert.
FHEM ist auf einem anderen Raspi
Jetzt habe ich zwei Roommates angelegt und die passenden Presence-Devices. das eine Presence-Device funktioniert ohne Probleme. Das zweite (siehe List) leider nicht.
Internals:
CFGFN
DEF Haus
DURATIONTIMER 1572078236.23061
FUUID 5db34624-f33f-89a5-d6bd-7131ad27b592bf83
FVERSION 20_ROOMMATE.pm:0.195330/2019-06-02
NAME Sie
NOTIFYDEV global,pres_Sie
NR 656
NTFY_ORDER 50-Sie
READY 1
RESIDENTGROUPS Haus
STATE home
SUBTYPE adult
TYPE ROOMMATE
READINGS:
2019-10-26 10:06:26 durTimerAbsence 00:00:00
2019-10-26 10:06:26 durTimerAbsence_cr 0
2019-10-26 09:49:23 durTimerPresence 00:00:00
2019-10-26 09:49:23 durTimerPresence_cr 0
2019-10-25 21:00:03 durTimerSleep 00:00:00
2019-10-25 21:00:03 durTimerSleep_cr 0
2019-10-26 10:22:56 lastArrival 2019-10-26 10:22:56
2019-10-26 10:22:55 lastDeparture 2019-10-26 10:22:55
2019-10-26 10:22:56 lastDurAbsence 00:00:01
2019-10-26 10:22:56 lastDurAbsence_cr 0
2019-10-26 10:22:55 lastDurPresence 00:00:32
2019-10-26 10:22:55 lastDurPresence_cr 1
2019-10-26 10:22:55 lastLocation home
2019-10-26 10:22:55 lastMood calm
2019-10-26 10:22:56 lastState absent
2019-10-26 10:22:56 location home
2019-10-26 10:22:56 mood calm
2019-10-26 10:22:56 presence present
2019-10-26 10:22:56 state home
2019-10-25 21:06:25 wayhome 0
TIMER:
Sie_DurationTimer:
HASH Sie
MODIFIER DurationTimer
NAME Sie_DurationTimer
Attributes:
alias Sie
devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
group Sie
icon people_sensor
room Residents
rr_presenceDevices pres_Sie
sortby 1
webCmd state
Problem:
Wenn das Handy, welches überwacht wird OFFLINE ist, wird der Roomate auch schön als absent angezeigt und es wird einmal im Logfile geschrieben ROOMMATE set Sie absent.
Wenn das Handy im Controller ONLINE ist, wird der Status des Roommates auch auf present geändert, ABER, alle 30 Sekunden bekomm ich das hier:
2019.10.26 10:37:14 2: ROOMMATE set Sie absent
2019.10.26 10:37:14 2: ROOMMATE set Sie home
Was dann natürlich auch das DOIF triggert, welches ich daran "gehängt" hab.
Ich habe auch schon das Roommate und Presence Device neu gemacht...aber auch das brachte keine Besserung ??? :o .
Danke für eure Tips...wenn Ihr noch was braucht, einfach schreien..
Grüße
DustP
Du musst das presence device entprellen, siehe event-on-change attribut.
Hmmm, wenn aber das Presence Device tatsächlich zwischen absent und present hin und her springt, hilft event-on-change wohl nicht wirklich!?
Logge doch einfach mal das Presence Device mit (was du gepostet hast war das RoomMate Device, das reagiert ja nur auf das Presence Device), also ein FileLog für pres_Sie anlegen, wenn es nicht schon existiert.
Wenn das nicht "rund" läuft wird RoomMate das auch nicht können...
Wenn du dann siehst, dass pres_Sie immer wieder mal fälschlicherweise wechselt, dann dort ansetzen...
Gruß, Joachim
absenceThreshold oder/und presenceThreshold
Zitat von: CoolTux am 26 Oktober 2019, 11:22:57
absenceThreshold oder/und presenceThreshold
Jep wollte ich auch schon nennen... ;)
...aber halt erst mal sehen/prüfen lassen wie sich Presence verhält...
Aber das würde wohl helfen...
...aber auch die jeweilige Erkennung verlangsamen...
Gruß, Joachim
..SO, jetzt der dritte Versuch .. zum dritten mal war mein Beitrag nach dem Klick auf "Schreiben" weg...deshalb jetzt die "Kurz-Fassung"
Erst einmal versteh ich nicht, wieso das eine Presence Device funktioniert, und das andere nicht .oO.
Also wenn ich das event-on-change hinzufüge (mit .* als Wert, wie im commandref beschrieben) und das Gerät offline ist ändert sich sowohl das Presence-Device als auch der Rommate auf absent mit dem passenden Eintrag im Log des Presence-Devices.
Jetzt wieder das Device auf online ... ... Presence und Roommate gehen auf present bzw. home allerdings wird wieder alle 30 sek. (jedes mal, wenn auch der Controller abgefragt wird) schreibt er wieder die ganze Zeit ins Log.
hier das Presence-Device
Internals:
CFGFN
DEF event unifiController:Sie-Handy:.disconnected unifiController:Sie-Handy:.connected
EVENT_ABSENT unifiController:Sie-Handy:.disconnected
EVENT_PRESENT unifiController:Sie-Handy:.connected
FUUID 5db34279-f33f-89a5-980e-105e7f038f0782c3
MODE event
NAME pres_Sie
NOTIFYDEV global,unifiController
NR 644
NTFY_ORDER 50-pres_Sie
STATE present
TYPE PRESENCE
READINGS:
2019-10-26 09:49:12 model event
2019-10-26 12:06:53 presence present
2019-10-26 12:06:53 state present
helper:
CURRENT_STATE present
Attributes:
event-on-change-reading .*
room Residents
Also eine größere Verzögerung, als eh schon durch den Unifi-Controller gegeben ist (also die Erkennung, dass das WLAN-Device offline ist) sollte es nicht geben. Oder von welchem Zeitraum reden wir hier?
Grüße DustP
Es sind unterschiedliche Handys!?
Andere Marke/Typ/OS(-Version/-Stand)!? -> anderes Verhalten möglich.
Durch event-on-change-reading wird wenig beeinflusst, wenn sich der Status tatsächlich ändert...
Durch setzen der "Threshold-Attribute" wird die Erkennung jeweils mind. verdoppelt, da ja zunächst maybe_ kommt und nach dem selben Zeitraum dann entweder zurück (falls "Fehler") oder eben tatsächlich der Zustand absent/present...
D.h. musst du entweder die "Kröte schlucken" oder eben beim Presence per Unifi ansetzen.
Wobei ich mir das auch mal angesehen hatte aber es funktioniert für mein Handy auch nicht zuverlässing bzw. eher für mich entscheidend: viel zu langsam.
Teilweise über 3min bis die Abwesenheit erkannt wird.
Ich nutze daher das hping3: https://forum.fhem.de/index.php/topic,76342.msg682218.html#msg682218
(schnell und bislang zuverlässig / wegen Akku mache ich es "zweistufig", d.h. "normales" lan_ping und nur bei "Auseinanderlaufen" ein hping3 "zur Sicherheit". "Führend" ist was hping3 "sagt" ;) )
Gruß, Joachim
Ja, zwei unterschiedliche Handys,
Einmal ein Samsung Galaxy S8 (meins, was ja funktioniert)
Einmal ein Xiaomi Redmi Note Pro 8 (meine Frau)
AAAABER!!1elf ;)
Der Status den das Unifi-Device bekommt ist ja richtig! Sprich, Im Event-Monitor kommt IMMER:
...
2019-10-26 12:49:14 Unifi unifiController Sie-Handy: connected
...
und dann kommt halt im Log:
...
2019-10-26_12:50:19 pres_Sie absent
2019-10-26_12:50:19 pres_Sie presence: absent
2019-10-26_12:50:20 pres_Sie present
2019-10-26_12:50:20 pres_Sie presence: present
...
Wenn ja der Controller einmal connected und einem disconnected schicken würde, würde ich es ja verstehen ... aber so .oO.
Aber deine Lösung werd ich mir schonmal bookmarken...und hier noch ein wenig weiter machen ;).
Grüße
DustP
Hmmm, hast du ein FileLog bzgl. Unifi?
EDIT: gut EventMonitor im Auge behalten geht auch... ;)
Vielleicht schaltet der doch mal kurz?
Ansonsten wie sind denn die Presence definiert?
Da Unterschiede?
EDIT: gleiches elf ja aber trotzdem unterschiedliche HW!
Gruß, Joachim
Werde ich nachher alles kontrollieren, dann alles schicken...jetzt erstmal in den großen blauen Raum ;) :D ein wenig Real-Life