NEWS
TR-064 Addapter- Anwesenheitserkennung
-
Wahrscheinlich komme ich mit dem Post reichlich spät, aber ich hatte das selbe Problem: Beim Starten des Adapters wurde der Status korrekt geschrieben, danach passierte nix mehr. Habe den Quellcode mal debugged und die Ursache (bei mir) gefunden. Der Adapter aktualisiert zuerst alle 4 funktionen (getExternalIPAddress, getWLAN, getWLAN5, getWLANGuest) nacheinander, bevor er den Timer einschaltet. Bei mir ist er bei WLAN5 auf die Nase gefallen, da dies bei meiner Fritzbox ausgeschaltet ist. Damit kommt er gar nicht mehr bis zur Timer-Aktivierung.
Ich habe bei mir mal getWLAN5 auskommentiert, und jetzt läuft es einwandfrei und bemerkt das abmelden/anmelden meines iPhones innerhalb weniger Sekunden `
Hallo,
ich muss den Threat jetzt nochmal hochholen.
Habe das gleiche Problem, dass die Abmeldung an der Fritzbox immer viele Minuten benötigt.
Bei mir liegt das aber anscheinend an der Fritzbox.
Ich kann folgendes immer wieder reproduzieren:
1. Wenn ich im WLAN bin zeigt die Fritzbox den richtigen Zustand mit "verbunden mit" an:
2. Ich melde mich vom WLAN ab, danach verschwindet das Smartphone komplett aus der Netzübersicht in der Fritzbox und der IOBroker Adapter stellt sich auch korrekt auf "false"
3. Ein paar Sekunden später taucht aber in der Fritzbox das Smartphone wieder auf (obwohl ja nicht im WLAN), allerdings nicht als verbunden, aber in der "Online" Liste, dadurch geht der Status im IOBroker natürlich auch wieder auf true:
4. Nach ca. 10 Minuten verschwindet das Smartphone dann wieder komplett von der Onlineliste in der Fritzbox und bleibt offline.
Gibt es dafür eine Lösung? Als Info, ich habe noch einen Fritzbox Repeater 1750E via Mesh verbunden.
Ist die Lösung von genovoxx auch für dieses Problem erfolgreich?
-
Guten Morgen zusammen,
kurz zur Umgebung: Fritz!Box 7490, OS 7
Repeater: Fritz!Repeater 1750E
Exakt das Problem von nikmaier habe ich auch. Ich schalte die Alarmanlage aufgrund der Anwesenheit ein und aus.
Mein Problem:
Die Fritz!Box erkennt die Abwesenheit und meldet mir per Telegram, dass die Alarmanlage nun scharf ist - 4 Minuten später erhalte ich die gleiche Meldung aber noch einmal. Leider kann ich es nicht nachweisen, würde aber behaupten, dass es seit Fritz!OS 7 auftritt.
Meine Recherche bisher:
1.) Gebäude wird verlassen -> Fritz!Box erkennt Abwesenheit -> ioBroker setzt Anwesenheit auf "false" -> Meldung per Telegram
2.) x Minuten später meldet Fritz!Box Anwesenheit, obwohl es keine gibt -> ioBroker setzt Anwesenheit auf "true"
3.) 4 Minuten nach erstem Verlassen meldet Fritz!Box erneut Abwesenheit -> ioBroker setzt Anwesenheit auf "false -> Meldung per Telegram
Da ich heute erst per Debug auf den tr-064 Adapter schließen konnte, habe ich zu 2.) noch keine Uhrzeit. Fakt ist aber, dass der Status der Abwesenheit bei mir nach 4 Minuten wieder eintritt, obwohl ich in der Zwischenzeit nicht anwesend war.
Das "Problem", dass meine erste Abwesenheit 5-10 Minuten zur Registrierung brauch - damit kann ich leben. Aber nicht, dass die Fritz!Box eine Anwesenheit meldet, wenn ich schon 2 km mit dem Auto Richtung Autobahn bin….
Besten Dank für Tipps...
Grüße
André
-
@FrY:Guten Morgen zusammen,
kurz zur Umgebung: Fritz!Box 7490, OS 7
Repeater: Fritz!Repeater 1750E
Exakt das Problem von nikmaier habe ich auch. Ich schalte die Alarmanlage aufgrund der Anwesenheit ein und aus.
Mein Problem:
Die Fritz!Box erkennt die Abwesenheit und meldet mir per Telegram, dass die Alarmanlage nun scharf ist - 4 Minuten später erhalte ich die gleiche Meldung aber noch einmal. Leider kann ich es nicht nachweisen, würde aber behaupten, dass es seit Fritz!OS 7 auftritt.
Meine Recherche bisher:
1.) Gebäude wird verlassen -> Fritz!Box erkennt Abwesenheit -> ioBroker setzt Anwesenheit auf "false" -> Meldung per Telegram
2.) x Minuten später meldet Fritz!Box Anwesenheit, obwohl es keine gibt -> ioBroker setzt Anwesenheit auf "true"
3.) 4 Minuten nach erstem Verlassen meldet Fritz!Box erneut Abwesenheit -> ioBroker setzt Anwesenheit auf "false -> Meldung per Telegram
Da ich heute erst per Debug auf den tr-064 Adapter schließen konnte, habe ich zu 2.) noch keine Uhrzeit. Fakt ist aber, dass der Status der Abwesenheit bei mir nach 4 Minuten wieder eintritt, obwohl ich in der Zwischenzeit nicht anwesend war.
Das "Problem", dass meine erste Abwesenheit 5-10 Minuten zur Registrierung brauch - damit kann ich leben. Aber nicht, dass die Fritz!Box eine Anwesenheit meldet, wenn ich schon 2 km mit dem Auto Richtung Autobahn bin….
Besten Dank für Tipps...
Grüße
André `
Hi André,
versuch es mal ohne deinen Repeater, ich vermute das es daher kommen könnte nur so ein Idee von mir.
Grüße
-
Teste ich mal. Zur Not richte ich den Repeater auch nochmal über den Adapter zusätzlich ein. Wobei mich hier stört, dass man auf dem Repeater keine User anlegen kann und dann per ioBroker mit dem Admin-User arbeiten muss.
Aber ich werde es mal versuchen und berichten. Leider habe ich dieses Phänomen auch nicht jedes Mal, daher ist die Reproduzierbarkeit recht schwierig.
-
Hallo,
das Problem liegt am Repeater, wenn du mit deinem Handy direkt an der Fritzbox angemeldet bist, dann setzt er die Abwesenheit sofort, wenn du aber am Repeater angemeldet bist, dann setzt er nur kurzzeitig auf Abwesend und springt dann sofort wieder auf anwesend.
Warum?
Weil die Fritzbox dein Handy inkl. IP Adresse in der Heimübersicht hat.
Wenn du jetzt vom Repeater weggehst, dann wirst du in der Heimübersicht sehen das das Handy ganz kurz weg ist und dann wieder kommt (aber ohne IP Adresse).
Und für IOBroker ist das Handy online auch wenn es in der Heimübersicht keine IP hat.
Erst nach ein paar Minuten wenn es von der Heimübersicht ganz weg ist, ist es auch für IOBroker offline.
Es ist auch völlig egal ob mit oder ohne Mesh.
Und der Fehler lässt sich nicht immer reproduzieren, aber zu 90%.
Das ganze habe ich mit AVM diskutiert, AVM weiß auch den Bug! Der Techniker sagte mir, dass er das in die Entwicklung weitergibt.
Was und wann aber jetzt bei AVM passiert bleibt offen.
Einzige Chance momentan, den Repeater raus oder ein Programm wo eine Variable nach dem erstem Mal gesetzt wird,
hab mich da mal gespielt, allerdings habe ich da anscheinend noch einen Fehler drin, da es nicht immer 100% funktioniert hat und habe dann auch kein Lust mehr gehabt weiter zu machen, aber ich stell es trotzdem mal hier rein:
-
Da ich leider aktuell nicht Zuhause bin, kann ich es nicht testen, aber vllt. kannst du es ja auch kurz beantworten: Wenn du mit einer zweiten TR-064 Instanz den Repeater zusätzlich abfragst; ist die Anwesenheit auf dem Repeater denn korrekt? Es ist natürlich nicht zielführend die Fritz!Box als auch den Repeater abzufragen, aber wenn es hilft, hilft es.
Alternativ fällt mir noch der Ping-Adapter ein. Man könnte folgendes auch einstellen:
-
Wenn TR-064 keine Anwesenheit meldet, per Ping prüfen, ob Gerät da (wird ja false sein), dann Anwesenheit auf "false" setzen.
-
Wenn TR-064 Anwesenheit meldet, per Ping prüfen, ob Gerät da (ich vermute, dass die Geräte dann kurzzeitig per Ping erreichbar sind), dann Anwesenheit auf "true" setzen
Ich weiß, dass z. B. die iPhones nachdem sie gesperrt wurden, nach 10-20 Sekunden nicht mehr auf Ping reagieren. Aber genau das könnten wir hier ja auch ausnutzen, da ich vermute, dass ein iPhone, wenn es das WiFi betritt, definitiv anpingbar sein wird.
-
-
Das habe ich noch nicht getestet, weil ich den Repeater im Mesh habe (ja ich weiß Mesh bringt nix mit einem Repeater, aber die Einstellungen werden dann komplett von der Fritzbox übernommen!).
Vielleicht kannst du das ja mal testen, weil ich will jetzt nicht meine ganze Config wieder über den Haufen schmeißen.
Wegen dem Ping Adapter, das wollte ich am Anfang eigentlich nur über den Pingadapter machen, aber da mein Samsung bei Bildschirm aus nach ein paar Sekunden/Minuten kein Ping mehr zulässt ist das für mich nicht nutzbar gewesen.
-
@nikmaier:Wegen dem Ping Adapter, das wollte ich am Anfang eigentlich nur über den Pingadapter machen, aber da mein Samsung bei Bildschirm aus nach ein paar Sekunden/Minuten kein Ping mehr zulässt ist das für mich nicht nutzbar gewesen. `
Ja, das ist beim iPhone ja auch so. Daher die Idee, bei Anwesenheit über fritz.box gleichzeitig per ping das Gerät anzupingen und somit den Status setzen zu lassen, da das Handy, wenn es sich per DHCP ja im WiFi eine Adresse zieht, auch kurz per ping erreichbar sein muss.
Und beim Verlassen des WiFis würde per ping keine Antwort mehr kommen, somit könnte eine Abwesenheit gesetzt werden.
Wenn dann die Fritz!Box bzw. über den Repeater wieder eine Anwesenheit getriggert wird, wird der ping definitiv nicht funktionieren (also antworten, da das Gerät nicht mehr im WiFi ist), also bleibt die Anwesenheit auf false.
Ich hoffe, man versteht, was ich meine
Edit: Wobei ich gerade feststelle, dass der Ping-Adapter ja auch nur alle 60 Sekunden pollt. Könnte man runter stellen, aber man müsste es ja auf 1 Sekunde oder weniger stellen, damit nach der "TR-064 Adapter"-Anwesenheit direkt der ping kommt… Also vermutlich auch keine Lösung, da ich nicht jede Sekunde alle Geräte pingen lassen will.
-
Kannst ja mal probieren und dann berichten
-
Mache ich. Zusätzlich kam mir aufgrund deines Posts noch eine weitere Idee. Du sagtest, dass das Gerät in der Fritz!Box ohne IP wieder auftaucht. Also könnte man doch auch folgendes tun:
- Wenn (tr-064 adapter) active = false, dann lösche Inhalt von (tr-064 adapter) lastIP
Wenn ich jetzt nach Hause komme, würde ich nicht nur auf "active" = true prüfen, sondern auch ob "lastIP" gefüllt ist.
Wenn lastIP gefüllt, dann Anwesenheit auf true, wenn leer, dann auf false lassen.
Scheint mir fast schon die charmanteste Lösung. Prüfe ich auch mal!
-
Ah ok, das wäre vielleicht eine gute Lösung, auf das Objekt bin ich noch gar nicht gestoßen, da könnte man bestimmt was machen.
Ich werde morgen am Feiertag da evtl. auch mal rumtesten.
Halt uns auf dem laufenden
-
Ggf. funktioniert es ja so wie anbei. Leider kann ich es erst heute Abend testen, bin gerade nur per VPN im Netz
Wichtig wäre nur, dass der Status "active" und "lastIP" gleichzeitig gefüllt werden. Sonst benötigen wir noch ein timeout.
Zumindest funktioniert es remote in soweit, dass ich "active" auch manuell auf "true" oder "false" setzen kann. Bei true setzt er nun meine Anwesenheit nicht mehr auf "true", da ich "lastIP" habe löschen lassen. Wenn ich also nachher nach Hause komme, sollte es hoffentlich funktionieren. Merke ich spätestens, wenn ich ein Fenster öffne und die Alarmanlage losheult :lol:
(die doppelte "falls"-Verschachtelung habe ich nur aufgrund der besseren Übersicht. Leider hab ich noch nicht herausgefunden, ein "und" / "oder" mit einem Zeilenumbruch zu versehen. Manche Screenshots von Blockly zeigen diese Umbrüche, ich kann bei mir jedoch "und" und "oder" nur innerhalb der Zeile nutzen ohne Umbruch)
9495_capture.png -
dem iPhone wird auch eine feste IP zugewiesen.
-
Das ist mir klar, die Frage war nur (da ich noch nicht Zuhause bin), ob der Wert von "lastIP" gleichzeitig mit "active = true" gefüllt wird, oder nicht.
Bzw. eine dynamische, da DHCP von der FB.
-
Schade die Idee war gut, aber das Feld "lastIP" wird komischerweise überhaupt nicht mehr aktualisiert wenn man sich ins WLAN einlogged.
EDIT: Was ich aber gerade gesehen habe, dass sich das Object LastActive-ts (was immer das überhaupt ist) mit verändert beim einloggen, jetzt ist natürlich die Frage ob das auch beim "aktiv sein ohne IP" auch so ist oder nicht, dass kann ich gerade nicht testen.
-
Es gibt bei jedem Device ja auch noch die beiden Datenpunkte lastInactive-ts und lastActive-ts als Timestamp.
Da ich in der Erkennung in der letzten Zeit auch immer wieder Schluckauf bemerkt habe, hatte ich schon angedacht, aus diesen beiden Werten etwas zu berechnen.
Habe nur noch nicht beobachtet, unter welchen Umständen und wie schnell die beiden Werte aktualisiert werden.
-
Also habe es gerade getestet, "lastActive-ts" kannst vergessen, weil das auch wieder sofort aktualisiert wird wenn "active" auf true geht.
Lastactive-ts ist übrigends der Timestamp, jetzt könnte man noch vielleicht spielen mit
Wenn "lastActive-ts" + 100 (Sekunden) ist größer/kleiner als "lastInactive-ts" dann usw.
Da werde ich morgen mal spielen…
-
Kurzes Feedback von mir: Löschen von lastIP funktioniert nicht, da dieser Wert bei Neu-Anmeldung des Geräts am WiFi nicht gefüllt wird
Eigentlich werden genau die Werte aktualisiert, die bei jedem An- oder Abmelden aktualisiert werden. Es gibt keinen Wert, der nur beim Anmelden aktualisiert wird. Mist.
-
Was ist mit lastActive-ts?
Der wird anscheinend nur aktualisiert, wenn das device angemeldet wird und bleibt bis zur nächsten Anmeldung unverändert, wenn ich das richtig sehe.
-
So habe jetzt viel probiert, mein Ergebniss, vergiss es
Die lastactive Objekte kann man vergessen, da sich diese bei jeder Änderung von "active" auch bei ab UND anmelden mitändern, somit hat man das gleiche Problem wie wenn man nur das "active" Objekt hernimmt.
Jetzt habe ich noch folgendes versucht:
-
Anwesenheit NUR durch ping-Adapter und
-
Abwesenheit NUR durch "active"-Objekt
Kann man auch vergessen, da sich (zumindest bei meinem Samsung) das Handy nicht pingen lässt wenn der Bildschirm aus ist, auch wenn die Einwahl ins WLAN erfolgt ist keinerlei Ping möglich, erst beim nächsten Bildschirm erwachen und das ist sinnlos.
Somit werde ich mit diesem Bug von AVM leben und hoffen das die das endlich mal lösen.
Vielleicht können ja andere die auch einen Repeater haben und das Problem haben auch mal direkt AVM anschreiben, umso mehr da Supports ausgelöst werden umso schneller beheben die vielleicht den Bug.
-