Danfoss LC13 (aka Popp/Devolo) temperature calibration (set permanent offset)?

Hi there, I recently migrated my home automation from ZWay to Home Assistant, but could not figure how to set temperature offset for the Danfoss LC13 (rsp it’s OEM versions from Popp and Devolo).

Bit of explanation: As the temperature sensor is built into the device, it gets heated by the radiator and therefore usually is higher than the actual room temperature. To compensate differences between the actual room temperature and the temperature sensor in the TRV, you can set a positive or negative offset value (in 0.1 degree steps) via Z-Wave Command Class COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE . This is the only way to have a timely and accurate regulation without draining the battery, as the device is mostly in sleep mode and only connects to the Z-Wave hub in fairly long intervals. Using an external temp sensor is therefore out of question, and I would also like to avoid having to send set-point temperatures including the offset, as the offset differs for every radiator - I currently have 16 of those installed across the house. In some rooms the offset is as much as 4°C (i.e. set to 20°, room has 16°).

After hours of search I could not find out how to do this, or if it is even implemented (zwave-js issue #6 indicates it might not even be implemented?

Does Home Assistant really not support calibrating thermostats, humidity sensors and other devices that might be “off” their actual value due to tolerances or structural conditions?

Thanks for any hints or feedback - much appreciated!

Best, Stephan

The Climate Control Schedule CC is implemented both with API support and Value IDs (HA entities are based on the latter) according to the docs. Not sure if it’s missing anything.

But HA does not support this CC itself natively via entities.

You can possibly control it using Z-Wave integration actions zwave_js.set_value or zwave_js.invoke_cc_api

The former is usually easier, but the latter has more flexibility. If you post the Device Diagnostic file we can see if the values are accessible from HA.

Anything more complicated than what HA provides via those services would require using Z-Wave JS UI and its driver function feature (allows writing Javascript).

Brilliant - thanks for the swift response. Think I only need to call the setOverride method with the two parameters (type = 2 for permanent and the offset value). I guess that will require the second approach with invoke_cc_api, right?

It‘s not device specific btw, this is plain vanilla Z-Wave (even though deprecated). Cf. z-way command class reference

I‘ll see if I can figure how to implement this myself, still on a HA learning curve :slight_smile:

Best, Stephan

The refresh value might be easier, it has a simpler interface. Which is why I was asking for the Device Diagnostic as that shows which values are available, not insinuating it’s a proprietary device feature.

NP - here one from a Popp and one from a Devolo. I was intentionally buying the OEM versions, as they both allow to read the actual temperature (the original Danfoss LC13 does not support that for some obscure reasons, but HW is identical). As file upload is disabled here, I hope it’s OK to place the JSON files straight into this post.

Popp:

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2025.12.5",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.13.9",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.12.51-haos",
    "container_arch": "amd64",
    "supervisor": "2025.12.3",
    "host_os": "Home Assistant OS 16.3",
    "docker_version": "28.3.3",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "zwave_js",
    "name": "Z-Wave",
    "after_dependencies": [
      "hassio"
    ],
    "codeowners": [
      "home-assistant/z-wave"
    ],
    "config_flow": true,
    "dependencies": [
      "http",
      "repairs",
      "usb",
      "websocket_api"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zwave_js",
    "integration_type": "hub",
    "iot_class": "local_push",
    "loggers": [
      "zwave_js_server"
    ],
    "requirements": [
      "pyserial==3.5",
      "zwave-js-server-python==0.67.1"
    ],
    "usb": [...],
    "zeroconf": [
      "_zwave-js-server._tcp.local."
    ],
    "is_built_in": true,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.0016927930000747438
    },
    "01K7MGY8TNZAH1J8VCY5RA5JVN": {
      "wait_import_platforms": -0.41013567299978604,
      "wait_base_component": -0.00034391600001981715,
      "config_entry_setup": 0.7809293149998666
    }
  },
  "data": {
    "versionInfo": {
      "driverVersion": "15.15.0",
      "serverVersion": "3.4.0",
      "minSchemaVersion": 0,
      "maxSchemaVersion": 44
    },
    "entities": [
      {
        "domain": "climate",
        "entity_id": "climate.popp_wireless_thermostatic_valve_trv_8",
        "original_name": "",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 1,
        "unit_of_measurement": null,
        "value_id": "14-67-0-setpoint-1",
        "primary_value": {
          "command_class": 67,
          "command_class_name": "Thermostat Setpoint",
          "endpoint": 0,
          "property": "setpoint",
          "property_name": "setpoint",
          "property_key": 1,
          "property_key_name": "Heating"
        }
      },
      {
        "domain": "select",
        "entity_id": "select.popp_wireless_thermostatic_valve_trv_local_protection_state_8",
        "original_name": "Local protection state",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": "config",
        "supported_features": 0,
        "unit_of_measurement": null,
        "value_id": "14-117-0-local",
        "primary_value": {
          "command_class": 117,
          "command_class_name": "Protection",
          "endpoint": 0,
          "property": "local",
          "property_name": "local",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "select",
        "entity_id": "select.popp_wireless_thermostatic_valve_trv_rf_protection_state_8",
        "original_name": "RF protection state",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": "config",
        "supported_features": 0,
        "unit_of_measurement": null,
        "value_id": "14-117-0-rf",
        "primary_value": {
          "command_class": 117,
          "command_class_name": "Protection",
          "endpoint": 0,
          "property": "rf",
          "property_name": "rf",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "sensor",
        "entity_id": "sensor.popp_wireless_thermostatic_valve_trv_air_temperature_8",
        "original_name": "Air temperature",
        "original_device_class": "temperature",
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 0,
        "unit_of_measurement": "\u00b0C",
        "value_id": "14-49-0-Air temperature",
        "primary_value": {
          "command_class": 49,
          "command_class_name": "Multilevel Sensor",
          "endpoint": 0,
          "property": "Air temperature",
          "property_name": "Air temperature",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "sensor",
        "entity_id": "sensor.popp_wireless_thermostatic_valve_trv_battery_level_8",
        "original_name": "Battery level",
        "original_device_class": "battery",
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": "diagnostic",
        "supported_features": 0,
        "unit_of_measurement": "%",
        "value_id": "14-128-0-level",
        "primary_value": {
          "command_class": 128,
          "command_class_name": "Battery",
          "endpoint": 0,
          "property": "level",
          "property_name": "level",
          "property_key": null,
          "property_key_name": null
        }
      }
    ],
    "state": {
      "nodeId": 14,
      "index": 0,
      "status": 1,
      "ready": true,
      "isListening": false,
      "isRouting": true,
      "isSecure": false,
      "manufacturerId": 2,
      "productId": 40976,
      "productType": 277,
      "firmwareVersion": "1.0",
      "deviceConfig": {
        "filename": "/data/db/devices/0x0002/010101.json",
        "isEmbedded": true,
        "manufacturer": "Danfoss",
        "manufacturerId": 2,
        "label": "010101",
        "description": "Popp Wireless Thermostatic Valve TRV",
        "devices": [
          {
            "productType": 277,
            "productId": 40976
          }
        ],
        "firmwareVersion": {
          "min": "0.0",
          "max": "255.255"
        },
        "preferred": false,
        "associations": {},
        "compat": {
          "queryOnWakeup": [
            [
              "Battery",
              "get"
            ],
            [
              "Thermostat Setpoint",
              "get",
              1
            ]
          ]
        },
        "metadata": {
          "inclusion": "Press and release the menu button (with a dot).",
          "exclusion": "Press and release the menu button (with a dot).",
          "reset": "Remove the battery cover and take out one battery. While reinserting the battery, press and hold the menu button (with a dot) for about 5 seconds."
        }
      },
      "label": "010101",
      "interviewAttempts": 0,
      "isFrequentListening": false,
      "maxDataRate": 40000,
      "supportedDataRates": [
        40000
      ],
      "protocolVersion": 3,
      "supportsBeaming": true,
      "supportsSecurity": false,
      "nodeType": 1,
      "deviceClass": {
        "basic": {
          "key": 4,
          "label": "Routing End Node"
        },
        "generic": {
          "key": 8,
          "label": "Thermostat"
        },
        "specific": {
          "key": 4,
          "label": "Setpoint Thermostat"
        }
      },
      "interviewStage": "Complete",
      "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0002:0x0115:0xa010:1.0",
      "statistics": {
        "commandsTX": 4510,
        "commandsRX": 10486,
        "commandsDroppedRX": 0,
        "commandsDroppedTX": 0,
        "timeoutResponse": 0,
        "lastSeen": "2026-01-06T23:22:11.783Z",
        "rtt": 21.6,
        "rssi": -87,
        "lwr": {
          "protocolDataRate": 2,
          "repeaters": [],
          "rssi": -88,
          "repeaterRSSI": []
        }
      },
      "highestSecurityClass": -1,
      "isControllerNode": false,
      "keepAwake": false,
      "lastSeen": "2026-01-01T19:54:29.317Z",
      "protocol": 0,
      "values": {
        "14-49-0-Air temperature": {
          "endpoint": 0,
          "commandClass": 49,
          "commandClassName": "Multilevel Sensor",
          "property": "Air temperature",
          "propertyName": "Air temperature",
          "ccVersion": 6,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Air temperature",
            "ccSpecific": {
              "sensorType": 1,
              "scale": 0
            },
            "unit": "\u00b0C",
            "stateful": true,
            "secret": false
          },
          "value": 17.86
        },
        "14-67-0-setpoint-1": {
          "endpoint": 0,
          "commandClass": 67,
          "commandClassName": "Thermostat Setpoint",
          "property": "setpoint",
          "propertyKey": 1,
          "propertyName": "setpoint",
          "propertyKeyName": "Heating",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Setpoint (Heating)",
            "ccSpecific": {
              "setpointType": 1
            },
            "unit": "\u00b0C",
            "stateful": true,
            "secret": false
          },
          "value": 18
        },
        "14-70-0-overrideState": {
          "endpoint": 0,
          "commandClass": 70,
          "commandClassName": "Climate Control Schedule",
          "property": "overrideState",
          "propertyName": "overrideState",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Override state",
            "min": -12.8,
            "stateful": true,
            "secret": false
          },
          "value": "Unused"
        },
        "14-70-0-overrideType": {
          "endpoint": 0,
          "commandClass": 70,
          "commandClassName": "Climate Control Schedule",
          "property": "overrideType",
          "propertyName": "overrideType",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Override type",
            "states": {
              "0": "None",
              "1": "Temporary",
              "2": "Permanent"
            },
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "14-114-0-productId": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "productId",
          "propertyName": "productId",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Product ID",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          },
          "value": 40976
        },
        "14-114-0-productType": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "productType",
          "propertyName": "productType",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Product type",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          },
          "value": 277
        },
        "14-114-0-manufacturerId": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "manufacturerId",
          "propertyName": "manufacturerId",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Manufacturer ID",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          },
          "value": 2
        },
        "14-117-0-rf": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "rf",
          "propertyName": "rf",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "RF protection state",
            "states": {
              "0": "Unprotected"
            },
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "14-117-0-local": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "local",
          "propertyName": "local",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Local protection state",
            "states": {
              "0": "Unprotected",
              "2": "NoOperationPossible"
            },
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "14-117-0-exclusiveControlNodeId": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "exclusiveControlNodeId",
          "propertyName": "exclusiveControlNodeId",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Node ID with exclusive control",
            "min": 1,
            "max": 232,
            "stateful": true,
            "secret": false
          }
        },
        "14-117-0-timeout": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "timeout",
          "propertyName": "timeout",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "RF protection timeout",
            "min": 0,
            "max": 255,
            "stateful": true,
            "secret": false
          }
        },
        "14-128-0-level": {
          "endpoint": 0,
          "commandClass": 128,
          "commandClassName": "Battery",
          "property": "level",
          "propertyName": "level",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Battery level",
            "min": 0,
            "max": 100,
            "unit": "%",
            "stateful": true,
            "secret": false
          },
          "value": 78
        },
        "14-132-0-controllerNodeId": {
          "endpoint": 0,
          "commandClass": 132,
          "commandClassName": "Wake Up",
          "property": "controllerNodeId",
          "propertyName": "controllerNodeId",
          "ccVersion": 2,
          "metadata": {
            "type": "any",
            "readable": true,
            "writeable": false,
            "label": "Node ID of the controller",
            "stateful": true,
            "secret": false
          },
          "value": 1
        },
        "14-132-0-wakeUpInterval": {
          "endpoint": 0,
          "commandClass": 132,
          "commandClassName": "Wake Up",
          "property": "wakeUpInterval",
          "propertyName": "wakeUpInterval",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "default": 300,
            "readable": false,
            "writeable": true,
            "min": 60,
            "max": 1800,
            "steps": 60,
            "stateful": true,
            "secret": false
          },
          "value": 1800
        },
        "14-134-0-firmwareVersions": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "firmwareVersions",
          "propertyName": "firmwareVersions",
          "ccVersion": 1,
          "metadata": {
            "type": "string[]",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave chip firmware versions",
            "stateful": true,
            "secret": false
          },
          "value": [
            "1.0"
          ]
        },
        "14-134-0-protocolVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "protocolVersion",
          "propertyName": "protocolVersion",
          "ccVersion": 1,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave protocol version",
            "stateful": true,
            "secret": false
          },
          "value": "3.67"
        },
        "14-134-0-libraryType": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "libraryType",
          "propertyName": "libraryType",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Library type",
            "states": {
              "0": "Unknown",
              "1": "Static Controller",
              "2": "Controller",
              "3": "Enhanced Slave",
              "4": "Slave",
              "5": "Installer",
              "6": "Routing Slave",
              "7": "Bridge Controller",
              "8": "Device under Test",
              "9": "N/A",
              "10": "AV Remote",
              "11": "AV Device"
            },
            "stateful": true,
            "secret": false
          },
          "value": 6
        }
      },
      "endpoints": {
        "0": {
          "nodeId": 14,
          "index": 0,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing End Node"
            },
            "generic": {
              "key": 8,
              "label": "Thermostat"
            },
            "specific": {
              "key": 4,
              "label": "Setpoint Thermostat"
            }
          },
          "commandClasses": [
            {
              "id": 134,
              "name": "Version",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 128,
              "name": "Battery",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 70,
              "name": "Climate Control Schedule",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 129,
              "name": "Clock",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 114,
              "name": "Manufacturer Specific",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 143,
              "name": "Multi Command",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 117,
              "name": "Protection",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 49,
              "name": "Multilevel Sensor",
              "version": 6,
              "isSecure": false
            },
            {
              "id": 67,
              "name": "Thermostat Setpoint",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 132,
              "name": "Wake Up",
              "version": 2,
              "isSecure": false
            }
          ]
        }
      }
    }
  },
  "issues": []
}

Thx again for your support. Read your featured post about migrating from the native Z-Wave integration to Z-Wave UI, sounds like I also should do that at some point to have more options and better control over my network… but one after another, or would you recommend “the sooner the better”?

Best, Stephan

And here the Devolo:

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2025.12.5",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.13.9",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.12.51-haos",
    "container_arch": "amd64",
    "supervisor": "2025.12.3",
    "host_os": "Home Assistant OS 16.3",
    "docker_version": "28.3.3",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "zwave_js",
    "name": "Z-Wave",
    "after_dependencies": [
      "hassio"
    ],
    "codeowners": [
      "home-assistant/z-wave"
    ],
    "config_flow": true,
    "dependencies": [
      "http",
      "repairs",
      "usb",
      "websocket_api"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zwave_js",
    "integration_type": "hub",
    "iot_class": "local_push",
    "loggers": [
      "zwave_js_server"
    ],
    "requirements": [
      "pyserial==3.5",
      "zwave-js-server-python==0.67.1"
    ],
    "usb": [...],
    "zeroconf": [
      "_zwave-js-server._tcp.local."
    ],
    "is_built_in": true,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.0016927930000747438
    },
    "01K7MGY8TNZAH1J8VCY5RA5JVN": {
      "wait_import_platforms": -0.41013567299978604,
      "wait_base_component": -0.00034391600001981715,
      "config_entry_setup": 0.7809293149998666
    }
  },
  "data": {
    "versionInfo": {
      "driverVersion": "15.15.0",
      "serverVersion": "3.4.0",
      "minSchemaVersion": 0,
      "maxSchemaVersion": 44
    },
    "entities": [
      {
        "domain": "climate",
        "entity_id": "climate.devolo_thermostat_09356",
        "original_name": "",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 1,
        "unit_of_measurement": null,
        "value_id": "8-67-0-setpoint-1",
        "primary_value": {
          "command_class": 67,
          "command_class_name": "Thermostat Setpoint",
          "endpoint": 0,
          "property": "setpoint",
          "property_name": "setpoint",
          "property_key": 1,
          "property_key_name": "Heating"
        }
      },
      {
        "domain": "select",
        "entity_id": "select.devolo_thermostat_09356_local_protection_state",
        "original_name": "Local protection state",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": "config",
        "supported_features": 0,
        "unit_of_measurement": null,
        "value_id": "8-117-0-local",
        "primary_value": {
          "command_class": 117,
          "command_class_name": "Protection",
          "endpoint": 0,
          "property": "local",
          "property_name": "local",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "select",
        "entity_id": "select.devolo_thermostat_09356_rf_protection_state",
        "original_name": "RF protection state",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": "config",
        "supported_features": 0,
        "unit_of_measurement": null,
        "value_id": "8-117-0-rf",
        "primary_value": {
          "command_class": 117,
          "command_class_name": "Protection",
          "endpoint": 0,
          "property": "rf",
          "property_name": "rf",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "sensor",
        "entity_id": "sensor.devolo_thermostat_09356_air_temperature",
        "original_name": "Air temperature",
        "original_device_class": "temperature",
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 0,
        "unit_of_measurement": "\u00b0C",
        "value_id": "8-49-0-Air temperature",
        "primary_value": {
          "command_class": 49,
          "command_class_name": "Multilevel Sensor",
          "endpoint": 0,
          "property": "Air temperature",
          "property_name": "Air temperature",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "sensor",
        "entity_id": "sensor.devolo_thermostat_09356_battery_level",
        "original_name": "Battery level",
        "original_device_class": "battery",
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": "diagnostic",
        "supported_features": 0,
        "unit_of_measurement": "%",
        "value_id": "8-128-0-level",
        "primary_value": {
          "command_class": 128,
          "command_class_name": "Battery",
          "endpoint": 0,
          "property": "level",
          "property_name": "level",
          "property_key": null,
          "property_key_name": null
        }
      }
    ],
    "state": {
      "nodeId": 8,
      "index": 0,
      "status": 1,
      "ready": true,
      "isListening": false,
      "isRouting": true,
      "isSecure": false,
      "manufacturerId": 2,
      "productId": 373,
      "productType": 5,
      "firmwareVersion": "1.0",
      "deviceConfig": {
        "filename": "/data/db/devices/0x0002/mt02650.json",
        "isEmbedded": true,
        "manufacturer": "Danfoss",
        "manufacturerId": 2,
        "label": "MT02650",
        "description": "Devolo Thermostat (09356)",
        "devices": [
          {
            "productType": 5,
            "productId": 373
          }
        ],
        "firmwareVersion": {
          "min": "0.0",
          "max": "255.255"
        },
        "preferred": false,
        "associations": {},
        "compat": {
          "queryOnWakeup": [
            [
              "Battery",
              "get"
            ],
            [
              "Thermostat Setpoint",
              "get",
              1
            ]
          ]
        },
        "metadata": {
          "inclusion": "Press and release the middle button (with a star).",
          "exclusion": "Press and release the middle button (with a star).",
          "reset": "Remove the batteries and take out one battery. While reinserting the battery, press and hold the function button (with a star) for about 5 seconds.",
          "manual": "http://manuals-backend.z-wave.info/make.php?lang=en&sku=DEVE9356&cert=ZC08-15020003"
        }
      },
      "label": "MT02650",
      "interviewAttempts": 0,
      "isFrequentListening": false,
      "maxDataRate": 40000,
      "supportedDataRates": [
        40000
      ],
      "protocolVersion": 3,
      "supportsBeaming": true,
      "supportsSecurity": false,
      "nodeType": 1,
      "deviceClass": {
        "basic": {
          "key": 4,
          "label": "Routing End Node"
        },
        "generic": {
          "key": 8,
          "label": "Thermostat"
        },
        "specific": {
          "key": 4,
          "label": "Setpoint Thermostat"
        }
      },
      "interviewStage": "Complete",
      "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0002:0x0005:0x0175:1.0",
      "statistics": {
        "commandsTX": 4626,
        "commandsRX": 10779,
        "commandsDroppedRX": 0,
        "commandsDroppedTX": 0,
        "timeoutResponse": 0,
        "lastSeen": "2026-01-06T23:33:33.911Z",
        "rtt": 21.2,
        "rssi": -84,
        "lwr": {
          "protocolDataRate": 2,
          "repeaters": [],
          "rssi": -85,
          "repeaterRSSI": []
        },
        "nlwr": {
          "protocolDataRate": 2,
          "repeaters": [
            41
          ],
          "rssi": -89,
          "repeaterRSSI": [
            127
          ]
        }
      },
      "highestSecurityClass": -1,
      "isControllerNode": false,
      "keepAwake": false,
      "lastSeen": "2026-01-01T19:56:00.936Z",
      "protocol": 0,
      "values": {
        "8-49-0-Air temperature": {
          "endpoint": 0,
          "commandClass": 49,
          "commandClassName": "Multilevel Sensor",
          "property": "Air temperature",
          "propertyName": "Air temperature",
          "ccVersion": 6,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Air temperature",
            "ccSpecific": {
              "sensorType": 1,
              "scale": 0
            },
            "unit": "\u00b0C",
            "stateful": true,
            "secret": false
          },
          "value": 17.85
        },
        "8-67-0-setpoint-1": {
          "endpoint": 0,
          "commandClass": 67,
          "commandClassName": "Thermostat Setpoint",
          "property": "setpoint",
          "propertyKey": 1,
          "propertyName": "setpoint",
          "propertyKeyName": "Heating",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Setpoint (Heating)",
            "ccSpecific": {
              "setpointType": 1
            },
            "unit": "\u00b0C",
            "stateful": true,
            "secret": false
          },
          "value": 18
        },
        "8-70-0-overrideState": {
          "endpoint": 0,
          "commandClass": 70,
          "commandClassName": "Climate Control Schedule",
          "property": "overrideState",
          "propertyName": "overrideState",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Override state",
            "min": -12.8,
            "stateful": true,
            "secret": false
          },
          "value": "Unused"
        },
        "8-70-0-overrideType": {
          "endpoint": 0,
          "commandClass": 70,
          "commandClassName": "Climate Control Schedule",
          "property": "overrideType",
          "propertyName": "overrideType",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Override type",
            "states": {
              "0": "None",
              "1": "Temporary",
              "2": "Permanent"
            },
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "8-114-0-productId": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "productId",
          "propertyName": "productId",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Product ID",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          },
          "value": 373
        },
        "8-114-0-productType": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "productType",
          "propertyName": "productType",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Product type",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          },
          "value": 5
        },
        "8-114-0-manufacturerId": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "manufacturerId",
          "propertyName": "manufacturerId",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Manufacturer ID",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          },
          "value": 2
        },
        "8-117-0-rf": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "rf",
          "propertyName": "rf",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "RF protection state",
            "states": {},
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "8-117-0-local": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "local",
          "propertyName": "local",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Local protection state",
            "states": {
              "0": "Unprotected",
              "2": "NoOperationPossible"
            },
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "8-117-0-exclusiveControlNodeId": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "exclusiveControlNodeId",
          "propertyName": "exclusiveControlNodeId",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Node ID with exclusive control",
            "min": 1,
            "max": 232,
            "stateful": true,
            "secret": false
          }
        },
        "8-117-0-timeout": {
          "endpoint": 0,
          "commandClass": 117,
          "commandClassName": "Protection",
          "property": "timeout",
          "propertyName": "timeout",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "RF protection timeout",
            "min": 0,
            "max": 255,
            "stateful": true,
            "secret": false
          }
        },
        "8-128-0-level": {
          "endpoint": 0,
          "commandClass": 128,
          "commandClassName": "Battery",
          "property": "level",
          "propertyName": "level",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Battery level",
            "min": 0,
            "max": 100,
            "unit": "%",
            "stateful": true,
            "secret": false
          },
          "value": 77
        },
        "8-132-0-controllerNodeId": {
          "endpoint": 0,
          "commandClass": 132,
          "commandClassName": "Wake Up",
          "property": "controllerNodeId",
          "propertyName": "controllerNodeId",
          "ccVersion": 2,
          "metadata": {
            "type": "any",
            "readable": true,
            "writeable": false,
            "label": "Node ID of the controller",
            "stateful": true,
            "secret": false
          },
          "value": 1
        },
        "8-132-0-wakeUpInterval": {
          "endpoint": 0,
          "commandClass": 132,
          "commandClassName": "Wake Up",
          "property": "wakeUpInterval",
          "propertyName": "wakeUpInterval",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "default": 300,
            "readable": false,
            "writeable": true,
            "min": 60,
            "max": 1800,
            "steps": 60,
            "stateful": true,
            "secret": false
          },
          "value": 300
        },
        "8-134-0-firmwareVersions": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "firmwareVersions",
          "propertyName": "firmwareVersions",
          "ccVersion": 1,
          "metadata": {
            "type": "string[]",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave chip firmware versions",
            "stateful": true,
            "secret": false
          },
          "value": [
            "1.0"
          ]
        },
        "8-134-0-protocolVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "protocolVersion",
          "propertyName": "protocolVersion",
          "ccVersion": 1,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave protocol version",
            "stateful": true,
            "secret": false
          },
          "value": "3.67"
        },
        "8-134-0-libraryType": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "libraryType",
          "propertyName": "libraryType",
          "ccVersion": 1,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Library type",
            "states": {
              "0": "Unknown",
              "1": "Static Controller",
              "2": "Controller",
              "3": "Enhanced Slave",
              "4": "Slave",
              "5": "Installer",
              "6": "Routing Slave",
              "7": "Bridge Controller",
              "8": "Device under Test",
              "9": "N/A",
              "10": "AV Remote",
              "11": "AV Device"
            },
            "stateful": true,
            "secret": false
          },
          "value": 6
        }
      },
      "endpoints": {
        "0": {
          "nodeId": 8,
          "index": 0,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing End Node"
            },
            "generic": {
              "key": 8,
              "label": "Thermostat"
            },
            "specific": {
              "key": 4,
              "label": "Setpoint Thermostat"
            }
          },
          "commandClasses": [
            {
              "id": 134,
              "name": "Version",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 128,
              "name": "Battery",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 70,
              "name": "Climate Control Schedule",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 129,
              "name": "Clock",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 114,
              "name": "Manufacturer Specific",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 143,
              "name": "Multi Command",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 117,
              "name": "Protection",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 49,
              "name": "Multilevel Sensor",
              "version": 6,
              "isSecure": false
            },
            {
              "id": 67,
              "name": "Thermostat Setpoint",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 132,
              "name": "Wake Up",
              "version": 2,
              "isSecure": false
            }
          ]
        }
      }
    }
  },
  "issues": []
}

Ok, both of the expected Values exist, e.g.:

        "8-70-0-overrideState": {
          "endpoint": 0,
          "commandClass": 70,
          "commandClassName": "Climate Control Schedule",
          "property": "overrideState",
          "propertyName": "overrideState",
...

However, I checked the driver code again and the “SET value API” is not implemented for that CC, so I guess the linked issue is correct. It provides values and will update them when they change, but it will not support setting them. So your only option is the invoke_cc_api action. Sounds like you have an idea of what parameters to pass in, feel free to ask any follow up questions if needed.