Ich hatte früher meine GPS Daten (von OwnTracks) immer mittels Nextcloud und der App Phonetrack visualisiert.
Nun bin ich durch Zufall auf DaWarIch gestossen und dieses liegt mir optisch wesentlich besser und ist auch via Docker sehr schnell installiert.
Natürlich möchte ich meine Daten aus der Nextcloud Datenbank zu DaWarIch portieren. DaWarIch hat dafür eine API und die notwendigen Informationen sind auch sehr gut Dokumentiert.
DIe URL und den API Key bekommt man in seinen Benutzereinstellungen.
Am einfachsten ist es folgendes Script auf seinem Nextcloud Server zu starten. Es müssen nur wenige Parameter am Anfang und unten bei dem CURL Befehl die URL nebst API-Key angepasst werden.
#!/bin/bash DB_HOST="localhost" DB_USER="NEXTCLOUD-DB-USER" DB_PASSWORD="NEXTCLOUD-DB-PASSWORD" DB_NAME="NEXTCLOUD-DB-NAME" TABLE_NAME="oc_phonetrack_points" X=0 mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD $DB_NAME -e "SELECT id, lat, lon, timestamp, accuracy, altitude, batterylevel, speed FROM $TABLE_NAME WHERE timestamp > 0 ORDER BY id DESC" | while read row; do let "X++" idd=$(echo "$row" |awk -F" " '{ print $1}') lat=$(echo "$row" |awk -F" " '{ print $2}') lon=$(echo "$row" |awk -F" " '{ print $3}') tst=$(echo "$row" |awk -F" " '{ print $4}') acc=$(echo "$row" |awk -F" " '{ print $5}') alt=$(echo "$row" |awk -F" " '{ print $6}') bat=$(echo "$row" |awk -F" " '{ print $7}') spd=$(echo "$row" |awk -F" " '{ print $8}') MQJSON=`grep -v ^# <<! { "_type":"location", "t":"u", "acc":$acc, "alt":$alt, "batt":$bat, "bs":1, "lat":$lat, "lon":$lon, "tst":$tst, "vel":$spd } !` # URL von Deiner DaWarIch Instanz und API-KEY anpassen curl -X 'POST' \ 'http://192.168.2.10:3000/api/v1/owntracks/points?api_key=DEINE-API' \ -H 'accept: */*' \ -H 'Content-Type: application/json' \ -d "$MQJSON" echo "$X verarbeitet" echo "$MQJSON" sleep 0.3 done;
Anschließend das Script ausführbar machen und bestenfalls mit screen starten. Alle 0.3 Sekunden wird dann ein neuer GPS Punkt zu DaWarIch übertragen. Je nach Anzahl der zu übertragenen Punkte wird das entsprechend dauern. Rechnet selbst :-)