Modul: 98_livetracking - Geokoordinaten von OwnTracks / Life360 / Swarm (4Sq)

Begonnen von Markus M., 22 Mai 2015, 02:01:46

Vorheriges Thema - Nächstes Thema

binford6000

ZitatLängen und Breitengrade als separate Readings würde ich super finden. Letztendlich lassen die sich aber auch aus location extrahieren.
Here you are - als userreading:
locationLat {(split(/,/,ReadingsVal($name,'location','')))[0];;},
locationLong {(split(/,/,ReadingsVal($name,'location','')))[1];;}


VG Sebastian

carlos

Also zur Info mit der letzten Version funktioniert der Traccar client auf dem iphone mit http, obwohl er ab und zu  "Übertragung fehlerhaft" sagt.

/osmand?id=iphone&timestamp=1542114767&lat=1.234&lon=1.2349&speed=0&bearing=35.06345912317749&altitude=210.9333821899598&batt=49
2018.11.13 14:12:48 4: tracking OsmAnd Server: 2018-11-13 14:12:47

Der traccar client auf android mit http funktioniert gar nicht, da kommt quasi immer "Übertragung fehlerhaft", selten mal ein "Positionsupdate", aber auf dem FHEM lifetrack device kommt nichts an.

Interesanter weise gibts es immer mehrer Connections von der Art:
WEB_95.222.30.79_23276   Connected

Ist das so gewollt?
Wird hier unterschieden zwischen mehreren lifetracking devices?
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Markus M.

Zitat von: klausw am 13 November 2018, 09:45:15Längen und Breitengrade als separate Readings würde ich super finden. Letztendlich lassen die sich aber auch aus location extrahieren.
Bedeutet ich nutze das Ganze ohne MQTT?

1. Baue ich ein
2. Richtig, OwnTracks hat alternativ zu MQTT auch einen HTTP mode



Zitat von: carlos am 13 November 2018, 14:17:40
Der traccar client auf android mit http funktioniert gar nicht, da kommt quasi immer "Übertragung fehlerhaft", selten mal ein "Positionsupdate", aber auf dem FHEM lifetrack device kommt nichts an.

Interesanter weise gibts es immer mehrer Connections von der Art:
WEB_95.222.30.79_23276   Connected

Ist das so gewollt?
Wird hier unterschieden zwischen mehreren lifetracking devices?

Android habe ich mit Traccar auch nicht hinbekommen. Unterstützt kein Auth.
Die Connections sind normal, da der Client bei jedem Update eine neue Verbindung aufbaut.
Verschiedene Devices sollten mit dem Attribut osmandId möglich sein.
Da muss dann die ID aus Traccar oder der Identifier aus OwnTracks rein.
Dann werden trotz gleicher URL nur jeweils die passenden Aufrufe hergenommen.
Glaube ich... Intensiv getestet habe ich es noch nicht - das ist wenn du mehrere Geräte hast jetzt dein Job ;)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

carlos

Würde ich gerne machen, habe aber nur 1 iphone der Rest ist alles android.
Also geht das erst mal nicht.
Ich teste aber weiter mit MQTT device und HTTPMOD auf Basis des traccar api.
Habe da jetzt erst mal vom Traccar Server ein event forwarding an einen MQTT Server eingebaut.
Kann mir das ja dann in einen owntrack kompatiblen JSON string umwandeln, dann sollte das auch mit android gehen.
Gute Arbeit dein modul.
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Markus M.

Zitat von: carlos am 13 November 2018, 16:57:03
Würde ich gerne machen, habe aber nur 1 iphone der Rest ist alles android.
Habe da jetzt erst mal vom Traccar Server ein event forwarding an einen MQTT Server eingebaut.
Kann mir das ja dann in einen owntrack kompatiblen JSON string umwandeln, dann sollte das auch mit android gehen.
Hat der Traccar Server eine eigene Funktion um Daten an MQTT zu senden?
Dann könnte ich das noch so erweitern dass du das JSON nicht umbauen musst.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Wolle02

Zitat von: Markus M. am 13 November 2018, 17:10:49
Hat der Traccar Server eine eigene Funktion um Daten an MQTT zu senden?

Hilft da dieser Link eventuell weiter?
https://github.com/traccar/traccar/issues/1582

Insbesondere der letzte Post vom 26.03.2018?

carlos

Ich teste gerade 2 Möglichkeiten:
https://github.com/jpmens/from-traccar
Das funktioniert schon. Da kriege ich diverse JSON strings für position oder events(geofenceEnter oder geofenceExit).
Leider nicht in dem Format wie dein modul sie verarbeitet.
Dann gibt es noch:
https://github.com/ivanfmartinez/ivanfm-traccar-mqtt
Habe ich gerade mal gebaut und versuche es in tracccar zu integrieren.
Was brauchst du um das zu erweitern?
Ich nehme an den JSON String, das sind genau die die man über das traccar api auch bekommt.

Es gibt sogar eine Möglichkeit die positionsdaten direkt an eine URL zu schicken, könnte dann sogar FHEM bzw. dein module sein:

<entry key='forward.enable'>true</entry>
<entry key='forward.url'>http://127.0.0.1:8840/positions?id={uniqueId}&amp;lat={latitude}&amp;lon={longitude}</entry>
<entry key='forward.json'>false</entry>     


Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Markus M.

Zitat von: carlos am 13 November 2018, 21:54:19
Ich teste gerade 2 Möglichkeiten:
https://github.com/jpmens/from-traccar
Das funktioniert schon. Da kriege ich diverse JSON strings für position oder events(geofenceEnter oder geofenceExit).
Leider nicht in dem Format wie dein modul sie verarbeitet.
In welchem Format kommen sie denn an?
Ich bräuchte den JSON String.


ZitatEs gibt sogar eine Möglichkeit die positionsdaten direkt an eine URL zu schicken, könnte dann sogar FHEM bzw. dein module sein:

<entry key='forward.enable'>true</entry>
<entry key='forward.url'>http://127.0.0.1:8840/positions?id={uniqueId}&amp;lat={latitude}&amp;lon={longitude}</entry>
<entry key='forward.json'>false</entry>     
So wie es auch in Traccar schon ankommt, ein 1:1 Forward:
http://127.0.0.1:8083/fhem/osmand?id={uniqueId}&lat={latitude}&lon={longitude}&timestamp={timestamp}&hdop={hdop}&altitude={altitude}&speed={speed}

Was passiert wenn du forward.json aktivierst?


Und noch mit latitude und longitude im Anhang
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

carlos

War das ein Kampf,  nach langem probieren habe ich es geschaft.
Das Problem war die user/password authentifizierung in FHEM.
Ich muste eine WEB instanz ohne basicauth definieren, dann geht es mit folgendem forwarding in traccar(leider nur lokal, also FHEM und TRACCAR auf dem gleichen Rechner):


    <entry key='forward.url'>http://127.0.0.1:8084/fhem/osmand?id={name}&amp;lat={latitude}&amp;lon={longitude}&amp;timestamp={fixTime}&amp;altitude={altitude}&amp;speed={speed}&amp;accuracy={accuracy}</entry>
    <entry key='forward.json'>false</entry>


Es kommen aber nicht alle Werte an:
reading velocity = 0 entspricht speed={speed}
reading  altitude wird nicht angelegt
reading  accuracy wird nicht angelegt

lon={longitude} ;lat={latitude} sind korrekt dementsprechend dann auch location und address

Muss mal in den Sourcen von traccar nachschauen, ob es noch andere parameter gibt.

Für heute ist erst mal Schluß

Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

ThomasMagnum

Hallo zusammen,

ist es evtl. auch möglich das Modul dahingehend zu erweitern das es Daten von NExtcloud (PhoneTrack) entgegennimmt. Das NExtcloud Modul stellt hierfür eine JSON Abfrage zur Verfügung.
Diese sieht folgendermaßen aus:
{"b8e55af7ac5df0ff39e27d4609b00405":{"Test001":{"lat":52.1469599,"lon":9.448318,"timestamp":1542141954,"batterylevel":55,"satellites":0,"accuracy":22.19,"altitude":0,"speed":0,"bearing":0}}}

Wobei "b8e55..." eine von Nextcloud generierter String ist, "Test001" der Devicename, die restlichen Angaben sollten ja klar sein.
Sofern noch etwas geliefert werden soll, kann ich dies gerne tun.

Der Grund für meine Anfrage ist die Tatsache das die Abläufe über das Modul natürlich viel einfacher zu integrieren wären als über den manuellen Weg.

Vielen Dank schon mal für das Prüfen ob hier was möglich ist.

Gruß, Thomas

binford6000

Zitat von: ThomasMagnum am 14 November 2018, 09:28:12
Hallo zusammen,

ist es evtl. auch möglich das Modul dahingehend zu erweitern das es Daten von NExtcloud (PhoneTrack) entgegennimmt. Das NExtcloud Modul stellt hierfür eine JSON Abfrage zur Verfügung.
Diese sieht folgendermaßen aus:
{"b8e55af7ac5df0ff39e27d4609b00405":{"Test001":{"lat":52.1469599,"lon":9.448318,"timestamp":1542141954,"batterylevel":55,"satellites":0,"accuracy":22.19,"altitude":0,"speed":0,"bearing":0}}}

Wobei "b8e55..." eine von Nextcloud generierter String ist, "Test001" der Devicename, die restlichen Angaben sollten ja klar sein.
Sofern noch etwas geliefert werden soll, kann ich dies gerne tun.

Der Grund für meine Anfrage ist die Tatsache das die Abläufe über das Modul natürlich viel einfacher zu integrieren wären als über den manuellen Weg.

Vielen Dank schon mal für das Prüfen ob hier was möglich ist.

Gruß, Thomas

Boah das wäre ja cool  8)
Habe auch Nextcloud im Einsatz. Owntracks als Tracking app würde ja weiterhin verwendet, korrekt?
VG Sebastian

ThomasMagnum

Hallo Sebastian,

ja, Owntracks könnte weiter genutzt werden.
Siehe: https://gitlab.com/eneiluj/phonetrack-oc/wikis/userdoc#logging-methods

Ich nutze GPSLogger und bin sehr zufrieden damit.

Gruß, Thomas

binford6000

Hallo Thomas,
habs gerade mal bei mir in Betrieb genommen  :D
Es wäre echt mega wenn Markus das einbauen könnte.
Biete mich selbstverständlich auch als Tester/ Datenlieferant an  ;)

VG Sebastian

Markus M.

Wie würde das denn ankommen?
Als HTTP Aufruf oder in einem Reading/Event?
Gebt mir mal ein Beispiel.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

binford6000

Zitat von: Markus M. am 14 November 2018, 13:39:09
Wie würde das denn ankommen?
Als HTTP Aufruf oder in einem Reading/Event?
Gebt mir mal ein Beispiel.
Als HTTP-Aufruf:
https://<nextcloudserver>/apps/phonetrack/APIgetLastPositions/<session_name>
liefert dann ein JSON:
{"<session_name>":{"<decvice_name>":{"lat":49.123456789,"lon":8.123456789,"timestamp":1542201910,"batterylevel":95,"satellites":0,"accuracy":65,"altitude":137,"speed":0,"bearing":0}}}

session_name ist der von Thomas angesprochene String von PhoneTrack.
device_name kann vom Anwender vergeben werden.