MQTT Werte über Config channel auslesen.
-
- Beiträge: 1
- Registriert: 19. Feb 2020 20:25
MQTT Werte über Config channel auslesen.
Hallo Zusammen,
leider finde ich über die Nutzung des MQTT 2.5 Binding und das Auslesen der Werte über den Configure Channel irgend wie nirgends eine Anleitung oder Beschreibung. Alles endet immer in der Config Datei und dem Editor.
Ich habe aber im OpenHab2 mit dem MQTT Binding 2.5 irgendwie keine Items mehr sonder nur noch Things und Channels.
Aber alle Beschreibungen enden immer in den Items!
Im Visual Studio Code gibt es aber die ganzen Einträge welche ich in der "Paper UI" machte nicht.
Habe nun zum Üben einen "SonOff Basic" mit "Tasmota" angelegt welcher auch über den MQTT Broker und meine Einstellungen ein und ausschaltet.
Aber wie könnte ich denn nun die "stat.." Werte wo anzeigen.
Muss leider auch zugestehen dass ich noch nicht viel mit dem OpenHAB2 gemacht habe also neu in der Materie bin.
Habe in der "Paper UI" in "Configuration" bei "Things" über "+" ein "MQTT Binding" angelegt, dann "Add manuel" ein "Generic MQTT Thing", hier die Werte vergeben und , über Doppelklick (Status: online) einen Channels angelegt. Hier "Text Value" ausgewählt meinen Standard "Sonoff" "MQTT State Topic" aus MQTT.fx kopiert "stat/sonoff02/POWER" eingetragen aber wie bekomme ich nun irgendwo einen Wert der POWER Payload?
Hatte gehofft dass unter "Incoming Value Transformation" ich nun einen JSONPATH eintragen aber wie? (JSONPATH:$.POWER.Wert)
Bei "Add-ons" habe ich unter "TRANSFORMATIONS" den "JSONPath Transformation" 2.5.1 installiert.
Falls es schon irgend wo einen Artverwandten Artikel schon gäbe wäre ich über einen Verweis sehr verbunden und müsste mich entschuldigen für meine Unfähigkeit hier was zu finden.
Vorab schon mal vielen Dank für eure Hilfe.
leider finde ich über die Nutzung des MQTT 2.5 Binding und das Auslesen der Werte über den Configure Channel irgend wie nirgends eine Anleitung oder Beschreibung. Alles endet immer in der Config Datei und dem Editor.
Ich habe aber im OpenHab2 mit dem MQTT Binding 2.5 irgendwie keine Items mehr sonder nur noch Things und Channels.
Aber alle Beschreibungen enden immer in den Items!
Im Visual Studio Code gibt es aber die ganzen Einträge welche ich in der "Paper UI" machte nicht.
Habe nun zum Üben einen "SonOff Basic" mit "Tasmota" angelegt welcher auch über den MQTT Broker und meine Einstellungen ein und ausschaltet.
Aber wie könnte ich denn nun die "stat.." Werte wo anzeigen.
Muss leider auch zugestehen dass ich noch nicht viel mit dem OpenHAB2 gemacht habe also neu in der Materie bin.
Habe in der "Paper UI" in "Configuration" bei "Things" über "+" ein "MQTT Binding" angelegt, dann "Add manuel" ein "Generic MQTT Thing", hier die Werte vergeben und , über Doppelklick (Status: online) einen Channels angelegt. Hier "Text Value" ausgewählt meinen Standard "Sonoff" "MQTT State Topic" aus MQTT.fx kopiert "stat/sonoff02/POWER" eingetragen aber wie bekomme ich nun irgendwo einen Wert der POWER Payload?
Hatte gehofft dass unter "Incoming Value Transformation" ich nun einen JSONPATH eintragen aber wie? (JSONPATH:$.POWER.Wert)
Bei "Add-ons" habe ich unter "TRANSFORMATIONS" den "JSONPath Transformation" 2.5.1 installiert.
Falls es schon irgend wo einen Artverwandten Artikel schon gäbe wäre ich über einen Verweis sehr verbunden und müsste mich entschuldigen für meine Unfähigkeit hier was zu finden.
Vorab schon mal vielen Dank für eure Hilfe.
-
- Beiträge: 424
- Registriert: 6. Mär 2019 11:19
Re: MQTT Werte über Config channel auslesen.
Ich verstehe nicht so ganz was du möchtest der Sonoff liefert doch keine Werte die du auslesen könntest oder täusche ich mich der kann doch nur ein und ausgeschaltet werden.
Über die Paper UI als allgemeines Vorgehen du legst ein Generic MQTT Thing an.
In dem Thing legst du deine Channels an in denen du Topics angibst.
Wenn du nun nachdem der Channel gespeichert ist auf den blauen Kreis neben dem Channel klickst kannst du ein entsprechendes Item Anlegen oder auch ein entsprechendes Item auswählen das du vorher mit VSCODE erstellt hast.
Edit.
Ich habe jetzt den genauen Topic bei Tasmota nicht im Kopf also entsprechend Anpassen
du legst weitere Channel unterhalb deines Generic Thing an und liest als erstes mit MQTT.fx oder vergleichbaren Tools den State Topic aus der gibt z.B.
so etwas aus { "temperature" : " 19.1" , "voltage" : "233", "battery" : "88" }
jetzt möchtest du voltage auslesen jetzt legst du einen Channel vom Typ Number an gibst bei state Topic entsprechenden Topic an z.B. stat/XXXX/Status
dann gehst du in der Paper UI auf show more und gibst bei Incoming Transformation : JSONPATH$.voltage ein das sagt das du aus dem Beispiel oben den wert voltage auslesen möchtest.
Diesen Channel verknüpfst du mit einem Item und kannst ihn dir dann anzeigen lassen. Willst du alle 3 aus dem Bespiel auslesen muss du 3 Channels anlegen und 3 Items
Über die Paper UI als allgemeines Vorgehen du legst ein Generic MQTT Thing an.
In dem Thing legst du deine Channels an in denen du Topics angibst.
Wenn du nun nachdem der Channel gespeichert ist auf den blauen Kreis neben dem Channel klickst kannst du ein entsprechendes Item Anlegen oder auch ein entsprechendes Item auswählen das du vorher mit VSCODE erstellt hast.
Edit.
Ich habe jetzt den genauen Topic bei Tasmota nicht im Kopf also entsprechend Anpassen
du legst weitere Channel unterhalb deines Generic Thing an und liest als erstes mit MQTT.fx oder vergleichbaren Tools den State Topic aus der gibt z.B.
so etwas aus { "temperature" : " 19.1" , "voltage" : "233", "battery" : "88" }
jetzt möchtest du voltage auslesen jetzt legst du einen Channel vom Typ Number an gibst bei state Topic entsprechenden Topic an z.B. stat/XXXX/Status
dann gehst du in der Paper UI auf show more und gibst bei Incoming Transformation : JSONPATH$.voltage ein das sagt das du aus dem Beispiel oben den wert voltage auslesen möchtest.
Diesen Channel verknüpfst du mit einem Item und kannst ihn dir dann anzeigen lassen. Willst du alle 3 aus dem Bespiel auslesen muss du 3 Channels anlegen und 3 Items
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: MQTT Werte über Config channel auslesen.
Ich weiss zwar nicht, wie das in der PaperUI funktioniert, aber hier mal ein Beispiel aus meinem SetUp für einen Sonoff-Basic:
.things
Code: Alles auswählen
Thing topic basic03 "Sonoff Basic 03 Schreibtischlampe" @ "MQTT2" {
Channels:
Type switch : power "Power " [ stateTopic="stat/basic_03/POWER", commandTopic="cmnd/basic_03/POWER" ]
Type number : rssi "WiFi Signal Strength" [ stateTopic="tele/basic_03/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
Type string : version "Firmware Version " [ stateTopic="stat/basic_03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
Type switch : reachable "Reachable" [ stateTopic="tele/basic_03/LWT",transformationPattern="MAP:reachable.map" ]
Type string : hardware "Chip Set " [ stateTopic="stat/basic_03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
Type string : ipaddress "IP Address " [ stateTopic="stat/basic_03/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
.items
Code: Alles auswählen
/**********************************************************************************************************************************************************************************************************************
//Basic Switches
//**********************************************************************************************************************************************************************************************************************
//192.168.x.y basic-03
Switch Sonoff_Basic_03 "Schreibtischlampe Büro [MAP(de.map):%s]" <tablelamp> (EG_Buro,gSonoff,gLight) { channel="mqtt:topic:hans:basic03:power" }
Number Sonoff_Basic_03_RSSI "Schreibtischlampe Büro RSSI [%s]" <qualityofservice> (EG_Buro,gRSSI) { channel="mqtt:topic:hans:basic03:rssi" }
String Sonoff_Basic_03_Version "Schreibtischlampe Version 31[%s]" <sonoff_basic> (gSonoffs,gVer) { channel="mqtt:topic:hans:basic03:version" }
Switch Sonoff_Basic_03_Unreach "Schreibtischlampe Ereichbarkeit [%s]" <siren1> (EG_Buro,gLWT) { channel="mqtt:topic:hans:basic03:reachable" }
String Sonoff_Basic_03_Hardware "Schreibtischlampe ChipSet 31[%s]" <sonoff_basic> (gSonoffs,gHard) { channel="mqtt:topic:hans:basic03:hardware" }
String Sonoff_Basic_03_IPAddress "Schreibtischlampe IP-Address [%s]" <sonoff_basic> (gSonoffs,gHard) { channel="mqtt:topic:hans:basic03:ipaddress" }
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- udo1toni
- Beiträge: 15241
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: MQTT Werte über Config channel auslesen.
Also Tasmota betreffend (eigentlich gilt das generell für alle mqtt Varianten):
Wenn Du nicht gerade die Homie Emulation anschmeißt, musst Du alles "von Hand" verbinden. Ob Du dazu den Weg über eine Textdatei oder über Paper UI gehst, bleibt sich gleich.
Es ist aber viel einfacher, die Konfiguration als Text wiederzugeben (siehe peter-pans Thing).
Grundsätzlich brauchst Du die Verbindung zum Broker, das erledigt die mqtt Bridge (ein spezielles Thing...). Der Bridge musst Du (mindestens) ein Thing zuordnen, da Du das alles manuell konigurieren musst, handelt es sich um ein generic mqtt Thing.
Im generic mqtt Thing schließlich musst Du für jedes Topic, was Dich interessiert, einen Channel anlegen.
Manche Channel sind nur lesbar, manche nur schreibbar, oft aber geht die Kommunikation in beide Richtungen (z.B. Schaltbefehl zum Senden und Schaltstatus in der anderen Richtung), dann musst Du einem Channel zwei Topics zuordnen, eben ein stateTopic und ein commandTopic.
Die beiden Topics sind grundsätzlich verschieden (bei Tasmota cmnd/ und stat/ als prefix des Topics)
Wenn Du schließlich diese Channel in openHAB verwenden möchtest, muss der Inhalt in Items abgebildet werden, dazu musst Du die Channel mit Items verlinken. Channel Type und Itemtype sollten zueinander passen
und üblicherweise braucht man auch nur ein Item pro Channel.
Wenn Du nicht gerade die Homie Emulation anschmeißt, musst Du alles "von Hand" verbinden. Ob Du dazu den Weg über eine Textdatei oder über Paper UI gehst, bleibt sich gleich.
Es ist aber viel einfacher, die Konfiguration als Text wiederzugeben (siehe peter-pans Thing).
Grundsätzlich brauchst Du die Verbindung zum Broker, das erledigt die mqtt Bridge (ein spezielles Thing...). Der Bridge musst Du (mindestens) ein Thing zuordnen, da Du das alles manuell konigurieren musst, handelt es sich um ein generic mqtt Thing.
Im generic mqtt Thing schließlich musst Du für jedes Topic, was Dich interessiert, einen Channel anlegen.
Manche Channel sind nur lesbar, manche nur schreibbar, oft aber geht die Kommunikation in beide Richtungen (z.B. Schaltbefehl zum Senden und Schaltstatus in der anderen Richtung), dann musst Du einem Channel zwei Topics zuordnen, eben ein stateTopic und ein commandTopic.
Die beiden Topics sind grundsätzlich verschieden (bei Tasmota cmnd/ und stat/ als prefix des Topics)
Wenn Du schließlich diese Channel in openHAB verwenden möchtest, muss der Inhalt in Items abgebildet werden, dazu musst Du die Channel mit Items verlinken. Channel Type und Itemtype sollten zueinander passen

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 10
- Registriert: 21. Nov 2018 17:42
Re: MQTT Werte über Config channel auslesen.
Hallo Udo,
ich habe letzte Woche alle meine Tasmota Geräte von V6.0.6 auf die aktuelle V8.3.1 upgegradet und seither ein Problem mit den Switches, die haben vorher über diese Things perfekt funktioniert.
In der sitemap wurde der Status nach einem Neustart von OH nach wenigen Minuten von allen Geräten von unbekannt auf ON oder OFF aktualisiert.
Seit dieser Änderung ändert er nur den Status wenn ich das Gerät einmal ein oder ausschalte.
Im MQTT Explorer und in der Console sehe ich das Tasmota die Werte sendet, mein OH diese scheinbar aber nicht liest oder auswertet.
OH V2.5.7-1 läuft auf RASPI
Hast du eine Idee wie ich dem Problem auf den Grund komme?
vielen herzlichen Dank im Voraus!
Liebe Grüße,
Karl-Heinz
ich habe letzte Woche alle meine Tasmota Geräte von V6.0.6 auf die aktuelle V8.3.1 upgegradet und seither ein Problem mit den Switches, die haben vorher über diese Things perfekt funktioniert.
Code: Alles auswählen
Type switch : socket_01 "Nachtlicht " [ stateTopic="tele/SONOFF-01/STATE" , transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/SONOFF-01/POWER", on="ON", off="OFF", autoupdate="true" ]
Seit dieser Änderung ändert er nur den Status wenn ich das Gerät einmal ein oder ausschalte.
Im MQTT Explorer und in der Console sehe ich das Tasmota die Werte sendet, mein OH diese scheinbar aber nicht liest oder auswertet.
OH V2.5.7-1 läuft auf RASPI
Hast du eine Idee wie ich dem Problem auf den Grund komme?
vielen herzlichen Dank im Voraus!
Liebe Grüße,
Karl-Heinz
- udo1toni
- Beiträge: 15241
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: MQTT Werte über Config channel auslesen.
Bist Du sicher, dass es POWER ist, und nicht POWER1? Tasmota wird aus Kompatibilitätsgründen weiterhin auf POWER reagieren, soweit ich mich erinnere, ist das aber geändert worden, damit es weniger Unterschiede zwischen Einkanalgeräten und Mehrkanalgeräten gibt.
Ich habe allerdings gerade kein Testobjekt zur Hand...
EDIT: Hab doch ein Testobjekt... Nö, stimmt nicht, der Punkt heißt nach wie vor POWER...
Ich habe allerdings gerade kein Testobjekt zur Hand...
EDIT: Hab doch ein Testobjekt... Nö, stimmt nicht, der Punkt heißt nach wie vor POWER...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: MQTT Werte über Config channel auslesen.
...könnte es sein, dass der Channel vielleicht so funktionieren könnte ?
Code: Alles auswählen
Type switch : socket_01 "Nachtlicht " [ stateTopic="stat/SONOFF-01/POWER" , commandTopic="cmnd/SONOFF-01/POWER" ]
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 10
- Registriert: 21. Nov 2018 17:42
Re: MQTT Werte über Config channel auslesen.
Danke, das mit Power1 hatte ich auch schon vermutet und getestet.
die Kurzform ohne transformation hatte ich ebenfalls schon probiert.
ich habe nun mal die gesamte konfiguration geändert und bin wieder am testen.
werde erneut berichten was jetzt stand ist.
Liebe Grüße,
Karl-Heinz
die Kurzform ohne transformation hatte ich ebenfalls schon probiert.
ich habe nun mal die gesamte konfiguration geändert und bin wieder am testen.
werde erneut berichten was jetzt stand ist.
Liebe Grüße,
Karl-Heinz
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: MQTT Werte über Config channel auslesen.
Hast du auch das "stateTopic" geändert ? Ich meine "tele" gibt nur zu bestimmten Zeiten Daten über den Kanal (Telemetrieperiode in Tasmota). Du möchtest doch aber den Status von Power nach dem Schalten, oder liege ich da falsch, also >stateTopic="stat/SONOFF-01/POWER"<
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian