OwnTracks mit Mosquitto MQTT Broker in Home Assistant nutzen

Dieses Tutorial beschreibt euch alle notwendigen Schritte, wie Ihr die App OwnTracks mit Mosquitto MQTT Broker und Home Assistant als Device Tracker nutzten könnt. Da ich mein Home Assistant nicht über das Internet erreichbar gemacht habe, gehe ich den Weg über den Mosquitto MQTT Broker. Wenn man eine direkte Verbindung zu Home Assistant hat, kann man auch direkt die OwnTracks Komponente benutzen.

Voraussetzungen

Die in dem Tutorial benutzen Befehle sind teilweise Gentoo Linux spezifisch. Jene müsst ihr entsprechend auf eure verwendeten Distribution anpassen.

Mosquitto Benutzer anlegen

Wir müssen einen Benutzer für Home Assistant im Mosquitto Broker anlegen:

mosquitto_passwd /etc/mosquitto/pwfile hass

Meinen Benutzer nenn ich “hass”. Ihr könnt natürlich jeden beliebigen Namen benutzen.

Im Anschluss müssen wir noch die Benutzer für alle OwnTracks Clients anlegen. Für dieses Tutorial lege ich den Benutzer “otclient” an.

mosquitto_passwd /etc/mosquitto/pwfile otclient

Sind alle Benutzer angelegt muss man Mosquitto neu starten:

/etc/init.d/mosquitto restart

OwnTracks mit Mosquitto verbinden

Nachdem wir OwnTracks auf unserem Smartphone installiert haben, müssen wir noch die Verbindungsdaten zu unserem Mosquitto Broker einstellen. Hier gehe ich ausgehend von diesem Tutorial davon aus, dass Mosquitto mit SSL Verschlüsselung über Port 8883 aus dem Internet erreichbar ist. Solltet Ihr andere Ports verwenden sind diese entsprechend anzupassen.

Wir öffnen die OwnTracks App und gehen in die Einstellungen unter “Verbindungen”. Das sollte dann in etwa so aussehen (Android):

OwnTracks Connections

Bei “Mode” stellt die Verbindung auf “MQTT Privat”. Weiter geht es mit der Einrichtung des “Hosts”:

OwnTracks Host

Bei “Host” tragt ihr die Adresse eures Mosquitto Brokers ein. Bei Port tragt ihr euren ein, in meinem Fall 8883. “WebSockets” werden deaktiviert.

Danach ändern wir unsere “Identifikation”:

OwnTracks Identification

Hier tragen wir den Benutzer ein, den wir zuvor in Mosquitto eingerichtet haben. In meinem Fall ist das “otclient”. Bei der “Device ID” trägt man einen beliebigen Namen ein, unter dem das Gerät zu finden ist. Unter Tracker ID können wir zwei Buchstaben eintragen z.B. die eigenen Initialen. Diese werden letztlich aber nur in OwnTracks auf der Karte angezeigt.

Zum Schluss aktivieren wir noch die verschlüsselte Verbindung unter “Sicherheit”:

OwnTracks Security

Um zu überprüfen ob wir alles richtig eingestellt haben, drücken wir auf das Info-Symbol oben rechts, um den Verbindungsstatus zu sehen. Wenn alles in Ordnung ist, sollte es in etwa so aussehen:

OwnTracKs Status

Sollte keine Verbindung möglich sein, überprüft noch einmal eure Daten auf Richtigkeit.

OwnTracks für Home Assistant anpassen

In der Standard Konfiguration von OwnTracks (Android) funktionierte bei mir die Einrichtung unter Home Assistant zuerst nicht. Auf der Suche im OwnTracks Manual wurde ich dann fündig. Unter “Einstellungen -> Konfigurationsverwaltung” muss “mqttProtocolLevel” auf 4 gesetzt werden.

OwnTracks - MQTT Protocol Level

Danach noch OwnTracks neustarten! Das geht bequem im Konfigurationseditor.

Verbindung zu Mosquitto Broker testen

Nun überprüfen wir, ob wir auch in der Lage sind mit OwnTracks den aktuellen Standort an unseren Mosquitto Broker zu schicken. Dafür starten wir einen Mosquitto Sub:

mosquitto_sub -h localhost -p 1883 -t "owntracks/#" -v -u USERNAME -P PASSWORD

Das Kommando führe ich bei mir auf dem System aus, auf dem der Broker läuft. Sollte sich der Broker auf einem anderen System befinden müsst Ihr anstatt “localhost” euren Hostnamen/IP eintragen. Der Port für die lokale unverschlüsselte Verbindung ist bei mir 1883. “USERNAME” und “PASSWORD” ersetzt Ihr mit euren Login Daten. Ich habe einfach den Benutzer “hass” genommen, den wir zuvor angelegt haben. Sollten alle Angaben korrekt sein, können wir einkommende Nachrichten sehen. Um von OwnTracks eine Nachricht auszulösen drücken wir im Hauptfenster der App auf den Upload-Button.

OwnTracks Map

Dann sollte in der Konsole in der wir den Sub gestartet haben ein Nachricht ähnlich dieser auftauchen:

owntracks/otclient/androidphone1 {
    "_type":"location",
    "acc":1787,
    "alt":0,
    "batt":62,
    "conn":"w",
    "lat":49.635325,
    "lon":7.6567407,
    "t":"u",
    "tid":"e1",
    "tst":1545787405,
    "vac":0,
    "vel":0
}

Wenn alles bis hier hin funktioniert hat können wir mit der Einbindung in Home Assistant fortfahren.

mqtt:
  broker: localhost
  port: 1883
  username: USERNAME
  password: PASSWORD
  client_id: "hass"

Die oberen Daten sind entsprechend auf eure Belange anzupassen. Damit haben wir unseren Mosquitto MQTT Broker in Home Assistant eingerichtet.

Nun fügen wir OwnTracks zu unserer “configuration.yaml” hinzu:

owntracks:
  max_gps_accuracy: 200
  waypoints: true
  mqtt_topic: "owntracks/#"
  events_only: true

Nachdem wir Home Assistant neu gestartet haben, sollte in der Datei “known_devices.yaml” unseren OwnTracks Geräte auftauchen:

otclient_androidphone1:
  hide_if_away: false
  icon:
  mac:
  name: otclient
  picture:
  track: false

Damit das Gerät auch getrackt wird, ändern wir den Eintrag entsprechend ab und setzten den Parameter “track” auf “true”.

otclient_androidphone1:
  hide_if_away: false
  icon:
  mac:
  name: otclient
  picture:
  track: true

Damit haben wir die Einrichtung von OwnTracks in Verbindung mit einem Mosquitto MQTT Broker und Home Assistant erfolgreich beendet.

Fazit

Damit habe wir zumindest die grundlegende Funktionen von OwnTracks nutzbar gemacht, nämlich das Tracken von Geräten. Man kann aber auch noch weitere Dinge in Verbindung mit Home Assistant und OwnTracks machen, wie z.B. die Zonen / Orte in beiden Systemen abgleichen. Hier hilft einem die Home Assistant bzw. OwnTracks Hilfe weiter.