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.
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.