Set offset in Homematic thermostat

Hi all,

The Homemeatic thermostats have the option to set a temperature offset.

Now I want to do something like this:

room temperature (at thermostat) - real room temperature (from another sensor) = offset

Pretty easy, however I don’t know if and how I can set the offset from HA.

Can anybody help here?

Thanks :slight_smile:

The offset is a device setting, not a value. So you have to use the homematic.put_paramset service.

1 Like

Cool, thank you. Do you know where I can find the parameter names? Otherwise some Google research will be my next step I think :slight_smile:

You can use this Python 3 script. Of course you have to adjust the IP, port and device address.

from xmlrpc.client import ServerProxy
ccu = "http://127.0.0.1:2001" # Change to real IP and port (2001 for regular, 2010 for HmIP)
address = "VCU0000240" # DEVICE_ID (f. ex. meq1234657, aabbccdd...)
p = ServerProxy(ccu)
dd = p.getDeviceDescription(address)
print("Master paramset")
print(p.getParamsetDescription(address, 'MASTER'))
print("Channel paramsets")
for channel in dd.get('CHILDREN'):
    try:
        print("Channel MASTER: %i" % channel)
        print(p.getParamsetDescription(channel, 'MASTER'))
        print("Channel VALUES: %i" % channel)
        print(p.getParamsetDescription(channel, 'VALUES'))
    except Exception as err:
        print(err)
2 Likes

Thanks, will findin there what I need :slight_smile:

Hi Both,

I’m new in HA and Homematic.
I’m facing he same issue.

@HorizonKane have you found a solution for this?

I’ve managed to manually set the desired temperature by using the HEATING_CONTROL.SETPOINT however I can’t find how to do it with the offset.

after reading the info from device, for temperature offset I get this:

                           'TEMPERATURE_OFFSET': {'DEFAULT': 7,
                                                  'FLAGS': 1,
                                                  'ID': 'TEMPERATURE_OFFSET',
                                                  'MAX': 14,
                                                  'MIN': 0,
                                                  'OPERATIONS': 3,
                                                  'TAB_ORDER': 20,
                                                  'TYPE': 'ENUM',
                                                  'UNIT': '',
                                                  'VALUE_LIST': ['-3.5K',
                                                                 '-3.0K',
                                                                 '-2.5K',
                                                                 '-2.0K',
                                                                 '-1.5K',
                                                                 '-1.0K',
                                                                 '-0.5K',
                                                                 '0.0K',
                                                                 '0.5K',
                                                                 '1.0K',
                                                                 '1.5K',
                                                                 '2.0K',
                                                                 '2.5K',
                                                                 '3.0K',
                                                                 '3.5K']},

I’ve tried to change the dedault value, but no sucess so far.

Hi,

I did not investigate further, too busy :frowning:

if it helps, i have it working like this:

service: homematicip_local.put_paramset
data:
  device_id: <DeviceID>
  channel: 1
  paramset_key: MASTER
  paramset:
    TEMPERATURE_OFFSET: "{{ states(\"input_number.climate_offset_badezimmer\") | float}}"

the only issue i’m facing is, that the thermostat’s LED flashes multiple times on receiving a new offset value. I don’t know whether you can adjust this behavior.
I calculate the offset variable within another automation.