ioBroker.fb-checkpresence icon indicating copy to clipboard operation
ioBroker.fb-checkpresence copied to clipboard

Presence keeps changing

Open DNA-Trainer opened this issue 3 years ago • 22 comments

I installed the latest release from github and wrote a script, which triggers on the presence state. Here are my results. This "problem" only occurs, when I turn off my wifi.

First test: Abfrageintervall (query interval) 60s Filter interval 60s Filter activeated for my device 12:33:47 - turned off wifi 12:35:02 - state changed to false 12:36:04 - state changed to true 12:39:06 - state changed to false 12:40:08 - state changed to true 12:42:09 - state changed to false 12:43:10 - state changed to true 12:45:12 - state changed to false and stays false

Second test: Abfrageintervall (query interval) 60s Filter interval 60s Filter deactiveated for my device 14:08:32 - turned off wifi 14:11:04 - state changed to false 14:13:06 - state changed to true 14:19:12 - state changed to false and stays false

Versions:

  • 1.1.5 from Github
  • 3.2.16
  • v12.22.1
  • RPi4 Buster

DNA-Trainer avatar Jun 20 '21 13:06 DNA-Trainer

And you are sure that your script works well? I cannot reproduce that behaviour. Could you provide the log (log level = debug) from start of adapter to the info messages when the presence state changed.

afuerhoff avatar Jun 20 '21 16:06 afuerhoff

Here is the log. After I started the instance I turned off my wifi. 21:07:37.323 - false 21:09:55.752 - true 21:14:17.512 - false iobroker.2021-06-20.log

DNA-Trainer avatar Jun 20 '21 21:06 DNA-Trainer

Hello, what is with the device in the fritzbox. Is there also a change (false/true/false) visible in the same manner?

If you use the hostname (instead of mac), please check, if the same behaviour happens.

afuerhoff avatar Jun 23 '21 05:06 afuerhoff

Ich habe gerade erst gesehen, dass es kein Problem zu sein scheint, wenn man deutsch schreibt. Also, folgendes ist mir aufgefallen: In der Ereignissanzeige der Fritzbox wird mein Handy 1 mal korrekt als abgemeldet angezeigt. In der Liste der Netwerkgeräte jedoch, tritt tatsächlich das gleiche Verhalten auf. Mein Handy springt mehrere male von "Aktive Geräte" zu "Ungenutzte Verbindungen" und zurück.

Ich habe eine 7590 mit OS 7.21 und werde nachher mal ein Update auf 7.27 durchführen und berichten, ob sich was ändert.

DNA-Trainer avatar Jun 24 '21 11:06 DNA-Trainer

Kann es sein, dass bei deinem Handy die Mac Verschleierung eingestellt ist. Dann wechselt die Mac Adresse ständig.

afuerhoff avatar Jun 24 '21 18:06 afuerhoff

Hi. Die Mac Verschleierung ist nicht eingestellt. Das Verhalten bleibt weiterhin bestehen. Egal welches Handy, ob mein Samsung oder das Oneplus meiner Frau.

Sobald einer von uns das WLAN verlässt oder deaktiviert, kann ich das oben beschriebene Verhalten beobachten, die Geräte springen von der "Aktiven" zu der "Inaktiven" einige male hin und her bis sie letztendlich auf "Inaktiv" bleiben.

Mein Workaround würde wohl momentan so aussehen, dass ich den Abfrageinterval auf 600s erhöhe.

Dabei könnte das Verhalten aber trotzdem auftreten, wenn sich das abgemeldete Gerät genau dann wieder auf der "Aktiven" Liste befindet, sobald die Abfrage durchgeführt wird.

EDIT: MAC verschleiern ist tatsächlich doch aktiviert. Ich war mir ziemlich sicher, dass ich das auf "Geräte-MAC" umgestellt hatte. Ich werde nochmal testen und berichten. Danke

DNA-Trainer avatar Jun 25 '21 20:06 DNA-Trainer

Ansonsten mal mit Einstellung Hostname anstatt Mac versuchen. Ist ja extra für Handys mit Verschleierung implementiert worden. Dabei muss man nur darauf achten, dass der Hostname nur für das Gerät mit den verschiedenen Mac-Adressen vergeben worden ist.

afuerhoff avatar Jun 25 '21 21:06 afuerhoff

Also, ich habe nun im Handy "Geräte MAC" eingestellt, natürlich darauf geachtet, dass im Adapter die korrekte MAC hinterlegt ist. Das Ergebnis ist das gleiche.

Danach habe ich im Adapter "Hostname" ausgewählt und auch hier ist das Ergebnis unverändert. Eigentlich war das zu erwarten, da anscheinend der "Fehler" bei er Fritzbox liegt, denn die Geräte wechseln ja hin und her.

Ich weiß nicht, warum dies in der FB passiert.

DNA-Trainer avatar Jun 26 '21 09:06 DNA-Trainer

Du könntest mal ein Gerät kpl. in der Fritzbox löschen und wieder neu verbinden. Vielleicht bringt das was.

afuerhoff avatar Jun 26 '21 11:06 afuerhoff

Also, erstmal muss ich sagen, dass der Fehler ja definitiv nicht an dem Modul sondern an der FB liegt. Ich habe jetzt noch weiter getestet. Ich habe das Gerät komplett gelöscht und neu angemeldet, kein Erfolg. Dann hab ich das Gerät gelöscht, FB rebootet und neu angemeldet, kein Erfolg.

Jetzt habe ich so langsam das Gefühl, dass es irgendwie mit dem Mesh zusammen hängt. Mir ist nämlich aufgefallen, dass dieses Problem nicht auftritt, wenn ich die Mesh Box vom Strom nehme. Aber um das ganz genau sagen zu können, muss ich das noch weiter testen. Ich werde weiter berichten.

DNA-Trainer avatar Jul 01 '21 09:07 DNA-Trainer

Danke für die Rückmeldung. Ich drücke die Daumen für die weiteren Untersuchungen.

afuerhoff avatar Jul 01 '21 17:07 afuerhoff

Hallo. Ich kann nun definitiv sagen, dass es etwas mit dem Mesh zu tun hat. Ziehe ich das Kabel für die Mesh-Box raus, ist alles gut und so wie es sein soll. Warum sich das so verhält ist mir allerdings ein Rätsel. Ich brauche keine sofortige Erkennung der Anwesenheit, darum kann ich auf die Dauer, wie lange ein Gerät abwesend ist, triggern und mir reicht das so. Dennoch werde ich Versuchen dem auf den Grund zu gehen und weiter berichten.

DNA-Trainer avatar Jul 05 '21 15:07 DNA-Trainer

Was setzt du für Geräte fürs Mesh ein?

afuerhoff avatar Jul 05 '21 16:07 afuerhoff

Hauptbox ist eine 7590 Mesh Repeater ist eine 7490 An der 7490 hängt noch ein Powerline 1260E/1220E

DNA-Trainer avatar Jul 05 '21 17:07 DNA-Trainer

Hallo, hast Du hier eigentlich neue Erkenntnisse bekommen?

afuerhoff avatar Nov 19 '21 12:11 afuerhoff

Sorry für die späte Rückmeldung. Bisher gibt es keine neue Erkenntnisse und keine Veränderung. Ich hatte es zwischenzeitlich immer wieder mal getestet. Eine Möglichkeit werde ich aber in den kommenden Tagen noch testen und mich melden.

DNA-Trainer avatar Nov 29 '21 05:11 DNA-Trainer

Hallo. Ich habe es nun definitv rausgefunden. Mein Setup sieht ja wie folgt aus: Fritzbox 7590 im EG als Hauptrouter. Fritzbox 7490 im Keller als Repeater. Dieser hat die gleichen WLAN Einstellungen, wie die 7590.

Wie ich bereits weiter oben geschrieben habe, liegt das Problem an der Konstellation mit dem Mesh Repeater. Klemme ich den Repeater ab, funktioniert alles wie es soll. Ich bekomme nur ein einziges mal die Meldung presence=false. Ist der Repeater wieder angeschlossen, so wechselt die presence Meldung mehrere male fröhlich von true auf false und umgekehrt. Wie lange das so geht ist unterschiedlich, der presence state wechselt bis zu 7. Gleiches ist, wie ich auch bereits weiter oben schrieb, in der Fritzbox zu beobachten. Die WiFi geräte verschwinden aus der Liste und tauchen einige Zeit später wieder in der Liste auf, obwohl sie sich definitv nicht im WLAN befinden. All dies passiert nur, wenn der Mesh Repeater angeschlossen ist.

Aber ok, ich werde die Abfragezeit erhöhen, dann sollte es funktionieren.

Nun hab ich aber noch eine Frage: wofür genau sind Interval, Filter time und Filter?

Gruß ~DNA

DNA-Trainer avatar Jan 07 '22 16:01 DNA-Trainer

Hallo, das Intervall in den Haupteinstellungen ist für alles, was mit den Devices zusammenhängt. Es wird zyklisch nach aktualisierten Werten geschaut. Das gleiche gilt für das Intervall bei den Familieneinstellungen (nur eben für die Familienmitglieder). Wenn der Filter für ein Familienmitglied aktiviert ist, wird bei Abwesenheit (false) nochmal nach Ablauf der Fillterzeit die Abwesenheit überprüft. Ist das Familienmitglied immer noch abwesend, wird der State auf false gesetzt. Ist die Abwesenheit nicht mehr gegeben, bleibt der Wert auf true. Damit können kurzfristige false Werte herausgefiltert werden. True Werte werden immer sofort gesetzt.

afuerhoff avatar Jan 07 '22 19:01 afuerhoff

Hi zusammen! Leider hab ich auf eine FB 7590 mit Mesh Repeater exakt das selbe Problem/Fehlerbild... Leider gelingt auch mit

  • Abfrageintervall in Minuten 1
  • Abfrageintervall in Sekunden 30
  • Filtertime in Seconds 60 nicht, dass mein Samsung zwischen "anwesend" und "abwesend" springt. --> Habt ihr Tipps für die Einstellungen?

Hintergrund scheint https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/3384_Fehlerhafte-Eintrage-in-der-Mesh-Ubersicht/ zu sein!

VG Philipp

phg2k avatar Jan 14 '22 13:01 phg2k

Schwieriges Thema. Vielleicht mal das Device in der Fritzbox löschen. Wechselt evtl. die Mac. Siehe auch oben. Der Adapter liest ja nur den Zustand in der Fritzbox. Da kann man durch Einstellungen nicht zum Ziel kommen. Ich hatte selber so einen Fall mit einem iPhone und konnte noch keine Lösung finden.

afuerhoff avatar Jan 14 '22 15:01 afuerhoff

Hi zusammen! Leider hab ich auf eine FB 7590 mit Mesh Repeater exakt das selbe Problem/Fehlerbild... Leider gelingt auch mit

* Abfrageintervall in Minuten 1

* Abfrageintervall in Sekunden 30

* Filtertime in Seconds 60
  nicht, dass mein Samsung zwischen "anwesend" und "abwesend" springt.
  --> Habt ihr Tipps für die Einstellungen?

Hintergrund scheint https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/3384_Fehlerhafte-Eintrage-in-der-Mesh-Ubersicht/ zu sein!

VG Philipp

Hi. Du brauchst keine Geräte von der FB löschen und neu verbinden, das bringt nichts. Als workaround kannst du ein Blockly Script erstellen, welches auf fb-checkpresence.0.GERÄTENAME.absent.since triggert. Falls fb-checkpresence.0.GERÄTENAME.absent.since = 10 Dann HIER DEIN SCRIPT Ob die 10 Minuten ausreichen, musst du selbst gucken. Bei mir passt es einigermaßen, da die Geräte in weniger als 10 Minuten immer den Status ändern, bis sie sich dazu entschieden haben, abwesend zu bleiben.

Bis das Script nun aber letztendlich ausgeführt wird, dauert es halt eine gewisse Zeit, da das absent Objekt immer wieder genullt wird, sobald das Gerät wieder anwesend ist.

Eine weitere Alternative wäre, eine Hilfsvariable zu nutzen. Dabei wird das Script schon viel früher ausgeführt Beispiel: Hilfvariable heißt Meier_abwesend false Im Blockly Script kannst du dann auf fb-checkpresence.0.GERÄTENAME.presence triggern

Falls fb-checkpresence.0.GERÄTENAME.presence = false und Meier_abwesend = false
Dann set Meier_abwesend  auf true und dein eigenes script
Sonst Falls fb-checkpresence.0.GERÄTENAME.presence = false und Meier_abwesend = true und fb-checkpresence.0.GERÄTENAME.absent.since = 10
Dann set Meier_abwesend auf false
Sonst Falls fb-checkpresence.0.GERÄTENAME.presence = true und fb-checkpresence.0.GERÄTENAME.present.since = 10
Dann set Meier_abwesend auf false

Falls du hilfe brauchst, sag bescheid.

DNA-Trainer avatar Jan 16 '22 19:01 DNA-Trainer

@DNA-Trainer Klasse, danke für den Ansatz. Damit wird es klappen. VG Philipp

phg2k avatar Jan 28 '22 12:01 phg2k