Hi Claude, many thanks for all the information and hard work put into this. I’m new to Sinope Thermostats (migrated from Dimplex after they discontinued Connex) and Home Assistant.
I have installed 5 Sinope Zigbee Thermostats (TH1124ZB), connecting via the Conbee II dongle. The thermostats are all connected properly and appear to be using the quirks properly when I check the device info:
Device info
TH1124ZB
by Sinope Technologies
Connected via Zigbee Coordinator
Firmware: 0x02400203
Zigbee info
IEEE: 50:0b:91:40:00:02:cc:8c
Nwk: 0xddee
Device Type: Router
LQI: 255
RSSI: -32
Last Seen: 2022-10-11T09:28:05
Power Source: Mains
Quirk: zhaquirks.sinope.thermostat.SinopeLineThermostats
I am trying to get the outdoor temperature to display on these devices. It appears to work, but on the thermostat display, all I get is “Outside: 0.0” . When I read the cluster/attribute via the device manager, I see the proper temperature is being recorded, but for some reason I cannot get the actual thermostat to display anything other than 0.0 for the outside temp.
Am I using the wrong cluster_id? I have 2 Sinope related clusters when I go into the “Manage Zigbee Device” screens:
Clusters
SinopeTechnologiesManufacturerCluster (Endpoint id: 1, Id: 0xff01, Type: in)
and
SinopeTechnologiesThermostatCluster (Endpoint id: 1, Id: 0x0201, Type: in)
My automation code is as follows, as adopted from this thread, and it uses the first cluster listed above. This automation correctly fires every time there is a change in temperature on my Tempest Weatherflow device, and the temperature value is being correctly obtained.
Does anything jump out as being incorrect?
alias: SinopeGetOutdoorTemp
description: >-
Attempts to get the outside temperature for display on the Sinope Zigbee
Thermostats
trigger:
- platform: state
entity_id: sensor.weatherflow_air_temperature
action:
- repeat:
count: "{{thermostats|length}}"
sequence:
- service: zha.set_zigbee_cluster_attribute
data:
ieee: "{{ thermostats[repeat.index-1] }}"
endpoint_id: 1
cluster_id: 65281
cluster_type: in
attribute: 16
value: "{{ ( trigger.to_state.state |float + (0.5) ) | round(0) }}"
variables:
thermostats:
- 50:0b:91:40:00:02:ce:16
- 50:0b:91:40:00:02:cd:ef
- 50:0b:91:40:00:02:cd:ea
- 50:0b:91:40:00:02:cc:8c
- 50:0b:91:40:00:02:ce:31