[Modul] OwnTracks

Modul zur Nutzung von OwnTracks-Informationen zur Anwesenheitserkennung oder zum Tracken von mobilen Endgeräten mittels der OwnTracks-App.

Voraussetzung

  1. Installation der OwnTracks-App auf einem mobilen Endgerät.
  2. Externe Verbindung zum IP-Symcon-Server z.B. per Connect-Schnittstelle.

Konfiguration der App auf dem mobilen Endgerät

  • Den Modus auf HTTP einstellen
  • Als Adresse ist https://meineURL.de/hook/owntracks einzutragen.
  • Der Zugang sollte über UserID und Password geschützt werden
  • Die DeviceID festlegen
  • Zu überwachende Region(en) festlegen
  • Unter Karte das Sendeverhalten einstellen. Bei mir hat sich die Einstellung Wesentlich (IOS) bzw. Signifikante Änderung (Android) bewährt

Installation und Konfiguration des Moduls

Die Installation der Bibliothek wird hier beschrieben.
Da das Modul aktuell nur als Beta-Version verfügbar ist, bitte den genauen Namen (OwnTracks) im Module-Store in die Suche eingeben.

  • Im Bereich der I/O-Instanzen eine OwnTracks-Hook-Instanz anlegen
  • UserID und Password aus der App eintragen
  • Eine OwnTracks-Daten-Instanz anlegen.
  • Topic owntracks/UserID/DeviceID festlegen
  • Festlegen, ob Positionsdaten übernommen werden sollen
  • In der OwnTracks-App unter Einstellungen die Taste Sende Regionen (IOS) drücken

Dokumentation
Die Dokumentation ist hier zu finden.

1 „Gefällt mir“

Changelog

V1.00
Grundversion

V1.01
Fix: Anpassung für Android-Geräte

V1.02
Fix: Optimierung von ReceiveData (Fehlermeldung bei IOS)
Neu: Unterstützung von NextTracks

Ich hab das gleich mal ausprobieren müssen :slight_smile:
Gratuliere, funktioniert.
Ein paar Fragen hätte ich

  • Die Position als String ist nett, aber wäre es nicht einfacher, die einzelnen Werte als Variable anlegen zu können?
  • Und jetzt kommts: Eine definition vom Geofence auf basis der IPS Daten mit der Möglichkeit einen Durchmesser eingeben zu können und wenn sich das Device innerhalb dieses Bereichs befindet, dann könnte eine Variable auf „Anwesend“ oder auf „Abwesend“ gesetzt werden :smiley:
  • Und ein Hit wäre, das ganze auf einer Karte anzeigen zu können. Aber ich glaub das geht, zumindest mit Google Maps. Aber gibt ja auch andere anbieter. Openstreetmap fällt mir da ein.
  • In der Android App finde ich in den Einstellungen kein „Sende Regionen“. Ich hab in der Kartenanzeige lediglich einen Pfeil nach oben mit darüber liegenden Strich. Damit sendet die App die aktuellen Daten, was auch funktioniert.

Ansonsten echt toll.

prima, dass es bei Dir funktioniert. Ich lese heraus, dass Du Android verwendest. Das konnte ich bisher nicht probieren.

nein das ist falsch. Du musst als Topic „owntracks/UserID/1“ eingeben. Wobei die UserID diejenige ist, die du in der Hook-Instanz als Benutzer eingegeben hast.

Da gibt es sicherlich viele unterschiedliche Geschmäcker. Wenn Du irgendetwas anderes möchtest, dann einfach die Daten aus „Position“ holen und dann selbst formatieren.

			$position = json_decode(GetValueString(12345));
			$url = "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=".str_replace (",",".",$position->lat)."&lon=".str_replace (",",".",$position->lon);
			$result = json_decode(file_get_contents($url));

Auf der Karte anzeigen geht bei IOS ganz simple über einen html-Code

<a href="maps://?q==@51.12345,11.12345">Karte</a>

Auf Android sollte das ähnlich funktionieren. Da kenne ich den Befehl aber nicht.

Diesen Punkt habe ich nicht verstanden. Der müsste eigentlich unter Einstellungen zu finden sein. Ansonsten die Regionen erst anlegen, wenn du bereits die Instanzen eingerichtet hast. Dann geht es auch.

Ja, ich verwende einen Androiden

Ja, das hab ich aus meinem Beitrag gelöscht, weil ich es falsch verstanden hab :wink:

Klar, das werd ich mal testen. Danke.

Ich dachte da eher ans Webfront. Die App ist da nachrangig.

Nö, da is nix



Meinst du „Orte“?

ja, die heißen bei IOS „Regionen“.

Gut, ich hab da mal meine aktuelle Position eingetragen. Radius 30m (ich weiß, sehr klein). In der App bekomme ich angezeigt, dass ich da drinnen bin. In IPS ändert sich da aber nicht.
Mit „Wesentlicher Änderung“ meinst du wahrscheinlich diesen Pfeil


Wenn das so ist, dann heißt das unter Android „Signifikante Änderung“

Und ja, man weiß jetzt ungefähr, wo ich wohne. Ich kann damit leben.

das sollte dann aber bei der nächsten Aktualisierung durch die App dann passen.

passe ich in der Beschreibung an.

Und was sollte ich sehen? Die Positionsdaten kommen jetzt auch rüber.

Ah, im Debug hab ichs gefunden

"inregions":["zu Hause"]

Das kommt aber nicht an. Also im Debug schon, aber in keiner Variable. Wenn das irgendwo ankommt, dann erübrigt sich natürlich mein Wunsch vom Geofence.

Vielleicht noch als Anregung (hab mich damit schon mal vor Wochen beschäftigt), die SSID könnte durchaus als zusätzliche Prüfung der Anwesenheit interessant sein.

Du solltest zwei Variablen sehen. Die eine ist eine Bool und heißt bei dir „zu Hause“ und die andere ist eine Float und heißt bei dir „Entfernung nach zu Hause“.
Sollte es diese bei Dir nicht geben, dann bitte deinen Ort „zu Hause“ nochmal in der App löschen und neu eingeben. Dann sollte er an IP-Symcon gesendet werden und bei dir im Objektbaum erscheinen.

Der Vorschlag ist gut, aber bei OwnTracks tatsächlich nicht erforderlich, da ohnehin die wesentlichen Änderungen gepostet werden.

Nein, tut mir leid. Da kommt nichts. Ich hab den Ort gelöscht und auch ohne Leerzeichen (zuHause) eingegeben. Ebenso alle Variablen gelöscht und in der App auf den Pfeil (mittleres Symbol in der Kartenansicht) getippt. Daten kommen und Variablen werden angelegt. Von zuHause keine Spur.

hmm, das ist ja merkwürdig. Kannst Du mal gucken, was im Debug ankommt, wenn Du einen neuen Ort anlegst? Da sollte dann etwas wie folgt kommen:

25.11.2021, 22:12:50 |     Received Payload | {"rad":30,"tst":1637874758,"_type":"waypoint","rid":"615355","lon":11.12345,"topic":"owntracks\/test\/Geraet1\/waypoint","lat":53.12345,"desc":"Neuer Ort"}

Gesentet wird erst, wenn ein Radius angegeben ist. Ergebnis gerne auch als PN.

Ja, da kommt was .

25.11.2021, 22:18:28 |     Received Payload | {"_type":"waypoint","desc":"test","lat":49.3843051,"lon":19.6111118,"rad":100,"topic":"owntracks\/helmut\/G1\/waypoints","tst":1637875096}

Aso. Das heißt ich muss den Bereich erstmal verlassen, erst dann werden die Variablen angelegt. Richtig? Etwas schwierig derzeit im Lockdown in Österreich :smiley: . Dann muss der Hund dafür herhalten :wink:

Ich hab dir meinen Debug mit den Rohdaten per PM geschickt.

ok, die ID für den Ort fehlt…
kannst Du die in der App irgendwo angeben?

UPDATE: Habe gerade nochmal nachgelesen. Das gibt es bei Android nicht… passe ich an.

Nein, das sieht bei mir so aus

siehe Update oben. Passe ich an.

JETZT verstehe ich das. In der Android App ist bei den Orten rechts oben ein Menü (drei Punkte übereinander) und es heißt „Orte veröffentlichen“

Du könntest im Zweifel den Namen als ID verwenden. Schon klar, String und nicht numerisch, aber wenn du die ID brauchst.

V1.01 Fix: Missing RID and INRID at Android
So, Anpassung für Android ist jetzt eingepflegt. Bitte mal probieren, ob es funktioniert.


Perfekt, jetzt ist es da. Vielen Dank. Ich bastle grad an einer Karte mit OpenStreetmap und der Berechnung der bbox. Anzeige als iFrame. Schaut bis jetzt ganz gut aus.


Ich hab mal das draus gemacht :smiley: