Erkennung von Ein- und Ausgängen aus geografischen Zonen (lat/long)

In Version 3 von OwnTracks konnte man die Ereignisse für Ein- und Ausgänge von Zonen abrufen (Waypoints - OwnTracks Booklet)

Die Genauigkeit ist, was sie ist, aber dies ermöglicht die Erkennung, ob ein Benutzer zu Hause ist.

Der Anwendungsfall ist relativ einfach: Ein Benutzer, der OwnTracks über die Open-API konfiguriert hat, sendet ein Ereignis für den Ein- oder Ausgang einer Zone. Eine Szene auf der Gladys-Seite wird dann den Benutzer als anwesend oder nicht markieren. Daraus können zahlreiche Szenarien entstehen.

Danke für den Beitrag!

Kannst du mir genau von deinem Anwendungsfall erzählen? Wofür brauchst du das?

Ich habe meinen ursprünglichen Post aktualisiert

ah ok also sprichst du wirklich über die Verwaltung von Owntracks-Zonen.

Ich dachte, du meinst die nativen Gladys-Zonen.

Warum Owntracks-Zonen vs. native Gladys-Zonen?

Und was ist dein Anwendungsfall für die Nutzung von Zonen im Allgemeinen?

Egal, das Ziel ist es, ein Event zu haben.

Das steht in meinem Beitrag.

Owntrack sendet den Standort, wenn ich in die Zone eintrete, wird ein Event ausgelöst, ich kann eine Szene auslösen (z. B. mich als zu Hause markieren, die Außenlichter einschalten usw.).

Oder sogar das elektrische Tor öffnen.

Ok, danke für die Präzisierung!

Für mich muss man das nativ entwickeln, damit man, falls OwnTracks verschwindet oder man eine andere Standort-App nutzen möchte, trotzdem Szenen erstellen kann.

Die gesamte Stack der v3 muss neu entwickelt werden.

Funktionale Spezifikation:

  • Einen Bereich in der „Karte“-Ansicht mit einem Namen, einer Farbe und einem Radius erstellen
  • Einen Bereich in der Kartenansicht bearbeiten
  • Einen Bereich in der Kartenansicht löschen
  • In den Szenen kann ich einen Trigger „wenn der Benutzer XX in den Bereich YY eintritt“ auswählen
  • In den Szenen kann ich einen Trigger „wenn der Benutzer XX den Bereich YY verlässt“ auswählen

Hallo,

Ich greife diesen Beitrag auf, falls es jemanden interessiert, ich hatte mit dem Thema Handle_Owntracks_MQTT_messages begonnen und bin dann abgeschweift :slight_smile:

Also, momentan bin ich bei:

  • Aktualisierung der Benutzerposition basierend auf einem MQTT-Topic
  • Anzeige der Zonen, die in der Datenbank sind
  • Erstellen einer Zone in der „Karten“-Ansicht (nur Frontend)
  • Bearbeiten einer Zone in der Kartenansicht (nur Frontend)
  • Löschen einer Zone in der Kartenansicht (nur Frontend)

To-Do

  • Es sollte einen „Owntracks“-Dienst in der Benutzeroberfläche geben, der erklärt, wie der Dienst funktioniert (mit Gladys Plus/oder mit MQTT) (wie im Ticket gefordert)
  • Datenbank mit Area-Events (Erstellen, Bearbeiten, Löschen) beeinflussen
  • Möglichkeit, einen Namen, eine Farbe und einen Radius zu vergeben (in Arbeit mit einem Popup)
  • In den Szenen kann ich einen Trigger „wenn der Benutzer XX in die Zone YY eintritt“ auswählen
  • In den Szenen kann ich einen Trigger „wenn der Benutzer XX die Zone YY verlässt“ auswählen

Technisch:

  • Aktualisierung von Leaflet auf 1.7
  • Verwendung von Leaflet-draw zur Verwaltung der Erstellung von Markern & Co

Ich habe einen Branch hier.

Ich bin nicht besonders fit darin, daher ist das kein Thema, das schnell vorankommt. Sagt mir, ob es weggeworfen werden soll oder ob jemand helfen oder das Thema übernehmen möchte, um schneller voranzukommen.

Toll! Super, wenn du uns bei diesen Funktionen hilfst.

Zögere nicht, falls du unterwegs Fragen hast :slight_smile:

Hallo zusammen!

Ich habe gerade die Entwicklung dieser Funktion abgeschlossen, die jetzt im Docker-Dev-Image gebaut wird :ok_hand:

Um es euch zu zeigen, sieht es so aus:

Der Tab „Karte“ ist nun im Vollbildmodus, mit den angezeigten Zonen:

Man kann auf „Zone erstellen“ klicken, um diesen Bildschirm anzuzeigen:

Und es ist möglich, eine Zone zu bearbeiten, indem man einfach auf die zu bearbeitende Zone klickt:

Anschließend ist es in den Szenen möglich, 2 Arten von Auslösern zu erstellen.

Benutzer betritt die Zone:

Benutzer verlässt die Zone:

Der Pull Request: Add the ability to create / edit a zone in the map + create scene based on zone change by Pierre-Gilles · Pull Request #1208 · GladysAssistant/Gladys · GitHub

Der DEV-Build läuft hier: https://github.com/GladysAssistant/Gladys/actions/runs/901904397

Ich habe diese Funktion mit Frontend-Tests in Cypress entwickelt, und ehrlich gesagt, war das der Hammer! :slight_smile: @AlexTrovato Cypress rockt wirklich!!

Ich bin wie immer für jedes Feedback offen! :slight_smile:

Hallo :wave:

Ich konnte es heute Abend testen und hier sind meine Anmerkungen:

  • Wenn man eine Zone erstellt, ist es nicht offensichtlich, dass man auf die Karte klicken muss (und die Fehlermeldung, wenn man es nicht tut, ist nicht sehr aussagekräftig)
  • Wenn ich es richtig verstehe, ist die Verarbeitung der Events von Gladys Plus entwickelt, aber nicht die von MQTT
  • Ich habe schnell die Abfrage der Events von MQTT (zum Testen) programmiert und es ist toll, sein Gesicht auf der Karte zu sehen

  • Das Auslösen von Szenen funktioniert perfekt :rocket:
  • Die Karte wird nicht in Echtzeit aktualisiert (ich habe das Gefühl, dass es keine Abfrage/Übermittlung der Position per Websocket gibt). Wenn es nicht entwickelt ist, finde ich, dass es eine nette Funktion ist und nicht sehr kompliziert zu entwickeln.

Letzter Punkt, ich finde, dass es langsam kompliziert wird, diese Begriffe zu unterscheiden:

  • Das Haus ist leer / Das Haus ist nicht mehr leer
  • Verlassen des Hauses / Rückkehr nach Hause
  • Benutzer verlässt die Zone / Benutzer betritt die Zone

Für diejenigen, die an Owntracks => MQTT interessiert sind, kann ich diese issue vorantreiben (da ich schon etwas habe, das funktioniert). Aber es bleiben die Tests, die Konfiguration, das Frontend, die Dokumentation…

Hallo @cicoub13 und vielen Dank, dass du dir die Zeit genommen hast, es zu testen! :slight_smile:

Gut beobachtet, stimmt, im Haushalt weisen wir darauf hin, ich werde es hinzufügen!

Tatsächlich!

Toll!

Nicht dumm, diese Entwicklung wurde schon lange gemacht und tatsächlich gibt es keine WebSockets. Das kann leicht hinzugefügt werden, ich werde das ändern.

Was findest du unklar?

Ich finde die Namen eigentlich recht aussagekräftig.

Allerdings kann es verwirrend sein, den Unterschied zwischen dem « Haus » und den Zonen zu verstehen. Wir müssen dem Benutzer klar machen, dass das Haus ein « Konzept » in Gladys ist, und dass man für ein Szenario, bei dem der Benutzer das Haus über eine Zone betritt/verlässt, zwei Szenarien erstellen muss:

  • « Wenn der Benutzer die Zone betritt » => Benutzer als im Haus markieren
  • « Wenn der Benutzer die Zone verlässt » => Benutzer als aus dem Haus markieren

Die Bezeichnungen sind leicht verständlich. Es geht eher darum, wie diese Aktionen ausgelöst werden.
In manchen Fällen geschieht das automatisch (wie bei den Zonen).
In anderen Fällen muss die Aktion über eine Szene ausgelöst werden (Nutzer anwesend über ein Bluetooth-Gerät, wenn ich das richtig verstanden habe).
Ich habe die Nutzerpräsenz und das leere Haus nicht viel genutzt, ich werde es testen.

Im Fall der Erkennung der Anwesenheit im Haus liegt die Wahl beim Benutzer, absolut alles ist möglich:

  • Bluetooth
  • MQTT in einem Skript
  • MQTT auf deinem Android-Telefon, wenn dein Telefon mit dem WLAN des Hauses verbunden wird/verbunden bleibt

Vielleicht wäre ein Link in jedem Kasten zu einer Erklärung in der Dokumentation besser?

Jedenfalls versuche ich, all das in den Videos, die ich in letzter Zeit mache, so gut wie möglich zu erklären. Danach weiß ich nicht, ob man in der UI besser machen kann, die Beschriftungen und die Beschreibungen jedes Kastens scheinen mir recht klar zu sein.

@cicoub13 ich habe alle Fixes umgesetzt, die du vorgeschlagen hast :slight_smile:

Der kleine Hinweis „Klicken Sie auf die Karte“:

Die Position der Benutzer wird nun live mit WebSockets aktualisiert :slight_smile:

Der PR ist hier:

Außerdem gab es einen Bug, den ich beim Verwenden der Funktion bemerkt habe: Die Berechnung der Entfernung zwischen einem Benutzer und einer Zone erfolgte in Kilometern und nicht in Metern, und dadurch funktionierte das Verlassen der Zone nicht (Gladys verglich Meter mit Kilometern.. :slight_smile: )

Ich merge das, sobald die Tests durchlaufen, und baue eine neue Dev-Version!

Edit: Es ist gemerged, Dev-Build läuft: https://github.com/GladysAssistant/Gladys/actions/runs/927307843

Der korrigierte Dev-Build ist im Docker-Dev-Tag verfügbar :slight_smile:

Super :rocket: Ich teste morgen

Hinweis „Klicken Sie auf die Karte“: :white_check_mark:
Live-Aktualisierung über Websocket auf der Karte: :white_check_mark:
Test zum Auslösen des Verlassen der Zone: :white_check_mark:

Sehr intuitiv und einfach zu bedienen (ob auf der Karte oder in den Szenen).

Danke, dass du dir die Zeit genommen hast, um @cicoub13 zu testen :folded_hands:

Das kommt in der nächsten Version!

Diese Funktion ist jetzt in Gladys v4.4 live :slight_smile: