openhab3 MQTT publishen
-
- Beiträge: 4
- Registriert: 15. Nov 2022 17:05
openhab3 MQTT publishen
Hallo, liebe Spezialisten.
Ich arbeite schon seit einigen Monaten mit Openhab3. Ich frage diverse Sensoren über MQTT ab und auch aus der Heizung (ETA Pelletheizung ohne MQTT) habe ich einige Parameter abrufen und grafisch darstellen können.
Mein Problem: ich möchte den Zustand der Saugturbine der Heizung abfragen und diesen Wert zum MQTT-Broker schicken.
Dazu habe ich ein Item (saug) erstellt, welches mir den Wert 950 (Turbine aus) bzw. 951 (Turbine ein) liefert.
Dann habe ich ein "Generic MQTT Thing" erstellt mit der "MQTT Broker Bridge". Dazu ein Channel mit dem "MQTT Command Topic" "vibra".
Weiterhin habe ich eine Rule erstellt: Wenn "saug" updated, dann soll auch "vibra" updaten. Der Wert kommt auch bei vibra an aber er wird nicht zum Broker unter dem Topic vibra geleitet (getestet mit mosquitto).
Als zweiten Versuch habe ich die Rule rausgenommen und "saug" direkt mit "vibra" verlinkt. Wert kommt an aber nicht zum Broker.
Dann habe ich mal aus Verzweiflung aus "vibra" ein Switch-Item gemacht und mit verschiedenen Zahlen für an und aus versehen. Wenn ich den Schalter betätige, kommen die entsprechenden Werte auch am Broker an.
Ich habe auch mehrmals die Dokumentation zu MQTT in Openhab gelesen und zu versucht zu verstehen. Die Beispieltexte scheinen sich dort auf Openhab2 zu beziehen. Nun stecke ich mit meinen Ideen fest. Ich hoffe, dass es nur ein Denkfehler von mir ist und die Lösung doch grafisch möglich ist.
Vielen Dank für eure Mühen.
Eberhard
Ich arbeite schon seit einigen Monaten mit Openhab3. Ich frage diverse Sensoren über MQTT ab und auch aus der Heizung (ETA Pelletheizung ohne MQTT) habe ich einige Parameter abrufen und grafisch darstellen können.
Mein Problem: ich möchte den Zustand der Saugturbine der Heizung abfragen und diesen Wert zum MQTT-Broker schicken.
Dazu habe ich ein Item (saug) erstellt, welches mir den Wert 950 (Turbine aus) bzw. 951 (Turbine ein) liefert.
Dann habe ich ein "Generic MQTT Thing" erstellt mit der "MQTT Broker Bridge". Dazu ein Channel mit dem "MQTT Command Topic" "vibra".
Weiterhin habe ich eine Rule erstellt: Wenn "saug" updated, dann soll auch "vibra" updaten. Der Wert kommt auch bei vibra an aber er wird nicht zum Broker unter dem Topic vibra geleitet (getestet mit mosquitto).
Als zweiten Versuch habe ich die Rule rausgenommen und "saug" direkt mit "vibra" verlinkt. Wert kommt an aber nicht zum Broker.
Dann habe ich mal aus Verzweiflung aus "vibra" ein Switch-Item gemacht und mit verschiedenen Zahlen für an und aus versehen. Wenn ich den Schalter betätige, kommen die entsprechenden Werte auch am Broker an.
Ich habe auch mehrmals die Dokumentation zu MQTT in Openhab gelesen und zu versucht zu verstehen. Die Beispieltexte scheinen sich dort auf Openhab2 zu beziehen. Nun stecke ich mit meinen Ideen fest. Ich hoffe, dass es nur ein Denkfehler von mir ist und die Lösung doch grafisch möglich ist.
Vielen Dank für eure Mühen.
Eberhard
Ähm... das ist mir gestern gar nicht mehr aufgefallen, aber Du gibst ja gar keinen konkreten Befehl an.
Und das kannst Du auch gar nicht, weil Du ja den Wert übertragen willst.
Gehe ich recht in der Annahme, dass der Wert von Saug exakt so nach vibra übertragen werden soll, also ohne weitere Berechnungen?
Dann brauchst Du gar keine Rule. Stattdessen verlinkst Du beide Channel mit dem selben Item (z.B. Heizung_Saug) und gibst dabei bei dem Channel vibra als Profile "follow" an (Das Profile wird im Link gesetzt).
Gehe zur vollständigen AntwortUnd das kannst Du auch gar nicht, weil Du ja den Wert übertragen willst.
Gehe ich recht in der Annahme, dass der Wert von Saug exakt so nach vibra übertragen werden soll, also ohne weitere Berechnungen?
Dann brauchst Du gar keine Rule. Stattdessen verlinkst Du beide Channel mit dem selben Item (z.B. Heizung_Saug) und gibst dabei bei dem Channel vibra als Profile "follow" an (Das Profile wird im Link gesetzt).
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab3 MQTT publishen
Es wäre gut gewesen, Du hättest konkrete Rules gepostet
Auch wenn Du alles per UI erstellst, gibt es (bis auf die Items...) eine Code-Ansicht (sowohl Things als auch Rules), anhand derer Fortgeschrittene gut nachvollziehen können, was läuft (und wo potenziell Fehler sind).
Es gibt diverse Stellen, die du nicht explizit erläutert hast:

Es gibt diverse Stellen, die du nicht explizit erläutert hast:
- Wie ist das Thing definiert
- wie ist der Channel definiert
- Wie ist das Item definiert
- Wie lautet der Befehl, den Du in der Rule verwendet hast
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 4
- Registriert: 15. Nov 2022 17:05
Re: openhab3 MQTT publishen
Hallo udo1toni,
vielen Dank für die orientierenden Punkte.
Das Item "saug", das den Wert liefert:
Das Item "vibra", welches den Wert publishen soll:
Die Rule, um den Wert von "saug" nach "vibra"transportiert:
In beiden Items erscheint der gewünschte Wert, nur bei der Abfrage des Topics "vibra" mit mosquitto_sub erscheint nichts.
vielen Dank für die orientierenden Punkte.
Das Item "saug", das den Wert liefert:
Code: Alles auswählen
UID: http:url:4c9f92d31c
label: Heizung
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://192.168.178.86:8080/user/var
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: application/xml
timeout: 3000
bufferSize: 2048
channels:
- id: Aussentemperatur
channelTypeUID: http:number
label: Aussentemperatur
description: ""
configuration:
stateExtension: /120/10241/0/0/12197
stateTransformation: XPATH:/*[name()='eta']
- id: Kollektor
channelTypeUID: http:number
label: Kollektor
description: ""
configuration:
stateExtension: /120/10221/0/0/12275
stateTransformation: XPATH:/*[name()='eta']
- id: Speicher_unten
channelTypeUID: http:number
label: Speicher_unten
description: ""
configuration:
stateExtension: /120/10221/0/0/12781
stateTransformation: XPATH:/*[name()='eta']
- id: Speicher_oben
channelTypeUID: http:number
label: Speicher_oben
description: ""
configuration:
stateExtension: /120/10601/0/0/13144
stateTransformation: XPATH:/*[name()='eta']
- id: Kollektorpumpe
channelTypeUID: http:number
label: Kollektorpumpe
description: ""
configuration:
stateExtension: /120/10221/0/11142/0
stateTransformation: XPATH:/*[name()='eta']
- id: Abgas
channelTypeUID: http:number
label: Abgas
description: ""
configuration:
stateExtension: /40/10021/0/0/12162
stateTransformation: XPATH:/*[name()='eta']
- id: Pelletlager
channelTypeUID: http:number
label: Pelletlager
description: ""
configuration:
stateExtension: /40/10201/0/0/12015
stateTransformation: XPATH:/*[name()='eta']
- id: Pelletbehaelter
channelTypeUID: http:number
label: Pelletbehaelter
description: ""
configuration:
stateExtension: /40/10021/0/0/12011
stateTransformation: XPATH:/*[name()='eta']
- id: Aschebox
channelTypeUID: http:number
label: Aschebox
description: ""
configuration:
stateExtension: /40/10021/0/0/12013
stateTransformation: XPATH:/*[name()='eta']
- id: Speicher_mitte
channelTypeUID: http:number
label: Speicher_mitte
description: ""
configuration:
stateExtension: /120/10601/0/0/13934
stateTransformation: XPATH:/*[name()='eta']
- id: Gesamtverbrauch
channelTypeUID: http:number
label: Gesamtverbrauch
description: ""
configuration:
stateExtension: /40/10021/0/0/12016
stateTransformation: XPATH:/*[name()='eta']
- id: Saug
channelTypeUID: http:number
label: Saug
description: ""
configuration:
stateExtension: /40/10021/0/11042/2001
stateTransformation: XPATH:/*[name()='eta']
Code: Alles auswählen
UID: mqtt:topic:dac17a5dac:13d584210e
label: vibra
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:dac17a5dac
location: vibra
channels:
- id: vibra
channelTypeUID: mqtt:number
label: vibra
description: ""
configuration:
commandTopic: vibra
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: Heizung_Saug
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
itemName: vibra_vibra
type: core.ItemStateUpdateAction
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab3 MQTT publishen
Ja, das ist kein Wunder, Du nutzt ItemStateUpdateAction, es muss aber ItemCommandAction verwendet werden. Du willst einen Befehl in Richtung mqtt senden, nicht den Status des Items ändern.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 4
- Registriert: 15. Nov 2022 17:05
Re: openhab3 MQTT publishen
Ich habe die Rule jetzt so geändert:
in der Hoffnung, dass der Wert von saug zu vibra gesendet wird. Tut es aber nicht und bei mosquitto_sub im Topic "vibra" kommt auch nichts an.
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: Heizung_Saug
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
itemName: vibra_vibra
type: core.ItemCommandAction
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab3 MQTT publishen
Ähm... das ist mir gestern gar nicht mehr aufgefallen, aber Du gibst ja gar keinen konkreten Befehl an.
Und das kannst Du auch gar nicht, weil Du ja den Wert übertragen willst.
Gehe ich recht in der Annahme, dass der Wert von Saug exakt so nach vibra übertragen werden soll, also ohne weitere Berechnungen?
Dann brauchst Du gar keine Rule. Stattdessen verlinkst Du beide Channel mit dem selben Item (z.B. Heizung_Saug) und gibst dabei bei dem Channel vibra als Profile "follow" an (Das Profile wird im Link gesetzt).
Und das kannst Du auch gar nicht, weil Du ja den Wert übertragen willst.
Gehe ich recht in der Annahme, dass der Wert von Saug exakt so nach vibra übertragen werden soll, also ohne weitere Berechnungen?
Dann brauchst Du gar keine Rule. Stattdessen verlinkst Du beide Channel mit dem selben Item (z.B. Heizung_Saug) und gibst dabei bei dem Channel vibra als Profile "follow" an (Das Profile wird im Link gesetzt).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 4
- Registriert: 15. Nov 2022 17:05
Re: openhab3 MQTT publishen
Yeah!
Ich habe die Rule gelöscht, das Item "vibra" gelöscht und neu angelegt mit dem Link auf "Heizung_saug" und dem Profil "Folgen". Es hat sofort funktioniert. Nun kann ich dem Rüttler am Lager sagen (über einen Arduino), dass gerade gesaugt wird und er aktiv werden soll.
Du hast mir übrigens im KNX-Forum geholfen die Parameter aus meiner Eta-Heizung herauszukitzeln.
Ich war sehr zuversichtlich, dass du auch hier helfen kannst.
Vielen, vielen Dank für deine Hilfe.
Ich habe die Rule gelöscht, das Item "vibra" gelöscht und neu angelegt mit dem Link auf "Heizung_saug" und dem Profil "Folgen". Es hat sofort funktioniert. Nun kann ich dem Rüttler am Lager sagen (über einen Arduino), dass gerade gesaugt wird und er aktiv werden soll.
Du hast mir übrigens im KNX-Forum geholfen die Parameter aus meiner Eta-Heizung herauszukitzeln.
Ich war sehr zuversichtlich, dass du auch hier helfen kannst.
Vielen, vielen Dank für deine Hilfe.
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab3 MQTT publishen
Immer gerne 

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet