# 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.

<p class="callout info">Sollten Sie die Voraussetzungen, so verwenden Sie bitte die Installationsanleitung des Herstellers unter [https://hub.docker.com/r/traccar/traccar](https://hub.docker.com/r/traccar/traccar).</p>

## Vorbereitungen

Kontrollieren Sie ob die Ports 8082 und 5000:5150 frei sind:

```
docker ps -a|grep 8082
```

Erstellen Sie die benötigen Ordnerstruktur:

<p class="callout info">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.</p>

```
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
```

<p class="callout info">Passwort bitte anpassen!</p>

## 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'?>

<properties>

    <entry key='database.driver'>com.mysql.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://192.168.33.4:3306/traccar?allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>traccar</entry>
    <entry key='database.password'>neues_passwort</entry>
</properties>
```

<p class="callout info">Passwort bitte anpassen!</p>

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.

<p class="callout info">Reverse-geocoding informationen finden sie hier: [https://wiki.leibling.de/books/traccar/page/anpassungen](https://wiki.leibling.de/books/traccar/page/anpassungen).</p>

## Weitere Informationen

- [https://www.traccar.org/](https://www.traccar.org/)

# Smartphone App

Beziehen Sie die Apps direkt aus dem Store, nutzen Sie dazu die Links auf der [Herstellerseite](https://www.traccar.org/client/) oder die QR Codes hier:

<table id="bkmrk-ios-android" style="border-collapse:collapse;width:100%;border:1px solid rgb(0,0,0);"><colgroup><col style="width:50%;"></col><col style="width:50%;"></col></colgroup><thead><tr><td class="align-center" style="border-color:rgb(0,0,0);">**iOS**</td><td class="align-center" style="border-color:rgb(0,0,0);">**Android**</td></tr></thead><tbody><tr><td style="border-color:rgb(0,0,0);">[![image.png](https://wiki.leibling.de/uploads/images/gallery/2024-09/scaled-1680-/f6XHxJMdl4HOkVwc-image.png)](https://wiki.leibling.de/uploads/images/gallery/2024-09/f6XHxJMdl4HOkVwc-image.png)

</td><td style="border-color:rgb(0,0,0);">[![image.png](https://wiki.leibling.de/uploads/images/gallery/2024-09/scaled-1680-/YBgdyT260nHRjqSd-image.png)](https://wiki.leibling.de/uploads/images/gallery/2024-09/YBgdyT260nHRjqSd-image.png)

</td></tr></tbody></table>

<p class="callout info">Beachten Sie bei den Einstellungen, das kurze Intervalle der Positionsupdates zwar genaueres Tracking erlauben, jedoch auch wesentlich schneller das Akku leer ziehen.</p>

# OBD Stecker

## Information

Für Traccar verwende ich den Stecker [Sinotrack ST-902](https://www.amazon.de/SinoTrack-Fahrzeuge-ST-902L-Echtzeit-monatliche/dp/B09JZ3LF6Y/) zusammen mit einer [MultiSIM der Telekom](https://www.telekom.de/hilfe/mobilfunk/esim/bestellen-einrichten/multisim?samChecked=true). 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](https://www.traccar.org/devices/) 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.

<p class="callout info">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.</p>

# 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](https://my.locationiq.com/register) 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>
```

<p class="callout info">Bitte den entsprechenden API Key eingeben!</p>

Starten Sie dann den Docker Container erneut wie folgt:

```
docker compose down && docker compose up -d
```

##### Weitere Informationen:

- [https://www.traccar.org/reverse-geocoding/](https://www.traccar.org/reverse-geocoding/)