Homematic Service set_device_value Failed

Hello, I added my Homematic Thermostat (HM-CC-RT-DN) which is connected to a CCU (Raspberrymatic) to Home Assistant (HassIO 0.98.5) according to the documetation. The climate component shows up fine and seems to work.

I tried to get the homematic.set_device_value service to work. Changing the paramter SET_TEMPERATURE works. I found an example online where someone tries to change the window open state manually via HA with homematic.set_device_value:

"address": "PEQ1315598",
"channel": 4,
"param": "WINDOW_STATE",
"interface": "rf",
"value": true

This results in an error:

ERROR (SyncWorker_12) [pyhomematic.devicetypes.generic] HMGeneric.setValue: WINDOW_STATE on PEQ1315598:4 Exception: <Fault -5: 'Unknown parameter'>

It seems like WINDOW_STATE is not a supported parameter. So my question is where can I find the supported paramters for the thermostat? Especially a parameter for changing the temperature offset would be great.

Thanks in advance for the help!

1 Like

So my question is where can I find the supported paramters for the thermostat?

I found all parameters for the set_device_value function in the documentation:
[https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf] (German)

Especially a parameter for changing the temperature offset would be great.

I got that working by using the put_paramset service instead of set_device value with TEMPERATURE_OFFSET. It seems to be part of the XML-RPC-Interface described in the documentation:
[https://homematic.simdorn.net/wp-content/uploads/2016/03/HM_XmlRpc_V1_502__2_.pdf] (German)

The issue remaining is that they don’t mention the possible paramters in that document for put_paramset. (I got TEMPERATURE_OFFSET just by trying.)
I would appreciate if anyone could point me to a source of that information.
Thank you!

You can try to use my datapoints.py script to get those parameters. :+1:

Thank you! Your script worked perfectly, I got many parameters.

I just don’t know when to use set_device_value and put_paramset but try and error works pretty easily here.
Thanks again for your great work!

Hey, I have the same Device.

I don’t know how to run the script “datapoints.py”

Could you let me know how you were able to set the Window mode?

Would help me out a lot.Thanks

The script would return a list of parameters. For the HM-CC-RT-DN you can find them here: https://github.com/danielperna84/pydevccu/blob/f041a5adff076f2459e610b68aa8031ef80a0b4a/pydevccu/paramset_descriptions/HM-CC-RT-DN.json

You’ll have to figure out which parameter does what you want it to do.

wow thanks so much for the quick reply.
I looked at the .json file but I can’t find a parameter to change the actual window (Open/Closed) state.
How is that even possible :smiley:
according to the .json I can change the Boost mode after a window is closed, I can change the temperature while a window is open but I can’t find the state for the actual window.

Am I missing something? Or is the HM-CC-RT-DN really not capable of changing the window state?
Thanks in advance for any help

You can’t do that. The thermostat themselves don’t have a window state. They only gain that state if they are paired with shutter-contacts. And even then it’s not the thermostat that then has the state, it’s the virtual thermostat that gets created when paring the devices.

If you have a CCU, you have to go to “Einstellungen” -> “Gruppen”. From there you can create the groups. Once that is done, the thermostats will automatically close the valve according to the configuration.

Thanks for the quick reply again =)

that’s unfortunate. I wanted to use some cheaper sensors and set the window open state manually via Home Assistant.
I got the idea from another blogpost where someone seemed to use this:

alias: Fenster Wohnzimmer geöffnet
# Wohnzimmer Thermostat
- service: homematic.set_device_value
address: 000315699XXXX1
channel: 1
value: 1

I thought I could get that to work too. would certainly safe some money

1 Like

Well, if someone else did that (with HomeMatic devices), then there might be a possibility to do that. But to my knowledge this only works with direct pairing. I could be wrong though. :man_shrugging:

This is something I have also tried to achieve, as I already have sensors on all my windows and the HomeMatic ones are expensive when you have ~30 windows!
From what I read, the channel should be writeable but my efforts failed.
I tried posting the question on the home-matic forums but no one had a solution.

apparently it depends on the device you have.
for example the HM-CC-RT-DN is the one I use and according to the EQ-3 PDF it does not have a editable window_state

on the other hand a special edition the HM-CC-RT-DN-BOM has exactly that. and according to eq-3 it is editable.

Apparently some Homematic IP devices have that state aswell…
I know that doesn’t help anyone but maybe it safes someone a bit of time

Fantastic, this works:

address: 000E9709930xxx
channel: 1
value: 1

Firstly, I should explain that I have HM-IP TRVs & thermostats, but I don’t think it works with “classic” HomeMatic devices.
My mistake was that I was setting the channel to 4 as that was the channel listed as HEATING_SHUTTER_CONTACT_RECEIVER in the device details.

As I mentioned, all my windows have sensors. These are hard wired into a Cytech Comfort alarm system, so they are available as MQTT topics or via it’s Node RED interface. So now I can create automations to adjust the heating in zones where the windows is open.

Thanks @lars-dev for pointing me to the blog post that got it working for me!

I forgot to post a link to Lukas’s excellent blog post about this:

Heating control with Homematic, Home Assistant, Node-RED and Nextcloud

1 Like

hi there

I recently bought a Homematic thermostat HmIP-eTRV-2 and a CCU3 to try some things with them. I run Home Assistant OS 5.13 on a Raspi Pi 4 8GB. I added the CCU 3 via config.yaml and it is being recognized as an entity, as well as the thermostat (climate)

I didnt want to open a new thread as I am looking to get the temperature offset from the thermostat into Home Assistant. I read the whole thread and the solutions is the datapoints.py. However I dont know how to use the file and cant figure out what it exactly does. Do I have all datapoints afterwards in Home Assistant and can adjust the offset?

I would be glad to get some help on how to use the file and finally adjust the offset within Home Assistant.

Many thanks



You can’t read the offset. That’s a write-only setting. So you can only change it using the homematic.put_paramset service. Here you’ll find an example where the service is used to set the week program of a thermostat.

No it’s not. You only need that script to figure out the speceific name of the parameter and where it’s located. But you don’t need to do that. The parameter is called TEMPERATURE_OFFSET and can be found in the MASTER paramset on channel 1 of your device. That, plus the address of the device is what you have to use with the put_paramset service to set a new offset.

1 Like

many thanks for the explanation Daniel, that worked great :wink: