Hallo Egmont,
EgiGeoZone nutze ich nun schon seit vielen Jahren und durch FHEM standen wir ja auch schon das eine oder andere mal in Kontakt.
Da sich meine Falschmeldungen in Bezug auf meine Anwesenheit in letzter Zeit arg verschlechtert haben, befasse ich mich mal wieder mit dem Thema. Insbesondere die Kombination aus Geozone und Bluetoothzone soll bei mir dazu beitragen, dass das sporadisch aber inzwischen sehr häufig auftretende Springen zwischen den Zonen aufhört.
Ich habe zwei verschiedene Beacontypen im Einsatz:
- Raspberry Pi als "Leuchtfeuer"
- Gigaset G-Tag
Serverseitig kommt FHEM mit den GCM-, Geofancy- und Roommates-Modul via HTTP-Auth durch einen Apache-ReverseProxy ins Spiel.
Von den Beacons gibt es mehrere. Diese setze ich unterschiedlich ein:
- Raspberry Pi als "stationäres Beacon"
- G-Tag als "stationäres Beacon"
- G-Tag als "mobiles Beacon"
Die "mobilen" Beacons werden via lepresenced überwacht und dienen FHEM zur (u.a.) Erfassung der Anwesenheit. Diese spielen somit in Kombination mit EgiGeoZone keine Rolle.
Die Raspberry Pi's sollen - genauso wie zwei bis drei G-Tags - für EgiGeoZone als Bluetoothzonen zur Verfügung stehen.
Vor einiger Zeit hatte ich mit EgiGeoZone und einem Raspberry Pi als Bluetoothzone experimentiert, das aber nicht weiter verfolgt. Damals war das noch in den frühen Anfängen. Seit langem nutze ich die Betaversion, aktuell in der Version 1.1.2.
Soviel erst mal zu der Umgebung.
Aktuell (eigentlich fing es "gefühlt" mit Android 7 an) habe ich das Problem, das "jemand" ("wer-auch-immer": EgiGeoZone, Google, kosmische Strahlung, WTF, ?) der Meinung ist, das ich wiederholt in meine Geozone hinein- und heraus springe. Dies ist besonders dann lustig, wenn die Alarmanlage aktiv ist, ich seelenruhig schlafe, EgiGeoZone irgendwann klamheimlich an FHEM meldet das ich "home" verlassen haben. Das hat noch keine Auswirkungen. Wenn dann aber später EgiGeoZone meldet, das ich die Geozone betrete, wird dieses munter an FHEM gemeldet und die Alarmanlage deaktivert. Früher, also zu des "Kaisers Zeiten" als das "Zonenheraus- und hereinspringen" noch nicht auftratt (oder sehr, sehr selten..) da funktionierte das mal sehr zuverlässig. Heute durch (vermutlich Android 7) gleicht es eher einem Glückspiel.
Ursachen können hier viele in Frage kommen. Allerdings habe ich noch nicht DIE Ursache finden und eliminieren können. Und bevor Fragen aufkommen: Ja, Doze mode und sonstige "Leistungsoptimierungen" sind in Bezug auf EgiGeoZone deaktiviert, Standort Suchmethode nutzt "Hohe Genauigkeit". Das Problem mit dem "WLAN im Standbymodus eingeschaltet" in Verbindung mit der Einstellung "immer" scheint aber - nach wie vor - auch in der Kombination Android 7.0 und Samsung-Stock-ROM vorhanden zu sein: WLAN geht wohl im Deep Standby ebenfalls offline. Dies ist vermutlich auch einer der (möglichen) Ursachen. Hierfür kenne ich allerdings keine Lösung, ausser auf Hilfe durch Android 7.1 zu hoffen.
Nun wollte ich mal meine "Leuchtfeuer" als Work-around einfangen... aber irgendwie sollte mir das heute nicht gelingen..
Es beginnt mit dem Hinzufügen einer neuen Bluetoothzone:
Mittels Scan möchte ich einen neuen Beacon hinzufügen. Es öffnet sich (wie gewohnt) das Overlay und dort werden dann die UUIDs plus Major, Minor der gefundenen Beacons angezeigt. Und hier habe ich gleich mehrere Probleme:
Aktuell müssten hier bei mir mindestens 5 Beacons angezeigt werden. Meist wird jedoch nur einer gefunden, sporadisch auch mal 3, eher selten auch mal 4 oder alle 5. Auch eher zufällig erscheint kurz: "Bitte warten... Scan läuft..". Meist wird anscheinend nur das Ergebnis eines (Hintergrund-)scans(?) angezeigt.
Ein weiteres Problem in Bezug auf die (sporadisch) gefundenen Beacons liegt in der ausschliesslichen Anzeige der Kombination aus UUID#Major#Minor. Die G-Tags nutzen nämlich alle die selbe UUID, Major und Minor. Und da ich 5 Stück davon habe, kann ich sie in EgiGeoZone nicht voneinander unterscheiden. Hier hilft zur Erkennung nur das Entnehmen der Batterien, Stück für Stück, wenn dann nicht das Problem mit dem vorab beschriebenen Scan wäre.
Mir ist es im Verlauf von mehreren Stunden nicht gelungen alle G-Tags und Raspberrys einzurichten. Mal wurde der eine gefunden, mal der andere, mal keiner. Irgendwann verließ mich auch die Lust ständig die Batterien ein-, bzw. auszustecken um den richtigen G-Tag zu finden. Selbst die Raspberrys wurden nur selten gefunden.
Hier möchte ich gleich einen Verbesserungsvorschlag einreichen:
Das Ergebnis des Scans sollte ähnlich wie es in anderen Tools (Locate Beacons, Beacon Locator, etc.) dargestellt werden. Einen Screenshot von Locate Beacons anbei.
Neben der UUID, Major, Minor wird hier auch die MAC Adresse angezeigt. Goldwert bei den G-Tags. Damit kann man dann auch die auseinander halten.
Nice to have: RSSI, Distanz und Echtzeitscan...
In den Apps (Locate Beacons, Beacon Locator, etc.) werden im Übrigen alle Beacons zur selben Zeit gefunden und angezeigt. Die Vermutung liegt also nahe, dass der Scan in EgiGeoZone irgend etwas anders macht.
Ich habe mir die Beiträge im Forum durchgelesen, die vermeintlich mit dem Thema "Blauzahn" zu tun haben. Hier kam ja Anfang des Jahres wieder etwas Bewegung rein (siehe Thread: "Beaconsuche durch Geozone anstoßen".
Dieser Ansatz (und deren Umsetzung) klingt sehr gut und soll als Basis für meinen Work-around dienen. Ich hatte viele Jahre 3 Geozonen via Google:
- home: 100 Meter Radius
- Homezone: 500 Meter Radius
- wayhome: 1000 Meter Radius
Der Gedanke dabei:
"wayhome" ist selbstredend und wird seitens FHEM und "Roommates" in Verbindung mit geofancy verarbeitet.
"Homezone" diente als Initiator für "Achtung, da kommt gleich jemand nach Hause". Im Smartphone wurde WLAN und BT aktiviert.
"home" ist ebenfalls selbstredend und löst weitere Trigger seitens FHEM aus. Als Beispiel habe ich schon die Alarmanlage erwähnt.
Im Laufe des Tages habe ich meine Geozonen auf zwei konsolidiert (Home mit nun 150 Meter und Wayhome mit seinen 1000 Metern Radius) und mal auf Pathsense umgestellt. Der Flag "Falschmeldungen ignorieren" ist gesetzt. Dabei ist mir nicht entgangen das es mal hieß, dass das nur für Google gilt. Zusätzlich hatte ich noch eine Bluetoothzone definiert.
"home", "wayhome" und die Bluetoothzone "Wohnung" nun die weiteren Aktionen "setExtendedTasks" auf:
Beim Betreten:
Tasker Task "Egi_GeoZoneEnter"
WLAN ein
Bluetooth ein
Bluetoothscanner ein
Beim Verlassen:
Tasker Task "Egi_GeoZoneExit"
WLAN aus
Bluetooth nichts tun (Bluetooth benötige ich im Auto)
Bluetoothscanner aus
Die Tasker Task setzen im Moment lediglich die übermittelten Variablen zusammen und senden je Entry und Exit (Transition 1,0) eine Textnachricht und eine Locationnachricht (Standortmeldung mittels Googlemaps) via Telegram zum debuggen.
Die Bluetoothzone "Wohnung" hat "home" als Alias gesetzt und Koordinaten eingetragen.
Nun kam es, das ich während meiner heutigen "Bastelstunde" das Haus verlassen musste; Pathsense war aktiv. Leider habe ich nicht mehr im Kopf (und schon den Telegramverlauf gelöscht), was beim Verlassen alles gemeldet wurde. Als ich jedoch wieder zurück kam gab es keine Meldung von "wayhome". Dafür gabe es aber knapp 18(!) Meldungen via Telegram, das ich "home" betreten, "home" verlassen, "home" betreten, ... habe. Und das als ich direkt vor meiner Garage den Motor ausmachte. Ich befand mich also "direkt im Auge" meiner Zone und ca. 8 - 10 Meter Luftlinie (durch ein paar Wände hindurch) von meinem "Wohnungsbeacon" entfernt.
Nun habe ich in der Zone "home" angegeben, dass das Beacon "Wohnung" dazu gehört. Und "Wohnung" auf "wird über Geozone gestartet" gesetzt.
Nach dieser Messageflut habe ich dann erst mal einiges zurückgesetzt und wollte "von scratch" anfangen. Da kam dann wieder das "Scanproblem" zum Tragen
Jetzt stehe ich quasi wieder am Anfang und dachte mir mal hier etwas zu "brainstormen".
Was ich konkret realisieren möchte:
- EgiGeoZone zur Unterstützung einer "zuverlässige" Anwesenheitserkennung in Kombination mit Tasker und FHEM heranziehen
- EgiGeoZone nutzen um beim Betreten oder Verlassen möglichst zuverlässig Aktionen (Tasker, FHEM) auszulösen
- Das momentane Fehlverhalten (Heraus- und Hineinspringen in die "home" Zone obwohl sich das Smartphone im "Epizentrum" der Zone befindet)
- weitere Bluetoothzonen im Haus / auf dem Grundstück (z.B. Garage 1 und Tiefgarage, Keller, Erdgeschoss, Obergeschoss, etc.) definieren und via EgiGeoZone / FHEM / lepresenced auswerten.
Im Fokus steht nun jedoch erst mal Punkt 1 und das Problem mit dem Scanner sowie dem ständigen Springen. Vielleicht habe ich ja auch irgendwo einen Knoten oder etwas übersehen und es gelingt uns ja etwas gemeinsam...
Viele Grüße
Martin