Traccar
Open Source Lösung zum Tracken von Fahrzeugen oder Smartphone - z.B. zum Aufbau einer Fleetmanagement Lösung.
Installation Traccar
Info
Traccar ist ein Tracking Webinterface für Fahrzeuge und Mobiltelefone.
Voraussetzungen
Sie benötigen eine MySQL oder MariaDB Datenbank und einen Reverseproxy wie NPM oder Caddy, am besten direkt auch mit Lets Encrypt Zertifikaten.
Sollten Sie die Voraussetzungen, so verwenden Sie bitte die Installationsanleitung des Herstellers unter https://hub.docker.com/r/traccar/traccar.
Vorbereitungen
Kontrollieren Sie ob die Ports 8082 und 5000:5150 frei sind:
docker ps -a|grep 8082
Erstellen Sie die benötigen Ordnerstruktur:
Ich lege meine Daten unter /docker-data/projectname ab und die docker compose Dateien unter /docker-data/install/projectname - solltet ihr andere Pfade nutzen, so müsst ihr diese natürlich anpassen.
mkdir -p /docker-data//install/traccar
mkdir -p /docker-data/traccar
mkdir -p /docker-data/traccar/conf
mkdir -p /docker-data/traccar/logs
mkdir -p /docker-data/traccar/media
Erstellen Sie im PHPMyadmin oder in der CLI die Datenbank traccar, richten Sie den Nutzer traccar ein und vergeben Sie ein Passwort:
docker exec -it mariadb bash
mariadb -u root -p
CREATE USER 'traccar'@'%' IDENTIFIED BY 'neues_passwort';
GRANT ALL PRIVILEGES ON traccar . * TO 'traccar'@'%';
CREATE DATABASE traccar;
FLUSH PRIVILEGES;
exit
exit
Passwort bitte anpassen!
Einrichtung
Erstellen Sie nun die Konfigurationsdatei wie folgt:
vi /docker-data/traccar/conf/traccar.xml
Fügen sie den folgenden Inhalt ein:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
<entry key='database.driver'>com.mysql.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://192.168.33.4:3306/traccar?allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode=''</entry>
<entry key='database.user'>traccar</entry>
<entry key='database.password'>neues_passwort</entry>
</properties>
Passwort bitte anpassen!
Erstellen Sie nun die docker-compose Datei:
vi /docker-data/install/traccar/docker-compose.yml
Fügen sie den folgenden Inhalt ein:
services:
traccar:
container_name: traccar_latest
image: traccar/traccar:alpine
volumes:
- /docker-data/traccar/conf/traccar.xml:/opt/traccar/conf/traccar.xml:rw
- /docker-data/traccar/logs:/opt/traccar/logs:rw
- /docker-data/traccar/media:/opt/traccar/media
ports:
- 5000-5150:5000-5150
- 8082:8082
restart: always
Nacharbeiten
Öffnen Sie die Seite (http://dockerip:8082) und erstellen einen Adminaccount. Dokumentieren Sie diesen.
Erstellen Sie nun im Reverseproxy die benötigten Freigabe und auch unter NAT (sollten Sie noch einen weiteren Router vor ihrer Firewall vorgeschaltet haben, dann natürlich auch dort falls kein "exposed Host" erstellt wurde) für den oben angegebenen Range.
Reverse-geocoding informationen finden sie hier: https://wiki.leibling.de/books/traccar/page/anpassungen.
Weitere Informationen
Smartphone App
Beziehen Sie die Apps direkt aus dem Store, nutzen Sie dazu die Links auf der Herstellerseite oder die QR Codes hier:
| iOS | Android |
Beachten Sie bei den Einstellungen, das kurze Intervalle der Positionsupdates zwar genaueres Tracking erlauben, jedoch auch wesentlich schneller das Akku leer ziehen.
OBD Stecker
Information
Für Traccar verwende ich den Stecker Sinotrack ST-902 zusammen mit einer MultiSIM der Telekom. Es wird ein weiteres Telefon mit einer anderen Nummer benötigt zur Einrichtung.
SIM vorbereiten
- Die SIM Karte in einem Gerät stecken und den SIM Code deaktivieren.
- Prüfen ob SMS aktiviert ist wie folgt:
*221# <Hörer>
- Auf MultiSIM ist SMS standardmäßig deaktiviert, aktiviert wird wie folgt:
*222# <Hörer>
- Senden Sie eine Test SMS um zu kontrollieren ob der Empfang funktioniert.
OBD Adapter einrichten
Stecken Sie die SIM in den Adapter, am besten sollte dieser schon vorgeladen sein.
Zum senden der Befehle senden Sie diese per SMS, wenn der Befehlt angenommen wurde, erhalten sie eine Bestätigung per SMS zurück. Das Default Passwort ist 0000 und wird den Befehlen mitgegeben.
- Lassen sie sich die Konfiguration senden - senden Sie dazu den folgenden Befehl:
RCONF
- Setzen Sie nun den APN vom Anbieter (in meinem Fall Telekom) wie folgt:
8030000 internet.telekom telekom tm
- Aktivieren Sie nun den GPRS Modus statt den SMS Modus:
7100000
- Stellen Sie das Sendeintervall ein (in meinem Fall 5 Sekunden):
8050000 5
- Geben Sie nun die URL zum senden ein (achten Sie darauf den korrekten Port zu verwenden, nutzen Sie dazu die Deviceseite von Traccar (in meinem Fall Protocoll h02 und Port 5013 - dieser Port muss natürlich in der Firewall und im Falle einer vorgeschalteten Fritzbox auch dort forgewardet werden):
804000 track.leibling.de 5013
- Sollte das nicht gehen, verwenden Sie:
IP track.leibling.de 5013
- Prüfen Sie nun die Einstellungen wieder:
RCONF
- Setzen Sie nun eine Geräte PIN wie folgt (777+NEUE+ALT, ersetzen Sie 1234 durch ihre gewünschte neue PIN) - dokumentieren Sie die PIN:
77712340000
Einrichtung in Trackcar
Erstellen Sie nun ein Gerät mit der ID des Trackers, welche sie mit dem RCONF Befehl erhalten haben.
Kurz danach sollten Sie die aktuelle Position in Traccar sehen.
Rückstellen der SMS Funktion
Gehen Sie nun auf das Hauptgerät und aktivieren dieses wieder für SMS wie folgt:
*222# <Hörer>
Prüfen Sie nun ob SMS nicht mehr an das Gerät gesendet wird wie folgt:
RCONF
Nun sollte die SMS am Hauptgerät wieder ankommen und keine Antwort mehr gesendet werden.
Sollten Sie noch weiter Einstellungen vorgenommen haben (z.B. im Telekom Portal Funktionen zuordnen oder im iPhone weitere SIM aktiviert/deaktiviert haben) - so stellen Sie alles wieder wie benötigt ein.
Anpassungen
Reverse Geocoding
Um die Adressen jederzeit zu bekommen und nicht oft erst auf "Adresse anzeigen" klicken zu müssen, kann man die Einstellungen für "reverse geocoding" anpassen bzw. optimieren.
Erstellen Sie ein Konto bei locationiq.com und erstellen Sie einen API Key.
Fügen Sie in der traccar.xml noch den folgenden Inhalt ein:
<entry key='geocoder.enable'>true</entry>
<entry key='geocoder.type'>nominatim</entry>
<entry key='geocoder.url'>https://eu1.locationiq.com/v1/reverse.php</entry>
<entry key='geocoder.key'>YOUR API KEY</entry>
<entry key='geocoder.onRequest'>false</entry>
<entry key='geocoder.ignorePositions'>false</entry>
<entry key='geocoder.reuseDistance'>10</entry>
Bitte den entsprechenden API Key eingeben!
Starten Sie dann den Docker Container erneut wie folgt:
docker compose down && docker compose up -d