Platform information: Openhab 3.3 Stable, Raspberry Pi 4, ZigBee2MQTT 1.97.0 with 94 devices
due to the energy saving initiative i ordered 8 MOES BRT-100 Thermostats and i trying to get them into Openhab via Zigbee2MQTT to get control of them.
My Things Config looks like this:
Thing topic Bad_Thermostat “Bad Thermostat” {
//MOES BRT 100 TRV
Channels:
Thing topic Bad_Thermostat "Bad Thermostat" {
//MOES BRT 100 TRV
Channels:
Type switch : Bad_Thermostat_child_lock "Bad Thermostat Child Lock" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.child_lock", formatBeforePublish = "{\"child_lock\" : \"%s\"}", off = "UNLOCK", on = "LOCK"]
Type number : Bad_Thermostat_current_heating_setpoint "Bad Thermostat Zieltemperatur" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.current_heating_setpoint", formatBeforePublish = "{\"current_heating_setpoint\" : \"%s\"}", min = 14, max = 26, unit = "°C", step = 0.5]
Type switch : Bad_Thermostat_eco_mode "Bad Thermostat Eco Mode" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.eco_mode", formatBeforePublish = "{\"eco_mode\" : \"%s\"}"]
Type number : Bad_Thermostat_eco_temperature "Bad Thermostat Eco Temperatur" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.eco_temperature", formatBeforePublish = "{\"eco_temperature\" : \"%s\"}", min = 12, max =20, unit = "°C"]
Type number : Bad_Thermostat_local_temperature "Bad Thermostat Aktuelle Temperatur" [stateTopic = "zigbee2mqtt/Bad_Thermostat", transformationPattern = "JSONPATH:$.local_temperature", unit = "°C"]
Type number : Bad_Thermostat_max_temperature "Bad Thermostat Max Temperatur" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.max_temperature", formatBeforePublish = "{\"max_temperature\" : \"%s\"}", min = 15, max = 35, unit = "°C", step = 1]
Type string : Bad_Thermostat_preset "Bad Thermostat Modus" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.preset", formatBeforePublish = "{\"preset\" : \"%s\"}", allowedStates = "manual, programming, temporary_manual, holiday"]
Type string : Bad_Thermostat_programming_mode "Bad Thermostat Program" [stateTopic = "zigbee2mqtt/Bad_Thermostat", commandTopic = "zigbee2mqtt/Bad_Thermostat/set", transformationPattern = "JSONPATH:$.programming_mode", formatBeforePublish = "{\"programming_mode\" : \"%s\"}"]
Type contact : Bad_Thermostat_valve_state "Bad Thermostat Ventilstatus" [stateTopic = "zigbee2mqtt/Bad_Thermostat", transformationPattern = "JSONPATH:$.valve_state", off="CLOSED", on="OPEN"]
Type number : Bad_Thermostat_battery "Bad Thermostat Battery" [stateTopic = "zigbee2mqtt/Bad_Thermostat", transformationPattern = "JSONPATH:$.battery"]
}
and this is how my ITEMS file looks like:
Switch Bad_Thermostat_ChildLock "Bad Thermostat Child Lock" <lock> (gBadTRV) ["Switch", "Opening"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_child_lock"}
Number Bad_Thermostat_CurrentHeatingSetpoint "Bad Thermostat Zieltemperatur" <temperature> (gBadTRV) ["Setpoint", "Temperature"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_current_heating_setpoint", listWidget="oh-stepper-item"[min = 16, max = 34, step = 0.5], widget="oh-stepper-card" [min = 16, max = 34, step = 0.5]}
Switch Bad_Thermostat_EcoMode "Bad Thermostat Eco Mode" <climate> (gBadTRV) ["Switch", "Opening"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_eco_mode"}
Number Bad_Thermostat_EcoTemperature "Bad Thermostat Eco Temperatur" <temperature> (gBadTRV) ["Measurement", "Temperature"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_eco_temperature", listWidget="oh-stepper-item"[min = 12, max = 20, step = 1], widget="oh-stepper-card" [min = 12, max = 20, step = 1]}
Number Bad_Thermostat_LocalTemperature "Bad Thermostat Aktuelle Temperatur" <temperature> (gBadTRV) ["Measurement", "Temperature"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_local_temperature"}
Number Bad_Thermostat_MaxTemperature "Bad Thermostat Max Temperatur" <temperature> (gBadTRV) ["Measurement", "Temperature"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_max_temperature", listWidget="oh-stepper-item"[min = 16, max = 34, step = 1], widget="oh-stepper-card" [min = 16, max = 34, step = 1}
String Bad_Thermostat_Preset "Bad Thermostat Modus" <climate> (gBadTRV) ["SetPoint", "Current"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_preset"}
String Bad_Thermostat_ProgrammingMode "Bad Thermostat Program" <climate> (gBadTRV) ["Setpoint", "Power"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_programming_mode"}
Contact Bad_Thermostat_ValveState "Bad Thermostat Ventilstatus" <climate> (gBadTRV) ["Measurement", "Current"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_valve_state"}
Number Bad_Thermostat_Battery "Bad Thermostat Battery [%.0f %%]" <battery> (gBadTRV, G_AlleBatterien, G_AllBatteryTest2) ["Measurement", "Energy"] {channel="mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_battery"}
I have two issues now which i can´t get solved.
- if i push in the preset channel e.g. “programming” Openhab LOG immediately shows this warning:
Command ‘programming’ from channel ‘mqtt:topic:HA_MQTTBroker:Bad_Thermostat:Bad_Thermostat_preset’ not supported by type ‘TextValue’: Value programming not within range
What is wrong with my config?
- like in several Widgets and Demos (demo.openhab.org) there is a way to decrease/increase the temperature by 0.5 C steps. If i go directly to the device i am able with “+” and “-” to decrease and increase by 0.5 C. When i use above config in Openhab (UI and SiteMap) and decrease by 0.5C it quickly shows .5 but jumps after 1s back on the initial value and when i increase by 0.5 it jumps to the next higher full value. Means decrease 21C by 0.5C it quickly shows 20.5C and jumps back to 21C and increase by 0.5 quickly shows 21.5C and jumps to 22C.
Is anybode able to help me out on this?