NEWS
LoRaWAN GPS-Tracker 2 Traccar
-
An dieser Stelle beschreibe ich mal für Interessierte wie man einen LoRaWAN GPS-Tracker in Traccar integriert. Die ersten Schritte hierzu kann man sicherlich auch dazu nutzen beliebige Sensordaten in Iobroker zu holen. So hat man z.B. die Daten seiner Wetterstation, die an einem beliebigen Standort aufgebaut ist, auch zu Hause.
Ein Wort vorab zur Sendeleistung und zur Strahlungsbelastung von LoRa, welches für Long Range steht: Wie für alle Geräte die im Bereich 868MHz senden (Homematic, Z-Wave uvm.), gilt auf für LoRa eine maximale Sendeleistung von 25mW und eine maximale Sendezeit von 1%. Dies entspricht eine maximale Sendezeit von 36 Sekunden in einer Stunde (3600 Sekunden). Üblicherweise sendet ein Node in der Praxis aber weniger als 10 Sekunden in einer Stunde. DECT ist begrenzt auf 250mW und beim Telefonieren über Handy hält man sich für Dauer des Gesprächs eine Sendeleistung von maximal 2000mW direkt an den Kopf. Trotzdem sind die Reichweiten, wie ich finde erstaunlich. Mit einem Lora-GPS Tracker ohne extra Antenne und aus einem geschlossenem Auto heraus kommt man schnell auf Reichweiten über 10km, mit extra Antenne auch schon mal über 100km. Damit wird der Name zum Programm.
Als ich nach einer Integration von LoRa Tracker zum Traccar gesucht hatte, habe ich folgende Lösungsansätze gefunden:
https://www.reddit.com/r/Traccar/comments/e4lu6g/lora_gps_tracker_to_traccar/
Hier ist eine PHP fähige Domain nötig, die nicht jeder zur Verfügung hat.
https://www.heise.de/ratgeber/LoRaWAN-GPS-Tracker-mit-Traccar-verknuepfen-6204356.html
Hier muss im Traccar Server Apache nebst SSL Zertifikate installiert werden, sowie weitere Ports geöffnet werden. Eine von Außerhalb zu erreichende Scriptlogik kam für mich schon aus Sicherheitsgründen nicht in Frage, war aber auch viel zu kompliziert einzurichten.
Letztendlich ist es ein einfaches Blockly geworden, welches die Integration macht, ohne dass Einschränkungen bei der Sicherheit hinzunehmen sind, aber der Reihe nach. Folgende Schritte kann man bereits durchführen, ohne in Besitz eines LoRaWan Geräts zu sein.
Integration von TheThingsNetwork (TTN) zu Iobroker:
Wenn noch nicht geschehen, so muss ein kostenfreier Account erstellt werden:
https://account.thethingsnetwork.org/register
Man folgt den Anweisungen, bestätigt seine Email-Adresse und loggt sich im Bereich Europa ein:
https://eu1.cloud.thethings.network/console/
Man geht zu „Go to applications“ und wählt “+Add application”, wählt eine ApplicationID (nur Kleinbuchstaben und – erlaubt)
Ist die Application erstellt, wählt man unter „Integration“ „Mqtt“ an und klickt auf „Generate new API Key“. Diese ist zwingend zu sichern.
Nun wird im Iobroker Adapter Tab eine neue Instanz „mqtt-client“ erstellt und in der erzeugten Instanz eingetragen:
MQTT Broker IP: eu1.cloud.thethings.network
Port: 8883
Clint-ID: ApplicationID
SSL: Haken muss gestezt warden
Benutzername: ApplicationID@ttn
Kennwort: Der eben erstellte ApiKey
Zusätzliche subsciptions: v3/+/devices/+/up
Startet man nun die Instanz, wird diese grün und die Verbindung steht:
Damit ist die Integration von TTN zu Iobroker abgeschlossen. Sobald man Geräte im TTN anlegt und die ersten Daten versendet wurden, werden in Iobroker für jedes Device ein Ordner angelegt und darin ein DP mit dem Namen up, in dem die empfangenen LoRa Daten als JSON gespeichert werden.
Nun folgt die Integration eines LoRa GPS Tackers im TTN. Dies kann ein fertiges Gerät (z.B Io-Things IOT Tacker, Digital Matter Yabby edge, Tektelic GPS Asset Tracker, oder auch ein Browan object Locator/Cat-Tacker), oder etwas selbst gebautes sein, wie hier sehr gut beschrieben:
https://github.com/kizniche/ttgo-tbeam-ttn-tracker#ttn-tracker
Hat man im letzten Schritt den Payload Formatter eingerichtet, sollten im JSON im Iobroker Datenpunkt bereits Longitude, Latitude, Hdop und Altitude übermittelt werden. Auf diese Daten baut das Blockly auf, hier der Import:
https://paste.hafenmeister.de/?547bf6d1d8d49b2f#BFeWxFffTQc3RPndu5SaWnrfiqtBKZBg8GAJA8FArnpmZur Vorbereitung muss im Traccar ein neues Device angelegt werden. Der Name und die Kennung ist frei wählbar, ich habe die TTN Device ID genommen:
Im Blockly muss angepasst werden die Variable dyndns mit der IP/Port vom Traccar, oder (falls Iobroker und Traccar nicht im gleichen Netz sind) der Aufruf über IP/DynDNS, genauso wie in einem der Handys eingestellt, die DeviceID, die der Device Kennung im Traccar entspricht, sowie dem MQTT TTN Datenpunkt:
Sobald der Lora-Tracker eine Message absetzt, wird die im TTN Netzwerk aktualisiert und damit auch im mqtt-DP im Iobroker, warauf das Blockly getriggert wird eine Osmand Message an den Traccar Server zu senden. Diese Message beinhaltet nicht nur die Position, Höhe und Hdop (GPS Qualitätswert), sondern auch Infos über das Gateway, Rssi, Frequenz, Consumed Airtime usw. Sollte das Gateway seine Position bekannt gegeben haben, so wird auch diese, sowie die berechnete Entfernung mit übertragen; verrät das Gateway seine Höhe, auch diese.
In den Datenpunkten des Traccar Devices findet man dann alle Daten und braucht keine extra Datenpunkte anlegen.
-
@j_paul
hast du einen export deines Blockly scriptes? -
@kunigunde
Ja der Paste-Link ist weiter oben angegeben, der baut allerdings noch auf den Traccar Adapter auf, den ich nicht mehr nutze, sondern eigene Logik. Schau mal, ob du damit zurecht kommst, immerhin gibt es diesen Thread schon ein paar Tage.