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
- Installierter Home Assistant Server
- Installierter Mosquitto MQTT Broker -> Tutorial
- Installierte OwnTracks App auf eurem Smartphone
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):
Bei “Mode” stellt die Verbindung auf “MQTT Privat”. Weiter geht es mit der Einrichtung des “Hosts”:
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”:
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”:
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:
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.
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.
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.