Seite 1 von 1

Bosch Thermostat II via MQTT

Verfasst: 14. Sep 2023 12:58
von featboi
Moin zusammen,

ich bin aktuell relativ neu in die Materie Openhab eingetaucht.
Derzeit habe ich bereits einige Shellys und Philips HUE Lampen via "mosquitto2mqtt" verbunden.

Nun habe ich mir 6 Bosch Thoermosatet gekauft (BTH-RA) und bereits eingebunden.
Die Solltemperatur kann ich bereits steuern.

Probleme habe ich bei der Anzeige der Ist-Temperatur und der Batterie. Hier werden mir keine Werte angezeigt.
Kann mir hierbei jemand helfen?

Thing

Code: Alles auswählen

Thing mqtt:topic:******:Thermostat_Esszimmer "Thermostat_Esszimmer" (mqtt:broker:*******)
{
	Channels:
    		Type number : temperature 	"Raum Temperatur"   		[ stateTopic="zigbee2mqtt/Thermostat_Esszimmer/local_temperature" ]
    		Type number : setpoint    	"Gewünschte Temperatur" 	[ commandTopic="zigbee2mqtt/Thermostat_Esszimmer/setpoint-temperature", formatBeforePublish="{ \"occupied_heating_setpoint\":\"%s\"}", transformationPattern="JSONPATH:$.occupied_heating_setpoint" ]
		Type number : battery     	"Batterie"     			[ stateTopic="zigbee2mqtt/Thermostat_Esszimmer/battery" ]
}
Item

Code: Alles auswählen

Group Thermostat_Esszimmer    "Thermostate_Esszimmer"                               (Esszimmer)                             ["HVAC"]
Number:Temperature   	temperature    "Esszimmer_Temperatur [%.1f °C]"        	<temperature>   (Temperature, Thermostat_Esszimmer)     ["Measurement", "Temperature"] { channel="mqtt:topic:******:Thermostat_Esszimmer:temperature" [scale="Celsius"] }
Number               	setpoint       "Esszimmer_Setpoint [%.1f °C]"		<temperature>   (Thermostat_Esszimmer)                  ["Measurement", "TargetTemperature"] { channel="mqtt:topic:******:Thermostat_Esszimmer:setpoint" [scale="Celsius"] }
Number:Dimensionless 	batterie       "Esszimmer_Batterie [%d %%]"        	<battery>       (Battery, Thermostat_Esszimmer)         ["Battery"] { channel="mqtt:topic:******:Thermostat_Esszimmer:battery" }
Danke euch =)

Viele Grüße
FeatBoi

Re: Bosch Thermostat II via MQTT

Verfasst: 14. Sep 2023 21:38
von udo1toni
Herzlich willkommen im openHAB Forum!
featboi hat geschrieben: 14. Sep 2023 12:58 Derzeit habe ich bereits einige Shellys und Philips HUE Lampen via "mosquitto2mqtt" verbunden.
mosquitto ist der Broker, Du meinst mit Sicherheit zigbee2mqtt ;)

Bezüglich des Thermostats:
MQTT nutzt gewöhnlich gerichtete Kommunikation, das heißt, ein Topic wird nur zum Senden verwendet, ein anderes Topic wird nur zum Empfang verwendet.
Nach der Doku gibt es z.B. ein topic .../setpoint-temperature/set um die Temperatur zu setzen. Das Topic ohne /set liefert die Temperatur (in welchem Format auch immer). Der Soll-Channel sähe also so aus:

Code: Alles auswählen

Type number : setpoint    "Gewünschte Temperatur" [ stateTopic="zigbee2mqtt/Thermostat_Esszimmer/setpoint-temperature", 
                                                    commandTopic="zigbee2mqtt/Thermostat_Esszimmer/setpoint-temperature/set", 
                                                    formatBeforePublish="{ \"occupied_heating_setpoint\":\"%s\"}", 
                                                    transformationPattern="JSONPATH:$.occupied_heating_setpoint" ]
Wobei nicht mal sicher ist, ob das Topic überhaupt JSON liefert, das solltest Du am besten über einen MQTT Sniffer klären (z.B. MQTT Explorer)
Der MQTT Explorer ist auch hilfreich, um das Format der anderen Channel zu klären. Die von mir genutzten Zigbee Geräte arbeiten alle ausschlioeßlich mit JSON Payloads, das mag aber individuell unterschiedlich sein.

Ich möchte aber empfehlen, dass Du die Number Channel jeweils mit einer Unit versiehst (ich gehe von openHAB4 aus), z.B.

Code: Alles auswählen

Type number : temperature "Raum Temperatur" [ stateTopic="zigbee2mqtt/Thermostat_Esszimmer/local_temperature", unis="°C" ]
Einen solchen QuantityType Channel kannst Du dann direkt mit einem passenden Item verknüpfen:

Code: Alles auswählen

Number:Temperature temperature "Esszimmer_Temperatur" <temperature> (Temperature, Thermostat_Esszimmer) ["Measurement", "Temperature"] { channel="mqtt:topic:******:Thermostat_Esszimmer:temperature", unit="°C", stateDescription""[pattern="%.1f °C"] }
Natürlich unter der Voraussetzung, dass die Daten schon korrekt im Channel ankommen.
Wo kommt denn das scale="Celsius" her? Mir ist kein solcher Parameter bekannt...

Re: Bosch Thermostat II via MQTT

Verfasst: 23. Feb 2024 09:20
von featboi
Moin,

bitte entschuldige meine späte Aantwort. Die Probleme sind behoben. Danke =)