Probiers mal so:
Code: Alles auswählen
Number dataTH_1Temp "Temperatur [%.1f °C]" (sonoff) { channel="mqtt:topic:0d3028e6:Temp" }
Moderatoren: Cyrelian, udo1toni
Code: Alles auswählen
Number dataTH_1Temp "Temperatur [%.1f °C]" (sonoff) { channel="mqtt:topic:0d3028e6:Temp" }
Code: Alles auswählen
Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
{
Thing topic mything {
Channels:
Type switch : lamp "Kitchen Lamp" [ stateTopic="lamp/enabled", commandTopic="lamp/enabled/set" ]
Type switch : fancylamp "Fancy Lamp" [ stateTopic="fancy/lamp/state", commandTopic="fancy/lamp/command", on="i-am-on", off="i-am-off" ]
Type string : alarmpanel "Alarm system" [ stateTopic="alarm/panel/state", commandTopic="alarm/panel/set", allowedStates="ARMED_HOME,ARMED_AWAY,UNARMED" ]
Type color : lampcolor "Kitchen Lamp color" [ stateTopic="lamp/color", commandTopic="lamp/color/set", rgb=true ]
Type dimmer : blind "Blind" [ stateTopic="blind/state", commandTopic="blind/set", min=0, max=5, step=1 ]
}
}
Code: Alles auswählen
Bridge mqtt:broker:myUnsecureBroker [ host="meine IP", secure=false ]
{
Thing topic mything {
Channels:
Type string : Sonoff_TH16 "TH16 Temp" [ stateTopic="Sonoff_TH16/tele/SENSOR"]
}
}
Code: Alles auswählen
Bridge mqtt:broker:myUnsecureBroker [ host="meine IP", secure=false ]
{
Thing topic mything {
Channels:
Type number : Sonoff_TH16 "TH16 Temp" [ stateTopic="Sonoff_TH16/tele/SENSOR:JSONPATH:$.DS18B20.Temperature"]
}
}
Das ist mindestens missverständlich. Du nutzt .items Dateien, um Items zu konfigurieren - in diesen Dateien kannst Du auch ausschließlich Items definieren, nichts anderes.
Definitiv nein, das hat so gar nichts mit items Dateien zu tun. Eventuell hast Du den Simple Mode eingeschaltet? Dann erzeugt openHAB automatisch für jeden Channel ein passendes Item, in der Folge hast Du dann zwei Items, wenn Du selbst noch ein Item anlegst. Schalte bitte den Simple Mode aus, dann erhältst Du im Konfigurationsmenü einen Punkt Items, wo Du alle Items konfigurieren kannst. Leider kannst Du die ID der schon angelegten Items nicht ändern, so dass Du als ersten Schritt alle Verlinkungen entfernen, und anschließend alle überzähligen Items löschen musst.Daher habe ich auch im PaperUi alle items mit 2 Schaltern.
Versuche nicht, die beiden Konfigurationen parallel zu betreiben. Entweder, Du legst alle Items über *.items Dateien an, oder gar keine. Falls Du Amazon Echo oder Google Assistant verwenden willst, musst Du Items taggen, das geht ausschließlich über *.items Dateien (ok, Du kannst es auch über die REST API...)Im Moment bin ich am überlegen meine .items Datei soweit zu reduzieren, das ich alles was im paperUI konfiguriert und zu sehen ist aus dieser Datei nehme damit ich keine doppelten Einträge mehr habe.
Du musst pro Channel ein Item verlinken, ob Du das über Paper UI machst oder in einer oder mehreren *.items Dateien, bleibt Dir überlassen. Aber entscheide Dich für eine der beiden Optionen.Soweit ich jetzt verstanden habe ist der Weg mqtt Infos anzuzeigen über PaperUI, dort Things und Channel anlegen und dann die Thing Bezeichnung aus PaperUI (channel="mqtt:topic:0d3028e6:Temp") als item in Regeln benutzen die einfachste.
Nein, in Rules kannst Du nur auf Items zurückgreifen. Items sind Items, es spielt keine Rolle, wie sie definiert wurden, ob über Text oder über Paper UI oder über REST API oder über Karaf (geht alles).da ich dann in den Regeln mit der Textbezeichnung von PaperUI
5TopicSonoff3.PNG
Hier TH16 und dem entsprechenden in paperUI angelegten Channel arbeiten kann.
Es gibt keine native mqtt Ausgabe. mqtt arbeitet mit Broker, Topic und Payload. Mit mqtt2 definierst Du eine Bridge, die die Verbindung zum Broker darstellt, einem oder mehreren Thing(s), und unterhalb mit Channels, in denen die einzelnen Topics angelegt werden. Damit openHAB mit dem Payload arbeiten kann, muss der Channel mit einem Item verlinkt sein...Ich arbeite somit also nur noch mit den von Paper UI generierten Definitionen "mqtt:topic:0d3028e6:Temp" und nicht mehr mit der "nativen" mqtt Ausgabe.
Korrekt, ohne Paper UI legt man Bridge, Thing(s) und Channel in einer *.things Datei an. Anschließend verlinkt man diese Channel mit passenden Items. Wenn Du Visual Studio Code (bitte nicht mit Visual Studio verwechseln, das ist etwas komplett anderes!) nutzt, gibt es ein openHAB Plugin, welches vollautomatisch aus Things und deren Channeln Items erzeugen kann.Ebenso können vorhandene Items automatisch in Sitemaps oder Rules eingefügt werden. Das ist übrigens sehr viel komfortabler, als die Arbeit mit Paper UI.Um ohne PaperUI auszukommen muss ich eine .things Datei mit Bridge und den mqtt Things definieren. Diese Things müssen dann noch in einer .items Datei mit den entsprechenden mqtt Pfaden definiert werden, oder?
Genau so, allerdings wird das JSONPATH als Transformation angegeben, das ist ein eigener Parameter (wie im übrigen in Paper UI auch) Sieht dann für den Channel so aus:Oder ist der Channels: Eintrag in deinem Beispiel ausreichend um die Daten zu erhalten?
Um ohne PaperUI auszukommen wäre dies in meinem Falle:
Sonoff_TH16/tele/SENSOR mit Ausgabe: {"Time":"2019-10-13T12:39:31","DS18B20":{"Temperature":21.3},"TempUnit":"C"}
Wenn ich jetzt also "Sonoff_TH16" in die sitemap oder eine Regel einbaue erhalte ich dort diese Ausgabe:Code: Alles auswählen
Bridge mqtt:broker:myUnsecureBroker [ host="meine IP", secure=false ] { Thing topic mything { Channels: Type string : Sonoff_TH16 "TH16 Temp" [ stateTopic="Sonoff_TH16/tele/SENSOR"] } }
{"Time":"2019-10-13T12:39:31","DS18B20":{"Temperature":21.3},"TempUnit":"C"}
Und muss später den Wert mit JSONPATH entnehmen.
Oder kann ich den JSONPATH Anhang hier mit einbringen?Und erhalte dann mit "Sonoff_TH16" in Sitemap oder Regel den entnommenen Zahlenwert 21.3?Code: Alles auswählen
Bridge mqtt:broker:myUnsecureBroker [ host="meine IP", secure=false ] { Thing topic mything { Channels: Type number : Sonoff_TH16 "TH16 Temp" [ stateTopic="Sonoff_TH16/tele/SENSOR:JSONPATH:$.DS18B20.Temperature"] } }
Code: Alles auswählen
Type number : Sonoff_TH16 "TH16 Temp" [ stateTopic="Sonoff_TH16/tele/SENSOR", transformationPattern=":JSONPATH:$.DS18B20.Temperature"]