Wie können Flugdaten von MQTT Servern empfangen und in openHAB angezeigt werden? Hier ein Beispiel, wie von einem öffentlichen Testserver (test.mosquitto.org) die Anzahl von Flugzeuge in Hannover per MQTT empfangen, und alle 5 Minuten in realtime in openHAB angezeigt wird.
Das geht ganz einfach mit dem MQTT-Binding das in das addon Verzeichnis kopiert werden muss ( Datei: org.openhab.binding.mqtt-1.8.3.jar ). Dann den MQTT-Broker in der openhab.cfg eintragen:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
####################################################################################### ##### Transport configurations ##### ####################################################################################### ################################# 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 # Zu diesem Testbroker werden die Fluginformationen von einem Raspberry Pi gesendet mqtt:mosquitto.url=tcp://test.mosquitto.org:1883 |
Dann brauchen wir noch eine /items/Mqtt.items Datei mit einer Zeile
1 2 3 4 5 6 7 8 |
// // Steuerung des Fluginformationen via OpenHAB // // (c) 2016 Thomas Wenzlaff http://www.wenzlaff.info // // die Anzahl der Flugzeuge in Hannover String flugAnzahl "MQTT: Anzahl Flugzeuge [%s]" {mqtt="<[mosquitto:/Anzahl/Flugzeuge/Hannover:state:default]"} |
Dann noch in der sitemaps/Haus.sitemap einen Eintrag
1 2 3 4 5 6 7 8 |
Frame { Group item=gFlug label="Fluginfos" icon="flugzeug"{ Frame label="Hannover HAJ (EDDV)" { Text item=flugAnzahl } } } |
Dann ein Restart von openHAB, mit
1 |
sudo service openhab restart |
Und schon werden die Flugdaten per MQTT vom Testserver empfangen und alle 5 Minuten aktualisiert:
Das sind auch die gleichen Daten, die an Twitter gepostet werden. Kennt ihr noch Server, die „gute“ Daten für die Anzeige haben?
In einem anderen Blogeintrag, hatte ich schon gezeigt, wie man die Daten auch mit MQTT.fx empfangen kann: