Integration of Homematic Thermostat HmIP-BWTH into openHAB

I wanted to share how I managed to integrate my Homematic IP Wall Thermostats HmIP-BWTH into openHAB. Since I’m pretty new to openHAB I’m sharing it in a bit more detail, hoping it to be helpful to others who’re not that experienced.

Problem setting:
Since the thermostats offer all sorts of functionality…

… and I found eQ-3’s 9.742-page technical documentation not containing the information that helped me to pick the right channels among the overall 44 channels, here’s what I did. In case there are better solutions out there, please let me know.

Disclaimer 1: I found a pretty nice solution here for the HM-CC-RT-DN thermostat, but either eQ-3’s different thermostats all work according to a completely different logic, or the logic has changed since the blog post from 2017 with a recent firmware update: Already at the beginning of the description, some variables have different names or are just not there at the HmIP-BWTH. In addition, some of the things which the author only achieved via more complex rules did work pretty well for me just with bare channels. This also made me question my solution, but so far everything works smoothly.

Disclaimer 2: The only things I wanted to have inside openHAB are a) switch from manual to automatic mode, b) in manual mode see and change the set point temperature, c) in automatic mode see and change the set point temperature temporarily, d) see and log the status of the valve, and e) see and log current temperature, and current humidity. There are lots of other things which the thermostat could do (Boost mode etc), but I’d leave that to the native CCU2-interface.

These are the channels which I identified as crucial to do the job:

  • 1#HUMIDITY: Easy, current humidity
  • 1#ACTUAL_TEMPERATURE: Also easy, current temperature
  • 9#SWITCH: I’m still not sure what the other (identically-named) channels represent, but this one appears to represent the valve-status (0 = closed, 1 = open)
  • 1#SET_POINT_TEMPERATURE: That’s what I found to be the temperature with which I can control the manual mode or, alternatively, override the automatic mode until the temperature is re-set again (typically at midnight depending on the programming). Adding a listWidget item (via “add metadata”: “Stepper List Item”) with min=5, Max=30 and step = 0.5 makes it look nicely.
  • 1#CONTROL_MODE: From what I can see, 1 represents “Manual mode” and 3 represents “Automatic mode”. Thus I added the state description with “1=Manual” and “3=Automatic” under “options” and the “oh-label-item” as a a listWidget item, to allow me to change between the two modes. As said, I’m ignoring Boost- and Vacation mode, so probably 0 or 2 also have a meaning.


Can this be done better? Most likely yes. But given that I did not find much on the net I’m quite happy I got this to work.

Feedback & comments welcome.