Samstag, 22. Februar 2014

Tutorial owntracks mit openhab




Dieses Tutorial beschreibt die Installation von Mosquitto unter Debian, grob die Konfiguration von Mosquitto.
Ausserdem gehe ich später noch auf die Einrichtung und Benutzung von Owntrack auf Android und iOS ein.

Installation und Konfiguration von Mosquitto

Mosquitto ist ein Open Source MQTT 3.1 Broker der von Roger Light geschrieben wurde.
Die Installation und Konfiguration ist genau so einfach wie die Anwendung später.

Unter Debian im Terminal folgendes ausführen



sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa && sudo apt-get update && sudo apt-get install mosquitto


Mosquitto startet automatisch bei Systemstart.

Wichtig ist die Konfiguration von

 nano /etc/mosquitto/mosquitto.conf 

Die mosquitto.conf ist auf mosquitto.org sehr gut dokumentiert.

Ich habe folgende Punkte in meine config aktiviert. 


retry_interval 20
user mosquitto
password_file /etc/mosquitto/passwd

Damit habe ich bis jetzt gute Erfahrungen gemacht.

Jetzt muss noch das Passwort file angelegt werden. Das geht recht simple mit folgender Zeile.


mosquitto_passwd -c /etc/mosquitto/passwd mosquitto

Nun ist der mosquitto broker minimal konfiguriert und ist Start bereit.

/etc/init.d/mosquitto restart


Android

Für Android gibt es das geniale App Own Tracks von Alexander Rust, die App  früher als Mqttitude bekannt, wurde aber  im Februar 2014 zu Own Tracks umbenannt. 
Mit der App hat man die Möglichkeit seine Position zu tracken und via MQTT an den Mosquitto Broker zu senden. In der Beta kann man sogar Wegpunkte definieren die eine smarten Umgang mit OpenHAB zulassen.


Konfiguration


Auf die Konfiguration zum Broker gehe ich nicht detailliert ein da dass ja Grundsätzlich nicht schwierig sein sollte.
Ich habe trotz der ganzen bespizelei die unverschlüsselte Variante gewählt und gehe über Port 1883.

Der Username ist der welcher oben auch in der Mosquitto Konfiguration gewählt wurde.
Für das Password gilt das gleiche.

Die Client ID ist eine 23 Byte lange Zeichenfolge die der Identifikation des MQTT Transport Client dient.
Die ID muss eindeutig sein und darf immer nur einem einzigen verbundenen  Client zugeordnet sein.






Der Reporting Interval ist der Intervall in der die App die Position an den Broker übermittelt.
Der Intervall lässt sich dem persönlichen Bedürfnis auswählen. Ich habe 3 Minuten ausgewählt.




Notifications die Benachrichtigungs Option. Diese Optionen sind selbsterklärend und ich spare mir hier die Detaillierte Erläuterung.














Die Advanced Optionen sind noch die wichtigsten hier lässt sich das Topic einstellen.
Das Topic lässt sich am besten als Thema beschreiben das nachher ein Client abonnieren kann. Meine Empfehlung ist 

owntracks/name/gerät

 zu verwenden.

Bei Publis QOS läst sich zwischen 0 und 2 auswählen, wobei 2 die Beste ist und bei 0 nicht sichergestellt wird ob eine Nachricht übertragen wird oder nicht.
QOS vom MQTT Protokoll wird hier sehr gut beschrieben.

Man kann auch beim MQTT Broker Themen abonnieren mit 

owntracks/+/+ 

werden alle Themen von owntracks ausgewählt.

Der Locater Displayment ist die Strecke die zurück gelegt werden muss um eine neue Position zum Broker zu senden.

Der locator Interval bestimmt den Intervall in der eine neue Possiton bestimmt wird.













iOS

folgt in Kürze sobald ich zugriff auf eine Apfel Kiste habe.


openHAB 


Zu aller erst bereiten wir die openhab.config vor.


############################### MQTT Transport####################################
#
# Define your MQTT broker connections here for use in the MQTT Binding or MQTT
# Persistence bundles. Replace <broker> with a id you choose.
#

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
mqtt:mosquitto.url=tcp://localhost:1883


# Optional. Client id (max 23 chars) to use when connecting to the broker.
# If not provided a default one is generated.
mqtt:mosquitto.clientId=openhab

# Optional. User id to authenticate with the broker.
mqtt:mosquitto.user=mosquitto

# Optional. Password to authenticate with the broker.
mqtt:mosquitto.pwd=meinpassort

# Optional. Set the quality of service level for sending messages to this broker.
# Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
# (Deliver exactly once). Defaults to 0.
mqtt:mosquitto.qos=2

# Optional. True or false. Defines if the broker should retain the messages sent to
# it. Defaults to false.
mqtt:mosquitto.retain=false

# Optional. True or false. Defines if messages are published asynchronously or
# synchronously. Defaults to true.
mqtt:mosquitto.async=true



Anschlissend die beiden folgenden Files in den Addon Ordner ablegen.
Die Files bekommt man natürlich bei openHAB, aus dem Addon zip.


org.openhab.binding.mqtt-1.4.0.jar
org.openhab.binding.mqttitude-1.4.0.jar




In Own Tracks einen Waypoint anlegen, der Namen wird später im Item benötigt.


Jetzt ein Item erstellen bei dem das Ende wichtig ist, hier :home .
Das ist der Name vom Waypoint.

Switch PresenceMarcus_Phone "Marcus Phone (GPS){mqttitude="mosquitto:owntracks/marcus/nexus4:home"}





Für den Fall das man in Owntracks keinen Waypoint definiert hat, dann muss man noch folgendes in der openhab.config schreiben.


############################### Mqttitude Binding ###################################
#
# The latitude/longitude coordinates of 'home'
mqttitude:home.lat=46.1706087
mqttitude:home.lon=8.4692452

# Optional. Distance in metres a user must be from 'home' to be considered inside
# the geofence
mqttitude:geofence=250



Beim Item lässt mann einfach :home weg.


Switch PresenceMarcus_Phone "Marcus Phone (GPS){mqttitude="mosquitto:owntracks/marcus/nexus4"}


Position in cometVISU und openhab mit GoogleMaps darstellen

.....wird folgen











Keine Kommentare:

Kommentar veröffentlichen