Skip to content

[New device support]: Hive OTR1 Receiver (OpenTherm functions) #30087

@fma965

Description

@fma965

Link

https://www.hivehome.com/guides/hive-heating

Database entry

{"id":30,"type":"Router","ieeeAddr":"0x001e5e0902b2f74d","nwkAddr":14610,"manufId":4153,"manufName":"Computime","powerSource":"Mains (single phase)","modelId":"OTR1","epList":[5,6,242],"endpoints":{"5":{"profId":260,"epId":5,"devId":769,"inClusterList":[0,3,9,10,513,64768,64770,64771],"outClusterList":[3,25,1026],"clusters":{"genBasic":{"attributes":{}},"hvacThermostat":{"attributes":{"localTemp":1856,"systemMode":4,"occupiedHeatingSetpoint":500,"tempSetpointHold":0,"tempSetpointHoldDuration":0,"runningState":0}}},"binds":[{"cluster":0,"type":"endpoint","deviceIeeeAddress":"0x00124b0038a8967a","endpointID":1},{"cluster":3,"type":"endpoint","deviceIeeeAddress":"0x00124b0038a8967a","endpointID":1},{"cluster":9,"type":"endpoint","deviceIeeeAddress":"0x00124b0038a8967a","endpointID":1},{"cluster":10,"type":"endpoint","deviceIeeeAddress":"0x00124b0038a8967a","endpointID":1},{"cluster":513,"type":"endpoint","deviceIeeeAddress":"0x00124b0038a8967a","endpointID":1}],"configuredReportings":[{"cluster":513,"attrId":0,"minRepIntval":0,"maxRepIntval":3600,"repChange":10},{"cluster":513,"attrId":41,"minRepIntval":0,"maxRepIntval":3600,"repChange":0},{"cluster":513,"attrId":28,"minRepIntval":10,"maxRepIntval":3600,"repChange":null},{"cluster":513,"attrId":18,"minRepIntval":0,"maxRepIntval":3600,"repChange":10},{"cluster":513,"attrId":35,"minRepIntval":0,"maxRepIntval":3600,"repChange":0},{"cluster":513,"attrId":36,"minRepIntval":0,"maxRepIntval":3600,"repChange":10}],"meta":{}},"6":{"profId":260,"epId":6,"devId":769,"inClusterList":[513],"outClusterList":[],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":24,"stackVersion":2,"hwVersion":1,"dateCode":"20241127","zclVersion":8,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{"configured":190139088},"lastSeen":1765173176104}

Zigbee2MQTT version

2.7.0

External definition

{
    "description": "Single channel heating receiver",
    "exposes": [
        {
            "features": [
                {
                    "access": 7,
                    "description": "Temperature setpoint",
                    "label": "Occupied heating setpoint",
                    "name": "occupied_heating_setpoint",
                    "property": "occupied_heating_setpoint",
                    "type": "numeric",
                    "unit": "°C",
                    "value_max": 32,
                    "value_min": 5,
                    "value_step": 0.5
                },
                {
                    "access": 5,
                    "description": "Current temperature measured on the device",
                    "label": "Local temperature",
                    "name": "local_temperature",
                    "property": "local_temperature",
                    "type": "numeric",
                    "unit": "°C"
                },
                {
                    "access": 7,
                    "description": "Mode of this device",
                    "label": "System mode",
                    "name": "system_mode",
                    "property": "system_mode",
                    "type": "enum",
                    "values": [
                        "off",
                        "auto",
                        "heat"
                    ]
                },
                {
                    "access": 5,
                    "description": "The current running state",
                    "label": "Running state",
                    "name": "running_state",
                    "property": "running_state",
                    "type": "enum",
                    "values": [
                        "idle",
                        "heat"
                    ]
                }
            ],
            "type": "climate"
        },
        {
            "access": 7,
            "description": "Prevent changes. `false` = run normally. `true` = prevent from making changes. Must be set to `false` when system_mode = off or `true` for heat",
            "label": "Temperature setpoint hold",
            "name": "temperature_setpoint_hold",
            "property": "temperature_setpoint_hold",
            "type": "binary",
            "value_off": false,
            "value_on": true
        },
        {
            "access": 7,
            "description": "Period in minutes for which the setpoint hold will be active. 65535 = attribute not used. 0 to 360 to match the remote display",
            "label": "Temperature setpoint hold duration",
            "name": "temperature_setpoint_hold_duration",
            "property": "temperature_setpoint_hold_duration",
            "type": "numeric",
            "value_max": 65535,
            "value_min": 0
        },
        {
            "access": 1,
            "category": "diagnostic",
            "description": "Link quality (signal strength)",
            "label": "Linkquality",
            "name": "linkquality",
            "property": "linkquality",
            "type": "numeric",
            "unit": "lqi",
            "value_max": 255,
            "value_min": 0
        }
    ],
    "model": "OTR1",
    "options": [
        {
            "access": 2,
            "description": "Controls the temperature unit of the thermostat (default celsius).",
            "label": "Thermostat unit",
            "name": "thermostat_unit",
            "property": "thermostat_unit",
            "type": "enum",
            "values": [
                "celsius",
                "fahrenheit"
            ]
        }
    ],
    "source": "native",
    "supports_ota": false,
    "vendor": "Hive"
}

What does/doesn't work with the external definition?

When using the OTR1 with Hive app with OpenTherm capable boiler I can set the Max Flow Temperature and Water Temperature, this isn't possible in z2m currently, it's not possible to set it directly on the boiler when in opentherm mode as opentherm takes over

IMG-20251029-WA0001.jpg
IMG-20251029-WA0000.jpg
Screenshot_2025-12-08-07-55-46-79_3aea4af51f236e4932235fdada7d1643.jpg

#29976

Notes

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions