Seite 1 von 2

Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 9. Okt 2019 22:31
von AirMR
Hi,

ich versuche jetzt seit Tagen einen mit Tasmota geflashten Sonoff TH16 über mqtt in mein Openhab 2.4 einzubinden.
Ich benutze den internen Broker. Dieser ist soweit installiert und funktioniert soweit auch. Ich habe mit MQTT.fx eine Verbindung zum broker aufgebaut und erhalte auch 2 Topics die ich subscriben kann. TopicSonoff1.PNG
TopicSonoff1.PNG
Ich verzweifle an dem Eintrag des generic MQTT Thing im PaperUI......
Sobald ich in dem Generic MQTT Thing einen channel anlege geht das Generic MQTT thing auf offline. Ich weiss nicht was ich in MQTT State Topic und MQTT command topic eintragen muss damit ich den Schalter oder die Temp angezeigt kriege. TopicSonoff2.PNG
TopicSonoff2.PNG
Ich habe alles was ich mit MQTT.fx ausgelesen habe (Sonoff_TH16/tele/SENSOR) mit stat, ohne, ohne tele, ohne SENSOR... schon eingetragen erhalte aber im PaperUI unter "Control" dann immer nur dieses Bild. TopicSonoff3.PNG
TopicSonoff3.PNG
und es wird nichts angezeigt.

Was muss ich genau in MQTT State Topic und MQTT command topic beim angelegten channel im Generic MQTT Thing eintragen was in MQTT.fx angezeigt wird?
ich drehe noch durch....
Wahrscheinlich habe ich nur irgendeinen blöden Denkfehler....

Bitte erlöst mich :)

Danke im Voraus

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 9. Okt 2019 23:20
von udo1toni
Hast Du denn schon den Broker angelegt? Das Thing muss einem Broker zugeordnet werden, den muss man auch dann anlegen, wenn man den internen Broker verwendet.

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 10. Okt 2019 17:48
von AirMR
Hi,
Ja, das passt alles. ich finde nur nicht den richtigen topic Pfad für den Sensor. Mittlerweile habe ich den Switch zum laufen gekriegt.
Sonoff_TH16/cmnd/POWER

Nur der sensor fehlt mir jetzt noch. Die Frage ist was ich anstatt Power angeben muß. oder ob das sowieso nochmal anders aussieht, da der Sensor ja nichts mit dem schalter zu tun hat.

Gruß

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 10. Okt 2019 18:31
von AirMR
So, wieder einen Schritt weiter. Mit "Sonoff_TH16/tele/SENSOR" Eintrag als topic im Channel und Channel Type "Text" erhalte ich diese Ausgabe:
4TopicSonoff3.PNG
Jetzt muß ich nur noch wissen wie ich den teil mit der Temperatur dort quasi separieren kann....
/Temperature an das Topic gehängt bringt nix.

Wie kann ich den temperaturwert hier extrahieren?

Danke

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 10. Okt 2019 19:22
von Dibbler42
Ja das geht. Schau mal unter der Position MORE. Dort müsste es so was wie "Incoming Value Transformation" geben. Dort gibt es eine kleine Beschreibung und du musst das JSONPath transformation Binding noch installieren.

Wenn ich es richtig lese müsste die Transformation

Code: Alles auswählen

"JSONPATH:$.Temperature"
heißen. Dann solltest Du auch wieder auf Number umstellen.

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 10. Okt 2019 20:27
von AirMR
Hi, Danke.
Ich habe es gefunden und eingetragen. Leider noch immer anstatt Zahl NaN

Gruß

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 10. Okt 2019 20:47
von AirMR
MUHAHAHAHAHA Ich habs !!!

Danke, danke, Danke :)

Es war "JSONPATH:$.DS18B20.Temperature"

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 10. Okt 2019 22:10
von AirMR
jetzt isses wieder weg....kA warum.....
ich versuche es jetzt nochmal über die .items

Was genau muß ich da eintragen?

Ich habe das hier: mqtt:topic:0d3028e6:Temp:state:JSONPATH($.DS18B20.Temperature)
Dieser Teil: mqtt:topic:0d3028e6:Temp ist aus dem paperUI beim channel rauskopiert. Muß ich das nutzen, oder das Topic mit den /
Und muß nochwas in die Things datei? wie zB der Broker, IP etc.?

Danke

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 11. Okt 2019 16:50
von udo1toni
Du solltest nicht, nur weil mal kein Wert angezeigt wird, anfangen, anders zu konfigurieren,schließlich hat's ja funktioniert.

Wenn Du beim Topic Sonoff_TH16/tele/SENSOR diese Ausgabe erhältst:

Code: Alles auswählen

{"Time":"2019-10-10T17:21:12","DS18B20":{"Temperature":21.7},"TempUnit":"C"}
passt die Konfiguration mit dem Channel:

Code: Alles auswählen

Type number : temp "Temperatur" [ stateTopic="Sonoff_TH16/tele/SENSOR", transformationPattern="JSONPATH:$.DS18B20.Temperature" ] 
Du kannst den Type auch erst mal auf string lassen.
Es kommt vor, dass ein Topic unterschiedliche Daten empfängt, es könnnte also sein, dass zeitweise keine gültigen DAten empfangen werden. Dann musst Du das Topic mit einer Rule in ein weiteres Item überführen, aber nur dann, wenn gültige Daten anstehen (die Funktion heißt instanceof Number)

Re: Sonoff TH16 in Openhab mit mqtt einbinden

Verfasst: 12. Okt 2019 16:30
von AirMR
Hi,

danke nochmal für die Hilfe. Die Anzeige passt jetzt. Ich habe jetzt alles in PaperUI als Things/items angelegt und erhalte die richtige Ausgabe. Ich nutze diese Bezeichnung dann in den Rules.
"Number Temp1_T_TH16 "TH16 Temperatur [%.1f°C]" <temperature> (sonoff) { channel="mqtt:topic:0d3028e6:Temp" }"
wobei der channel= dann aus dem paper UI item kopiert ist.

Was ich noch nicht verstanden habe ist wie ich ohne die Things in PaperUi hinzuzufügen direkt als item in der .item Datei eintragen kann ohne das sie im Paper Ui angelegt sind.
Dasgeht zB nicht:
Number dataTH_1Temp "Temperatur [%.1f °C]" (sonoff)
{ mqtt="<[mqtt:Sonoff_TH16/tele/SENSOR:state:JSONPATH($.DS18B20.Temperature)]" }
das auch nicht:
Number dataTH_1Temp2 "Temperatur [%.1f °C]" (gChartTH_1Temp)
{ mqtt="<[stateTopic="Sonoff_TH16/tele/SENSOR", transformationPattern="JSONPATH:$.DS18B20.Temperature"]" }

Ich habe einfach keine Ahnung was wo eingtragen werden muß mqtt= am Anfang, bedeutet das einfach das Format das es jetzt mqtt daten isnd, egal welcher broker benutzt wird? Oder muss das schon irgendwie mit dem Namen des Brokers zu tun haben? state topic oder mqtt for dem : ? Ist das etwas generelles oder schon mit Bezug auf den Broker? Oft sehe ich da auch mosquitto stehen . Ich weiss nicht genau welcher Eintrag was genau bedeutet und habe durch zig Foren Beiträge auch kein schlüssiges Format das bei mir funktioniert erfahren.
Ich nutze den internen mqtt broker von OH. Ich versuche zu vertehen, kann aber die Matrix noch nicht lesen :)