Drayton Wiser / Schneider Electric iTRV Issues

Has anyone tried using Drayton / Schneider TRVs directly with Home Assistant via ZHA - and had any issues?

I have paired the iTRV directly with ZHA and it’s recognised and initially looks like it’s working - but eventually it stops responding, becomes unavailable or fails to report temperatures etc.

The GUI doesn’t help is it makes it look like it’s changing but under the covers it seems the zigbee backend is failing…

I turned on debug logs for HA/ZHA and eventually found this:

2021-01-15 15:45:07 ERROR (MainThread) [homeassistant.core] Error executing service: <ServiceCall climate.set_temperature (c:6944e1ea26ebb01e14ef06540a972642): target_temp_low=15.0, target_temp_high=17.0, entity_id=[‘climate.guest_itrv_thermostat’]>
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/core.py”, line 1461, in catch_exceptions
await coro_or_task
File “/usr/src/homeassistant/homeassistant/core.py”, line 1480, in _execute_service
await handler.job.target(service_call)
File “/usr/src/homeassistant/homeassistant/helpers/entity_component.py”, line 204, in handle_service
await self.hass.helpers.service.entity_service_call(
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 593, in entity_service_call
future.result() # pop exception if have
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 664, in async_request_call
await coro
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 630, in _handle_entity_call
await result
File “/usr/src/homeassistant/homeassistant/components/climate/init.py”, line 544, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File “/usr/src/homeassistant/homeassistant/components/zha/climate.py”, line 472, in async_set_temperature
success = success and await thrm.async_set_heating_setpoint(
File “/usr/src/homeassistant/homeassistant/components/zha/core/channels/hvac.py”, line 379, in async_set_heating_setpoint
if not await self.write_attributes(data):
File “/usr/src/homeassistant/homeassistant/components/zha/core/channels/hvac.py”, line 423, in write_attributes
res = await self.cluster.write_attributes(data, **kwargs)
File “/usr/local/lib/python3.8/site-packages/zigpy/zcl/init.py”, line 352, in write_attributes
result = await self._write_attributes(args, manufacturer=manufacturer)
File “/usr/local/lib/python3.8/site-packages/zigpy/device.py”, line 223, in request
result = await asyncio.wait_for(req.result, timeout)
File “/usr/local/lib/python3.8/asyncio/tasks.py”, line 501, in wait_for
raise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

I’ve ruled out signal issues - it has one of the best signals in the house vs other sensors/zigbee devices. I’ve replaced the batteries to rule out power issues.

If no-one else has seen this before, I’ll raise a bug/issue… somewhere.

Cheers!

1 Like

Hi Jim,

I now have around 20 iTRV and am using a SONOFF Zigbee Bridge, flashed with Tasmota. Then in HA I’m using the ZHA integration.

I too am finding the iTRV device to stop updating, but if I go to the thermostat entity directly and send a comment a couple of times, it suddenly pongs back to life.

Also now searching for a solution :-/

Hi,
Do you still have those issues with your TRV ?
I’m planning to get some of those, but reading your comment make me doubtful.

I’ve recently purchased the same TRV. I’m using a Sonoff Bridge with Tasmota in ZHA. There is defiantly still a problem, but what I’m seeing is slightly different, but very similar.

The TRV appears in HA/ZHA straight away and you think everything is working, but something is horribly wrong. I set the unit to “heat mode” and then dial in a temp. I can here the TRV moving (if there is enough of a temperature difference), but over a period of a few hours, all of the settings/set states, are removed/reversed. So the unit goes back to “heat/cool” mode and the setpoint temperature is changed.

When I look at the history, ZHA/HA is logging that the mode changed back to heat/cool, but no one changed it!

#pafnow I’d stay away from these TRV’s just now until someone posts back with something positive, or know of any fixes. :cry:

I’ve got one of these TRV’s and so far have been unable to pair it with ZHA (ZZH stick). I’ve tried doing a factory reset of the device but it doesn’t help. If anyone has experienced this or knows a solution i’d be very appreciative.

Hmm, mine is doing exactly the same. I’m also seeing this timeout in the logs:


2021-11-15 22:24:05 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=climate, service=set_temperature, service_data=target_temp_high=25, target_temp_low=23, hvac_mode=heat, temperature=25, area_id=['office']>
2021-11-15 22:24:05 DEBUG (MainThread) [zigpy.device] [0xab2f] Extending timeout for 0x16 request
2021-11-15 22:24:05 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 22 under 23 request id, data: b'0016021c003004'
2021-11-15 22:24:05 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (22, 23, 0, <DeconzAddressEndpoint address_mode=2 address=0xAB2F endpoint=1>, 260, 513, 1, b'\x00\x16\x02\x1c\x000\x04', 2, 0)
2021-11-15 22:24:06 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 23]
2021-11-15 22:24:06 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2021-11-15 22:24:06 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2021-11-15 22:24:06 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 23: 00
2021-11-15 22:24:06 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x17 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0xab2f endpoint=1>, status: 0x00
2021-11-15 22:24:08 DEBUG (MainThread) [zigpy_deconz.api] Command Command.write_parameter (5, <NetworkParameter.watchdog_ttl: 38>, b'X\x02\x00\x00')
2021-11-15 22:24:08 DEBUG (MainThread) [zigpy_deconz.api] Write parameter watchdog_ttl: SUCCESS
2021-11-15 22:24:09 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.arris_tg3492lg_packets_received, old_state=<state sensor.arris_tg3492lg_packets_received=89390990; unit_of_measurement=packets, friendly_name=ARRIS TG3492LG packets received, icon=mdi:server-network @ 2021-11-15T22:23:39.037881+00:00>, new_state=<state sensor.arris_tg3492lg_packets_received=89391527; unit_of_measurement=packets, friendly_name=ARRIS TG3492LG packets received, icon=mdi:server-network @ 2021-11-15T22:24:09.039497+00:00>>
2021-11-15 22:24:09 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.arris_tg3492lg_packets_sent, old_state=<state sensor.arris_tg3492lg_packets_sent=32434489; unit_of_measurement=packets, friendly_name=ARRIS TG3492LG packets sent, icon=mdi:server-network @ 2021-11-15T22:23:39.038744+00:00>, new_state=<state sensor.arris_tg3492lg_packets_sent=32434672; unit_of_measurement=packets, friendly_name=ARRIS TG3492LG packets sent, icon=mdi:server-network @ 2021-11-15T22:24:09.040400+00:00>>
2021-11-15 22:24:09 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.arris_tg3492lg_packets_s_received, old_state=<state sensor.arris_tg3492lg_packets_s_received=16.3; unit_of_measurement=packets/s, friendly_name=ARRIS TG3492LG packets/s received, icon=mdi:server-network @ 2021-11-15T22:23:39.039831+00:00>, new_state=<state sensor.arris_tg3492lg_packets_s_received=17.9; unit_of_measurement=packets/s, friendly_name=ARRIS TG3492LG packets/s received, icon=mdi:server-network @ 2021-11-15T22:24:09.041338+00:00>>
2021-11-15 22:24:09 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.arris_tg3492lg_packets_s_sent, old_state=<state sensor.arris_tg3492lg_packets_s_sent=5.9; unit_of_measurement=packets/s, friendly_name=ARRIS TG3492LG packets/s sent, icon=mdi:server-network @ 2021-11-15T22:23:39.040441+00:00>, new_state=<state sensor.arris_tg3492lg_packets_s_sent=6.1; unit_of_measurement=packets/s, friendly_name=ARRIS TG3492LG packets/s sent, icon=mdi:server-network @ 2021-11-15T22:24:09.042156+00:00>>
2021-11-15 22:24:15 INFO (MainThread) [homeassistant.components.websocket_api.http.connection] [547239845648] Connection closed by client
2021-11-15 22:24:15 DEBUG (MainThread) [homeassistant.core] Service did not complete before timeout: <ServiceCall automation.trigger (c:7e1fd3bd9d68369557f4b7cacb2af647): entity_id=['automation.turn_on_the_heat_in_the_morning_2'], skip_condition=True, variables=>
2021-11-15 22:24:15 DEBUG (MainThread) [homeassistant.core] Service did not complete before timeout: <ServiceCall climate.set_temperature (c:e8d27f07725072b31c3956a2491ded64): target_temp_high=25.0, target_temp_low=23.0, hvac_mode=heat, temperature=25.0, area_id=['office']>
2021-11-15 22:24:16 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=automation.turn_on_the_heat_in_the_morning_2, old_state=<state automation.turn_on_the_heat_in_the_morning_2=on; last_triggered=2021-11-15T22:24:05.973300+00:00, mode=single, current=1, id=office_heat_on, friendly_name=office: heat in the morning @ 2021-11-15T22:14:44.161207+00:00>, new_state=<state automation.turn_on_the_heat_in_the_morning_2=on; last_triggered=2021-11-15T22:24:05.973300+00:00, mode=single, current=0, id=office_heat_on, friendly_name=office: heat in the morning @ 2021-11-15T22:14:44.161207+00:00>>
2021-11-15 22:24:16 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-11-15 22:24:16 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-11-15 22:24:16 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [28, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, 1, 260, 0, b'\x00\x05\x00\x00\x00', 0, 175, 199, 92, 32, 0, 0, -69]
2021-11-15 22:24:16 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=5 command_id=Command.Read_Attributes>
2021-11-15 22:24:16 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0000] ZCL request 0x0000: [[0]]
2021-11-15 22:24:16 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, ep: 1, profile: 0x0104, cluster_id: 0x0000, data: b'0005000000'
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [83, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 42>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, 1, 260, 65027, b'\x1c^\x10\x06\n \x00B3ADC,1354,1357,2,233,-32768,2000,0,0,100,233,232,236', 0, 175, 199, 92, 32, 0, 0, -69]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0xfe03] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4190 tsn=6 command_id=Command.Report_Attributes>
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0xfe03] ZCL request 0x000a: [[Attribute(attrid=32, value=<TypeValue type=CharacterString, value=ADC,1354,1357,2,233,-32768,2000,0,0,100,233,232,236>)]]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0xfe03] Attribute report received: 32=ADC,1354,1357,2,233,-32768,2000,0,0,100,233,232,236
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, ep: 1, profile: 0x0104, cluster_id: 0xfe03, data: b'1c5e10060a200042334144432c313335342c313335372c322c3233332c2d33323736382c323030302c302c302c3130302c3233332c3233322c323336'
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [34, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, 1, 260, 2821, b'\x18\x08\n\x1c\x01 \x00\x1d\x01(\x00', 0, 175, 199, 92, 32, 0, 0, -69]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0b05] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=8 command_id=Command.Report_Attributes>
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0b05] ZCL request 0x000a: [[Attribute(attrid=284, value=<TypeValue type=uint8_t, value=0>), Attribute(attrid=285, value=<TypeValue type=int8s, value=0>)]]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0b05] Attribute report received: last_message_lqi=0, last_message_rssi=0
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, ep: 1, profile: 0x0104, cluster_id: 0x0b05, data: b'18080a1c0120001d012800'
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [66, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, 1, 260, 65027, b'\x1c^\x10\x07\n \x00B"ALG,11,1,200,233,-33,0,0,0,0,0,100', 0, 175, 199, 92, 32, 0, 0, -69]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0xfe03] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4190 tsn=7 command_id=Command.Report_Attributes>
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0xfe03] ZCL request 0x000a: [[Attribute(attrid=32, value=<TypeValue type=CharacterString, value=ALG,11,1,200,233,-33,0,0,0,0,0,100>)]]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0xfe03] Attribute report received: 32=ALG,11,1,200,233,-33,0,0,0,0,0,100
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, ep: 1, profile: 0x0104, cluster_id: 0xfe03, data: b'1c5e10070a20004222414c472c31312c312c3230302c3233332c2d33332c302c302c302c302c302c313030'
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [33, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, 1, 260, 2821, b'\x1c^\x10\t\n\x01\xe0!\xdfl', 0, 175, 199, 92, 32, 0, 0, -69]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0b05] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4190 tsn=9 command_id=Command.Report_Attributes>
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0b05] ZCL request 0x000a: [[Attribute(attrid=57345, value=<TypeValue type=uint16_t, value=27871>)]]
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy.zcl] [0xab2f:1:0x0b05] Attribute report received: 57345=27871
2021-11-15 22:24:18 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xab2f>, ep: 1, profile: 0x0104, cluster_id: 0x0b05, data: b'1c5e10090a01e021df6c'
2021-11-15 22:24:34 ERROR (MainThread) [homeassistant.core] Error executing service: <ServiceCall climate.set_temperature (c:e8d27f07725072b31c3956a2491ded64): target_temp_high=25.0, target_temp_low=23.0, hvac_mode=heat, temperature=25.0, area_id=['office']>
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 492, in wait_for
    fut.result()
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/core.py", line 1511, in catch_exceptions
    await coro_or_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1530, in _execute_service
    await handler.job.target(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await self.hass.helpers.service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 667, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 863, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 704, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 586, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/usr/src/homeassistant/homeassistant/components/zha/climate.py", line 474, in async_set_temperature
    await self.async_set_hvac_mode(hvac_mode)
  File "/usr/src/homeassistant/homeassistant/components/zha/climate.py", line 438, in async_set_hvac_mode
    if await self._thrm.async_set_operation_mode(HVAC_MODE_2_SYSTEM[hvac_mode]):
  File "/usr/src/homeassistant/homeassistant/components/zha/core/channels/hvac.py", line 243, in async_set_operation_mode
    if not await self.write_attributes({"system_mode": mode}):
  File "/usr/src/homeassistant/homeassistant/components/zha/core/channels/hvac.py", line 292, in write_attributes
    res = await self.cluster.write_attributes(data, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/zigpy/zcl/__init__.py", line 378, in write_attributes
    result = await self._write_attributes(args, manufacturer=manufacturer)
  File "/usr/local/lib/python3.9/site-packages/zigpy/device.py", line 296, in request
    result = await asyncio.wait_for(req.result, timeout)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 494, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

all the while it (mostly) was reporting at least some values back (e.g. current temperature)

I’m using the deCONZ ConBee II as coordinator

After resetting the iTRV it seems to work again:

2021-11-15 22:29:43 INFO (MainThread) [homeassistant.components.automation.turn_on_the_heat_in_the_morning_2] office: heat in the morning: Running automation actions
2021-11-15 22:29:43 INFO (MainThread) [homeassistant.components.automation.turn_on_the_heat_in_the_morning_2] office: heat in the morning: Executing step call service
2021-11-15 22:29:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=climate, service=set_temperature, service_data=target_temp_high=25, target_temp_low=23, hvac_mode=heat, temperature=25, area_id=['office']>
2021-11-15 22:29:43 DEBUG (MainThread) [zigpy.device] [0x070f] Extending timeout for 0x3a request
2021-11-15 22:29:43 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 58 under 59 request id, data: b'003a021c003004'
2021-11-15 22:29:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (22, 59, 0, <DeconzAddressEndpoint address_mode=2 address=1807 endpoint=1>, 260, 513, 1, b'\x00:\x02\x1c\x000\x04', 2, 0)
2021-11-15 22:29:43 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 59]
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 59: 00
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x3b 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x070f endpoint=1>, status: 0x00
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [27, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x070f>, 1, 260, 513, b'\x18:\x04\x00', 0, 175, 215, 178, 32, 0, 0, -67]
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy.zcl] [0x070f:1:0x0201] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=58 command_id=Command.Write_Attributes_rsp>
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x070f>, ep: 1, profile: 0x0104, cluster_id: 0x0201, data: b'183a0400'
2021-11-15 22:29:44 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [1807:1:0x0201]: wrote {'system_mode': <SystemMode.HEAT: 4>} attrs, Status: [[WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]]
2021-11-15 22:29:44 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [1807:1:0x0201]: set system to SystemMode.HEAT
2021-11-15 22:29:44 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=climate.home_office_trv_thermostat, old_state=<state climate.home_office_trv_thermostat=heat_cool; hvac_modes=('off', 'heat_cool', 'cool', 'heat'), min_temp=7.0, max_temp=32.0, current_temperature=23.5, temperature=None, target_temp_high=26.0, target_temp_low=20.0, hvac_action=idle, system_mode=[1]/heat_cool, occupied_cooling_setpoint=2600, occupied_heating_setpoint=2000, pi_heating_demand=0, friendly_name=Home Office TRV thermostat, supported_features=3 @ 2021-11-15T22:17:04.759910+00:00>, new_state=<state climate.home_office_trv_thermostat=heat; hvac_modes=('off', 'heat_cool', 'cool', 'heat'), min_temp=7.0, max_temp=32.0, current_temperature=23.5, temperature=20.0, target_temp_high=None, target_temp_low=None, hvac_action=idle, system_mode=[4]/heat, occupied_cooling_setpoint=2600, occupied_heating_setpoint=2000, pi_heating_demand=0, friendly_name=Home Office TRV thermostat, supported_features=3 @ 2021-11-15T22:29:44.641139+00:00>>
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy.device] [0x070f] Extending timeout for 0x3c request
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 60 under 61 request id, data: b'003c02120029c409'
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (23, 61, 0, <DeconzAddressEndpoint address_mode=2 address=1807 endpoint=1>, 260, 513, 1, b'\x00<\x02\x12\x00)\xc4\t', 2, 0)
2021-11-15 22:29:44 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 61]
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x070f>, 1, 260, 513, b'\x18\x1a\n\x1c\x000\x04', 0, 175, 215, 178, 32, 0, 0, -67]
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy.zcl] [0x070f:1:0x0201] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=26 command_id=Command.Report_Attributes>
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy.zcl] [0x070f:1:0x0201] ZCL request 0x000a: [[Attribute(attrid=28, value=<TypeValue type=enum8, value=enum8.undefined_0x04>)]]
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy.zcl] [0x070f:1:0x0201] Attribute report received: system_mode=4
2021-11-15 22:29:45 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [1807:1:0x0201]: Attribute report 'Thermostat'[system_mode] = SystemMode.Heat
2021-11-15 22:29:45 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.home_office_trv_thermostat: Attribute 'system_mode' = SystemMode.Heat update
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x070f>, ep: 1, profile: 0x0104, cluster_id: 0x0201, data: b'181a0a1c003004'
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 61: 00
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x3d 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x070f endpoint=1>, status: 0x00
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [27, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x070f>, 1, 260, 513, b'\x18<\x04\x00', 0, 175, 215, 178, 32, 0, 0, -67]
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy.zcl] [0x070f:1:0x0201] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=60 command_id=Command.Write_Attributes_rsp>
2021-11-15 22:29:45 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x070f>, ep: 1, profile: 0x0104, cluster_id: 0x0201, data: b'183c0400'
2021-11-15 22:29:45 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [1807:1:0x0201]: wrote {'occupied_heating_setpoint': 2500} attrs, Status: [[WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]]
2021-11-15 22:29:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=climate.home_office_trv_thermostat, old_state=<state climate.home_office_trv_thermostat=heat; hvac_modes=('off', 'heat_cool', 'cool', 'heat'), min_temp=7.0, max_temp=32.0, current_temperature=23.5, temperature=20.0, target_temp_high=None, target_temp_low=None, hvac_action=idle, system_mode=[4]/heat, occupied_cooling_setpoint=2600, occupied_heating_setpoint=2000, pi_heating_demand=0, friendly_name=Home Office TRV thermostat, supported_features=3 @ 2021-11-15T22:29:44.641139+00:00>, new_state=<state climate.home_office_trv_thermostat=heat; hvac_modes=('off', 'heat_cool', 'cool', 'heat'), min_temp=7.0, max_temp=32.0, current_temperature=23.5, temperature=25.0, target_temp_high=None, target_temp_low=None, hvac_action=idle, system_mode=[4]/heat, occupied_cooling_setpoint=2600, occupied_heating_setpoint=2500, pi_heating_demand=0, friendly_name=Home Office TRV thermostat, supported_features=3 @ 2021-11-15T22:29:44.641139+00:00>>
2021-11-15 22:29:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=automation.turn_on_the_heat_in_the_morning_2, old_state=<state automation.turn_on_the_heat_in_the_morning_2=on; last_triggered=2021-11-15T22:29:43.865271+00:00, mode=single, current=1, id=office_heat_on, friendly_name=office: heat in the morning @ 2021-11-15T22:14:44.161207+00:00>, new_state=<state automation.turn_on_the_heat_in_the_morning_2=on; last_triggered=2021-11-15T22:29:43.865271+00:00, mode=single, current=0, id=office_heat_on, friendly_name=office: heat in the morning @ 2021-11-15T22:14:44.161207+00:00>>
2021-11-15 22:30:00 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event automation_triggered[L]: name=office: night mode, entity_id=automation.turn_off_the_heat_at_night, source=time>
2021-11-15 22:30:00 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=automation.turn_off_the_heat_at_night, old_state=<state automation.turn_off_the_heat_at_night=on; last_triggered=2021-11-14T22:30:00.005106+00:00, mode=single, current=0, id=office_heat_off, friendly_name=office: night mode @ 2021-11-15T22:14:44.162383+00:00>, new_state=<state automation.turn_off_the_heat_at_night=on; last_triggered=2021-11-15T22:30:00.004410+00:00, mode=single, current=1, id=office_heat_off, friendly_name=office: night mode @ 2021-11-15T22:14:44.162383+00:00>>

we’ll see how long that lasts

I’m back looking at this myself. I’m a complete noobe to ZHA and Drayton Wiser, but it just doesn’t seem like it wants to work at all properly?

I managed to un-pair the TRV, remove it from within ZHA and then re-pair it. FYI I’m using Sonoff Zigbee Bridge, flashed to Tasmota so can’t help with other USB devices some of you are using.

The Drayton is a little strange in that the control knob on the TRV has a + and -, and these seem to be fixed/set values for “low” and “high”. So if I use the control knob on the TRV, I can see this updating in HA. But if I attempt to “set” a value from within HA, the TRV is not honouring this value.

Also, if I change the mode to just heat-mode in HA, this still resets back to Heat/Cool mode.

I also had similar experience with these Drayton Wiser iTRVs. I have them connected to HA using ZigStar Stick v4 USB dongle.

I have initially connected these using ZigBee2mqtt. The experience was quite good. The only problem I noticed was that the setpoint change from HA was not always immediately communicated to the TRV. There is a discussion about that in Z2M ticket here: Add Drayton Wiser TRV · Issue #2521 · Koenkk/zigbee2mqtt · GitHub. That was not a big problem when changing setpoint manually, as it would most of the time be eventually set after waiting for a 10 or so seconds. However setpoint changes triggered by the GitHub - nielsfaber/scheduler-card: HA Lovelace card for control of scheduler entities would sometimes be missed.

That has pushed me to try these TRVs directly via ZHA. So first I reset all of the TRVs by holding the “-” switch through the blinking blue and blinking red. That sets it to factory defaults. Then short hold of “+” puts it to pairing mode. After connecting I had exactly the same experience as this:

Initially it was working very smooth. Setpoint changes immediately and always communicated from HA to TRV. However after two or so ours the heating mode automatically is set to heat/cool and the setpoint is changed to 20 degrees. The setpoint changes also stops being sent from HA to the TRV. However if I use “+” or “-” buttons on the TRV, setpoint change is immediately sent to HA.

I tried to relink one of the TRVs when the reset happened, and it was working correctly for a couple of hours until it reset again.

1 Like

Thanks for posting this up and sorry I’ve not spotted it at all! It’s all a little strange, it real seems like HA just don’t quite know what to make of the TRV. I’ve not had chance to work on this recently as my head started to hurt; but it really seams like ZHA don’t know how to work with the two possible setpoints in the TRV (the high and low) as it thinks it’s a cool and heat option.

My plan was to try and switch my Sonoff bridge back to Sonoff2Tasmota (module 75, Sonoff ZbBridge) and see if I could manually send commands to set the high and low temperatures? This proving that you can “talk” to the TRV, and that its more about ZHA just now knowing how to deal with it?

It all seems like a bit of a long shot, but I really like the look of the valves. Also, when they move slowly, they’re not really that loud, so I’d like to not have to buy a new one… The funny thing is, I was only experimenting with Zigebee and this TRV, I expected problems with the Sonoff Zigbee bit, not compatibility of the TRV. Especially since the Drayton is actually listed in the list of compatible devices!?

(headbang!) LOL :rofl:

Where have you found that Drayton is listed as compatible device?

Actually Drayton/Schneider does not list anywhere on the product details that it is a Zigbee device. It just says that it’s communication frequency is 2.4Ghz.

Otherwise, it should be considered what firmware version is the TRV is running. If you have a read on the Amazon reviews of the Drayton system, you would see, that they have made a few f*ck-ups during the years with the system. Some firmwares behaves differently than others. At least that is my personal experience as well. (I built a device handler for SmartThings’ Groovy based system, and never seen anything like that the device would reset back to a value. Neither to stop communication. But as I know the device does not support any heating modes neither. So the setpoint was always heating setpoint.)

I had looked at the above weblink before I purchased the unit, thinking the “confirmed working with” was a good indicator that all was well with ZHA?

I’ve not had any time to re-visit this yet. I’m guessing I need to drop my gateway back to “Sonoff ZbBridge” mode, so that I can try and figure out commands to send to the TRV to see what’s what. My assumption, just now, is if I can control the TRV via ZbBridge mode, then there is a problem with ZHA? Again, just an assumption, until I can get my teeth into it properly.

Oh, ok. That makes sense.

I am just talking from my experience. Wiser had a lot of firmware updates for the TRVs and they broke the normal Zigbee features. Plus they are not stating anywhere on the Wiser website or on the product packaging that the device is a Zigbee (certified) device. Their manual tell about the room thermostat that it is a Wifi device… Hahaha…

I’ve read recently a lot of comments where people were complaining about the TRVs to reset back to 20 Celsius after a while and they cannot control it. Either Z2M or ZHA.
I’ve never had this sort of experience, but I used them with SmartThings before and they were on a really old firmware version. (00000943) The current version what they push to the TRVs is 0000dac0.

I’ve just changed my setup and started to use them with the Wiser Hub and they work flawlessly. And the latest firmware makes them extremely quite.

1 Like

I didn’t realise about other TRVs had issues resetting back to 20c :disappointed_relieved: Could be a symptom of what I’m seeing with mine. I did recently update my Home Assistant, so maybe I should just try once gain and see what it does?

I don’t even know the version number of the software just now. It’s why I feel the only option I have just now is to switch modes on my bridge and see if I can run some zigbee (esk) commands to try and see what the TRV is doing, and if I can manually set it. That said, if I do need a software update, that’s going to be almost impossible for me to do without a hub and I really don’t want to buy one.

Darn it! I really should have gone with another TRV. Well you live and learn I suppose :man_shrugging:

Hi all,

Just seeing if anyone has had any break throughs with this? I’ve just setup one with zha using a USB adapter. I’m also seeing the setpoint reset after 1-2 hours. If anyone has any pointers on where to start looking, I’m more than happy to try and take a look.

Hi @Mbcx6ge2, the problem has remained the same, I’ve not noticed any changes with any of the recent updates to HA (though nothing was mentioned in their release notes to be fair).

I’ve not even attempted to delve into this further as of yet, as it’s really beyond my technical knowledge just now. :disappointed_relieved:

any updates ? I can pair the device via deconz w/o problem, but then it’s impossible to interact with the device.
If added to lovelace the command on thermostat card doens’t have any effect.

thx

1 Like

No updates from me on this at all. I still can’t get my head around why it just doesn’t want to work.

So for now, IMO, don’t buy one of these. I did see that Shelly are planning on releasing a wifi-based TRV, so maybe go look at this?

I’ve just started to just have a quick mess around and see if things have actually changed of late. So I’ll report back.

Out of interest, if you’ve got the full Drayton Wiser kit, with hub, there is a HACs plugin that seem to be working with it all. For me, I just bought the TRV and connected it via Sonoff Zigbee Bridge flashed to Tasmota in ZHA mode.

I have just upgraded to the latest version of Tasmota (on the bridge) and have just updated to the latest version of HA; so I’ll see if this actually changes anything and if the Drayton is actually responding as it should be.

So nope… I updated everything, set the temp to 14c (so 14c - 26c)and left it for a few hours. Just now it’s magically reset back to 20c and 26c, without me changing anything! Darn it.