The present article is a follow up to the article describing how I integrated a Buderus heat pump into a KNX smart home using the Buderus KM200 module. The primary goal (reading out the states of the device in order to understand when device is doing what and why) was achieved in the original post. However, in the meantime I extended the integration to be able to switch between heating/cooling mode in order to switch the season (winter/summer) of the heating system globally.
The KM 200 and it's API
From all the paths we were able to see in the last post, the following two are interesting to switch the season (or operation mode) of the heat pump's circuits:
{Id:/heatingCircuits/hc1/currentSuWiMode Value:forced Writeable:false}
{Id:/heatingCircuits/hc1/suWiSwitchMode Value:forced Writeable:true}
{Id:/heatingCircuits/hc2/currentSuWiMode Value:forced Writeable:false}
{Id:/heatingCircuits/hc2/suWiSwitchMode Value:forced Writeable:true}
The possible values are depending on the heating system that is configured and the modes it supports (heating/cooling, heating only).
For me the possible values it offers are:
off ... well - pretty self explanatory
automatic ... automatically switch following the temperature (with integrated back off time to suppresso switching at high frequency)
forced ... heating only
cooling ... cooling only
I am interesetd in forced, cooling and off.
Integrating the season switch in Node-RED
Following the approach from the last article I integrated this into the Node-RED flow.
timestamp issues a timestamp every 30s to trigger the API read at a certain interval.
setup Request (first) defines the combinations of the API paths, the KNX group address and the KNX datapoint type (DTP). This generates one request for every path.
limit 1 msg/s slows the request chain down so that at max 5 requests/s go towards the KM200.
Request KM200 (first) issues an HTTP GET request towards the API
statusCode2XX checks that the returned HTTP status code is 2XX
decode payload decodes the payload in order to get the real value
KNX Device sends the value to the specified KNX group address through a connected KNX IP interface
heatset season XXX allows me to set the season with one button click from Node-RED
setup Request (second) prepares the put request to set the season for all heating circuits at the same time
Request KM200 (second) issues an HTTP PUT request towards the API
The complete flow can be downloaded here: node-red-flow.json.
In order for the flow to work search for <KM200-IP-ADDRESS> and <ENCRYPTION-KEY> and replace them accordingly.
The flow has the following javascript dependencies:
- mcrypt
- buffertrim
and the following node-red module dependencies:
- node-red-contrib-knx
- node-red-contrib-knx-ultimate








