• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums!!!

Nano mit MQTT in Openhab(2) einbinden

Rheinklang

Militanter Veganer
5+ Jahre im GSV
Hallo zusammen,

zu o.g. Kombination habe ich bisher nur wenige Infos im Netz gefunden. Nach einigem Lesen und Probieren habe ich es aber grundsätzlich geschafft, die Werte, die vom Nano per MQTT geliefert werden, in Openhab zur Anzeige zu bringen. Vielleicht helfen meine Erfahrungen ja jemandem hier.

Die Verbindung zum Broker (bei mir Mosquitto) ging auf Anhieb. Dazu einfach nur die Daten des Servers auf dem Webfrontend vom Nano eingeben.

Um zu checken, ob die Werte auch ankommen, habe ich MQTT-Lens als Plugin für Chrome genutzt und eine subscription zum Topic (siehe api-doku)

„WLanThermo/NANO-sernummer/status/data“

gemacht. Da kamen alle 30s brav die vom Nano geposteten Werte.

Um die Werte nun ins Openhab zu bekommen muss dort die Transformation „JSONPath Transformation“ installiert sein (um aus dem vom Nano geposteten JSON-Objekt auf die einzelnen Daten zugreifen zu können).
Anschließend eine .item Datei fürs Nano anlegen, und darin habe ich für jeden anzuzeigenden Wert einen Eintrag angelegt.

Beispiel:

Die Temperatur von Fühlerwert 1 bekomme ich über

Number NanoCurrentTemp_1 "Temperatur 1 [%.1f °C]" (WLanThermo) { mqtt="<[broker:WLanThermo/NANO-seriennummer/status/data:state:JSONPATH($.channel[0].temp)]"}

Fühler 2:
Number NanoCurrentTemp_2 "Temperatur 2 [%.1f °C]" (WLanThermo) { mqtt="<[broker:WLanThermo/NANO-seriennummer/status/data:state:JSONPATH($.channel[1].temp)]"}


[NANO-seriennummer natürlich durch die richtige Seriennummer des Nanos ersetzt).

Entsprechend das RSSI-Level mit

Number WlanNanoRSSI "WLAN Nano RSSI Level [%d dbm]" (WLanThermo) { mqtt="<[broker:WLanThermo/NANO- seriennummer /status/data:state:JSONPATH($.system.rssi)]"}

Etc. Wenn man einmal verstanden hat, wie der Zugriff geht, ist es ganz easy, weil das JSON-Objekt super dokumentiert ist.

Damit sollten zumindest die Werte alle 30s in entsprechende items transferiert werden (am besten in der karaf-liveview-log nachverfolgen, ggf. werden hier Hinweise auf Fehler geworfen).

Um die Werte anzuzeigen braucht es nur eine sitemap.datei (z.B. Wlanthermo.sitemap) mit Inhalt wie diesem:

sitemap wlanthermo label="WLanThermo" {

Frame label="Nano" {

Text item= NanoCurrentTemp_1

Text item= NanoCurrentTemp_2

Text item=WlanNanoAkku

}

}

Das ist zunächst alles sehr rudimentär, z.B. werden Fühler, die nicht angeschlossen sind, so noch nicht ausgeblendet bzw. deren Werte mit 999°C angeschlossen, aber das ist dann unabhängig vom Nano in Openhab lösbar etc. Man kann natürlich im OH auch Graphische Auswertungen/Diagramme machen, vielleicht poste ich dazu mal was, wenn ich das mal angegangen habe.
 

s.ochs

Grillkaiser
5+ Jahre im GSV
Top! Wie du sagst, entscheidend ist das man einmal weiß, wie man das JSON zerlegt, dann ergibt sich der Rest.

[NANO-seriennummer natürlich durch die richtige Seriennummer des Nanos ersetzt).
Kleine Anmerkung: NANO-xxxxxx ist der Standard-Hostname. Falls man den geändert hat, dann muss natürlich dieser genutzt werden.
 
Oben Unten