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:

window_open_living_room:
alias: Fenster Wohnzimmer geöffnet
sequence:
# Wohnzimmer Thermostat
- service: homematic.set_device_value
data:
address: 000315699XXXX1
channel: 1
param: WINDOW_STATE
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
param: WINDOW_STATE
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

Regards

Andrew

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: