Drayton Wiser / Schneider Electric iTRV Issues

I’ve got the same issues, a couple of TRVs and a Conbee2 using zigbee2mqtt. 2 hours after changing the set point, it reverts to 20c.

One thing to add to this is that I monitored the mqtt messages when the change happened and there were no messages sent from Home Assistant, so the change happens on the TRV.

So I’m guessing the standard (non-HA) mode of operation is to send an update to the TRVs (maybe every hour?) to let them know they should keep their set point.

So, my next step will be to see if I can set that up, either in HA or Z2M.

1 Like

It just changed after half an hour! This makes me think there’s some kind of internal clock in the TRV, but that seems really odd that it’s not holding the temp for longer. I think I need to do some more investigation, I wonder what logging I can get out of Z2M…

1 Like

So this is getting weirder…

Since the TRV reports up once a minute, I set an automation to respond to the mqtt message with an mqtt messge providing a new setpoint:

229 - id: '1646145341510'
230   alias: StudyTRVFix
231   description: ''
232   trigger:
233   - platform: mqtt
234     topic: zigbee2mqtt/HallTRV
235   condition: []
236   action:
237   - service: mqtt.publish
238     data:
239       topic: zigbee2mqtt/StudyTRV/set/occupied_heating_setpoint
240       payload: 27
241   mode: single
242

Now when posting this up I realised that I set it to monitor messages about the HallTRV rather the study one, but that doesn’t change my point, as it’s regularly reminding the system what the TRV setpoint should be.

When running this, I see the mqtt messages bounce back and forth, so it’s sending them, but after 2 hours, the setpoint changed back to 20C, then got bounced back up to 27C but the next mqtt message.

One of two things are happening here:

  1. Zigbee2MQTT is ignoring the setpoint message if I’m setting it to the current setpoint. This seems reasonable, if it knows that’s the state of the device, there’s no need to waste battery sending that message.
  2. The device is ignoring this anyway and changing it’s setpoint to 20C 2 hours after it was last changed. If this is the case, I don’t understand how the designers of these TRVs were expecting it to work.
1 Like

@madbobmcjim it’s really frustrating as I just not knowledgeable enough to delve deeper into all of this. I’m still loathed to buy a hub for the TRV, I only bought one of these TRVs as a “test”. So, so far the test has been a dud :rofl:

I’m just not knowledgeable enough to dig deep into all of this. I’ve tried to look over the logs, the same as yourself and it’s not really giving me any pointers at to what the problem is. I do think there is a secondary “network chatter” happening between the hub and the TRV.

@madbobmcjim keep up the good work :slightly_smiling_face:

I found some strange things in my HA logs…

  1. I changes the temperature through HA to 28c. This can be observed @ 2022-03-01 17:07:38 // temperature=28.0
  2. Waited for a few minutes and then observed the reference to “20c” in the logs (2022-03-01 17:09:02), yet in the HA GUI, I still saw the TRV set to 28c!

So my thought is, what are all of these attributes? And how do we set these and send the data to the TRV!?:

Attribute report 'Thermostat'[local_temp] = 2030
Attribute report 'Thermostat'[occupied_cooling_setpoint] = 2600
Attribute report 'Thermostat'[occupied_heating_setpoint] = 2000
Attribute report 'Thermostat'[system_mode] = SystemMode.Auto

Here is my fully log, take note of 17:07:38 and 17:09:02:

2022-03-01 17:07:38 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=climate, service=set_temperature, service_data=entity_id=climate.bedroom_room_56, temperature=28>
2022-03-01 17:07:38 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=climate.bedroom_room_56, old_state=<state climate.bedroom_room_56=heat; hvac_modes=['cool', 'heat', 'heat_cool', 'off'], min_temp=7, max_temp=35, fan_modes=['on', 'auto'], current_temperature=21.4, temperature=22.0, fan_mode=auto, battery_level=100, Vera Device Id=56, friendly_name=Bedroom Radiator, supported_features=9 @ 2022-03-01T16:52:19.714690+00:00>, new_state=<state climate.bedroom_room_56=heat; hvac_modes=['cool', 'heat', 'heat_cool', 'off'], min_temp=7, max_temp=35, fan_modes=['on', 'auto'], current_temperature=21.4, temperature=28.0, fan_mode=auto, battery_level=100, Vera Device Id=56, friendly_name=Bedroom Radiator, supported_features=9 @ 2022-03-01T16:52:19.714690+00:00>>
2022-03-01 17:07:42 DEBUG (MainThread) [bellows.ezsp.protocol] Send command readCounters: ()
2022-03-01 17:07:42 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 241 (readCounters) received: b'00000900a800030000000000000000000d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
2022-03-01 17:07:42 DEBUG (MainThread) [bellows.ezsp.protocol] Send command getValue: (<EzspValueId.VALUE_FREE_BUFFERS: 3>,)
2022-03-01 17:07:43 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 170 (getValue) received: b'0001f4'
2022-03-01 17:07:43 DEBUG (MainThread) [bellows.zigbee.application] Free buffers status EzspStatus.SUCCESS, value: 244
2022-03-01 17:07:43 DEBUG (MainThread) [bellows.zigbee.application] ezsp_counters: [MAC_RX_BROADCAST = 13, MAC_TX_BROADCAST = 4099, MAC_RX_UNICAST = 26966, MAC_TX_UNICAST_SUCCESS = 1656, MAC_TX_UNICAST_RETRY = 259, MAC_TX_UNICAST_FAILED = 3, APS_DATA_RX_BROADCAST = 13, APS_DATA_TX_BROADCAST = 13, APS_DATA_RX_UNICAST = 7075, APS_DATA_TX_UNICAST_SUCCESS = 282, APS_DATA_TX_UNICAST_RETRY = 0, APS_DATA_TX_UNICAST_FAILED = 0, ROUTE_DISCOVERY_INITIATED = 0, NEIGHBOR_ADDED = 0, NEIGHBOR_REMOVED = 0, NEIGHBOR_STALE = 0, JOIN_INDICATION = 1, CHILD_REMOVED = 0, ASH_OVERFLOW_ERROR = 0, ASH_FRAMING_ERROR = 0, ASH_OVERRUN_ERROR = 0, NWK_FRAME_COUNTER_FAILURE = 0, APS_FRAME_COUNTER_FAILURE = 0, UTILITY = 0, APS_LINK_KEY_NOT_AUTHORIZED = 0, NWK_DECRYPTION_FAILURE = 0, APS_DECRYPTION_FAILURE = 0, ALLOCATE_PACKET_BUFFER_FAILURE = 0, RELAYED_UNICAST = 0, PHY_TO_MAC_QUEUE_LIMIT_REACHED = 0, PACKET_VALIDATE_LIBRARY_DROPPED_COUNT = 0, TYPE_NWK_RETRY_OVERFLOW = 0, PHY_CCA_FAIL_COUNT = 81, BROADCAST_TABLE_FULL = 0, PTA_LO_PRI_REQUESTED = 0, PTA_HI_PRI_REQUESTED = 0, PTA_LO_PRI_DENIED = 0, PTA_HI_PRI_DENIED = 0, PTA_LO_PRI_TX_ABORTED = 0, PTA_HI_PRI_TX_ABORTED = 0, ADDRESS_CONFLICT_SENT = 0, EZSP_FREE_BUFFERS = 244]
2022-03-01 17:07:46 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=switch.floor_lamp_15, old_state=<state switch.floor_lamp_15=on; current_power_w=7.8, current_energy_kwh=4.38, Vera Device Id=15, friendly_name=Floor Lamp @ 2022-03-01T17:07:01.422221+00:00>, new_state=<state switch.floor_lamp_15=on; current_power_w=7.7, current_energy_kwh=4.38, Vera Device Id=15, friendly_name=Floor Lamp @ 2022-03-01T17:07:01.422221+00:00>>
2022-03-01 17:07:47 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'000401010202030001000091d4d1c922ffff0b0044001200000008001c00'
2022-03-01 17:07:47 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=513, sourceEndpoint=2, destinationEndpoint=3, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=145), 212, -47, 0x22c9, 255, 255, b'\x00D\x00\x12\x00\x00\x00\x08\x00\x1c\x00']
2022-03-01 17:07:47 DEBUG (MainThread) [zigpy.zcl] [0x22c9:2:0x0201] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=68 command_id=Command.Read_Attributes>
2022-03-01 17:07:47 DEBUG (MainThread) [zigpy.zcl] [0x22c9:2:0x0201] ZCL request 0x0000: [[18, 0, 8, 28]]
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040103fe01010001000092d8d2c922ffff3c1c5e10450a200042334144432c313433382c313433362c312c3230332c2d33323736382c323030302c302c302c3130302c3230332c3230332c323133'
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=65027, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=146), 216, -46, 0x22c9, 255, 255, b'\x1c^\x10E\n \x00B3ADC,1438,1436,1,203,-32768,2000,0,0,100,203,203,213']
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9: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=69 command_id=Command.Report_Attributes>
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0xfe03] ZCL request 0x000a: [[Attribute(attrid=32, value=<TypeValue type=CharacterString, value=ADC,1438,1436,1,203,-32768,2000,0,0,100,203,203,213>)]]
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0xfe03] Attribute report received: 32=ADC,1438,1436,1,203,-32768,2000,0,0,100,203,203,213
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040103fe01010001000093d8d2c922ffff291c5e10460a20004220414c472c362c312c3230302c3230332c2d382c302c302c302c302c302c313030'
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=65027, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=147), 216, -46, 0x22c9, 255, 255, b'\x1c^\x10F\n \x00B ALG,6,1,200,203,-8,0,0,0,0,0,100']
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9: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=70 command_id=Command.Report_Attributes>
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0xfe03] ZCL request 0x000a: [[Attribute(attrid=32, value=<TypeValue type=CharacterString, value=ALG,6,1,200,203,-8,0,0,0,0,0,100>)]]
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0xfe03] Attribute report received: 32=ALG,6,1,200,203,-8,0,0,0,0,0,100
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'000401050b01010001000094d4d1c922ffff0b18470a1c0120e41d0128d5'
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=2821, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=148), 212, -47, 0x22c9, 255, 255, b'\x18G\n\x1c\x01 \xe4\x1d\x01(\xd5']
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9: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=71 command_id=Command.Report_Attributes>
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0x0b05] ZCL request 0x000a: [[Attribute(attrid=284, value=<TypeValue type=uint8_t, value=228>), Attribute(attrid=285, value=<TypeValue type=int8s, value=-43>)]]
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0x0b05] Attribute report received: last_message_lqi=228, last_message_rssi=-43
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'000401050b01010001000095d4d1c922ffff0a1c5e10480a01e0210000'
2022-03-01 17:07:49 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=2821, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=149), 212, -47, 0x22c9, 255, 255, b'\x1c^\x10H\n\x01\xe0!\x00\x00']
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9: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=72 command_id=Command.Report_Attributes>
2022-03-01 17:07:49 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0x0b05] ZCL request 0x000a: [[Attribute(attrid=57345, value=<TypeValue type=uint16_t, value=0>)]]

2022-03-01 17:08:54 DEBUG (MainThread) [bellows.zigbee.application] ezsp_counters: [MAC_RX_BROADCAST = 13, MAC_TX_BROADCAST = 4104, MAC_RX_UNICAST = 27049, MAC_TX_UNICAST_SUCCESS = 1659, MAC_TX_UNICAST_RETRY = 259, MAC_TX_UNICAST_FAILED = 3, APS_DATA_RX_BROADCAST = 13, APS_DATA_TX_BROADCAST = 13, APS_DATA_RX_UNICAST = 7087, APS_DATA_TX_UNICAST_SUCCESS = 283, APS_DATA_TX_UNICAST_RETRY = 0, APS_DATA_TX_UNICAST_FAILED = 0, ROUTE_DISCOVERY_INITIATED = 0, NEIGHBOR_ADDED = 0, NEIGHBOR_REMOVED = 0, NEIGHBOR_STALE = 0, JOIN_INDICATION = 1, CHILD_REMOVED = 0, ASH_OVERFLOW_ERROR = 0, ASH_FRAMING_ERROR = 0, ASH_OVERRUN_ERROR = 0, NWK_FRAME_COUNTER_FAILURE = 0, APS_FRAME_COUNTER_FAILURE = 0, UTILITY = 0, APS_LINK_KEY_NOT_AUTHORIZED = 0, NWK_DECRYPTION_FAILURE = 0, APS_DECRYPTION_FAILURE = 0, ALLOCATE_PACKET_BUFFER_FAILURE = 0, RELAYED_UNICAST = 0, PHY_TO_MAC_QUEUE_LIMIT_REACHED = 0, PACKET_VALIDATE_LIBRARY_DROPPED_COUNT = 0, TYPE_NWK_RETRY_OVERFLOW = 0, PHY_CCA_FAIL_COUNT = 81, BROADCAST_TABLE_FULL = 0, PTA_LO_PRI_REQUESTED = 0, PTA_HI_PRI_REQUESTED = 0, PTA_LO_PRI_DENIED = 0, PTA_HI_PRI_DENIED = 0, PTA_LO_PRI_TX_ABORTED = 0, PTA_HI_PRI_TX_ABORTED = 0, ADDRESS_CONFLICT_SENT = 0, EZSP_FREE_BUFFERS = 244]
2022-03-01 17:08:56 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=switch.floor_lamp_15, old_state=<state switch.floor_lamp_15=on; current_power_w=7.7, current_energy_kwh=4.38, Vera Device Id=15, friendly_name=Floor Lamp @ 2022-03-01T17:07:01.422221+00:00>, new_state=<state switch.floor_lamp_15=on; current_power_w=7.8, current_energy_kwh=4.38, Vera Device Id=15, friendly_name=Floor Lamp @ 2022-03-01T17:07:01.422221+00:00>>
2022-03-01 17:09:00 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.schneider_electric_itrv_285c74fe_basic_rssi, old_state=<state sensor.schneider_electric_itrv_285c74fe_basic_rssi=-47; friendly_name=Schneider Electric iTRV 285c74fe basic rssi @ 2022-03-01T17:06:38.400772+00:00>, new_state=<state sensor.schneider_electric_itrv_285c74fe_basic_rssi=-49; friendly_name=Schneider Electric iTRV 285c74fe basic rssi @ 2022-03-01T17:09:00.402568+00:00>>
2022-03-01 17:09:00 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.schneider_electric_itrv_285c74fe_basic_lqi, old_state=<state sensor.schneider_electric_itrv_285c74fe_basic_lqi=212; friendly_name=Schneider Electric iTRV 285c74fe basic lqi @ 2022-03-01T17:06:38.401330+00:00>, new_state=<state sensor.schneider_electric_itrv_285c74fe_basic_lqi=204; friendly_name=Schneider Electric iTRV 285c74fe basic lqi @ 2022-03-01T17:09:00.402854+00:00>>
2022-03-01 17:09:02 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040101020101000100009dc8cec922ffff1a18500a000029ee07110029280a120029d0071c00300108002000'
2022-03-01 17:09:02 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=513, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=157), 200, -50, 0x22c9, 255, 255, b'\x18P\n\x00\x00)\xee\x07\x11\x00)(\n\x12\x00)\xd0\x07\x1c\x000\x01\x08\x00 \x00']
2022-03-01 17:09:02 DEBUG (MainThread) [zigpy.zcl] [0x22c9: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=80 command_id=Command.Report_Attributes>
2022-03-01 17:09:02 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0x0201] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2030>), Attribute(attrid=17, value=<TypeValue type=int16s, value=2600>), Attribute(attrid=18, value=<TypeValue type=int16s, value=2000>), Attribute(attrid=28, value=<TypeValue type=enum8, value=enum8.undefined_0x01>), Attribute(attrid=8, value=<TypeValue type=uint8_t, value=0>)]]
2022-03-01 17:09:02 DEBUG (MainThread) [zigpy.zcl] [0x22c9:1:0x0201] Attribute report received: local_temp=2030, occupied_cooling_setpoint=2600, occupied_heating_setpoint=2000, system_mode=1, pi_heating_demand=0
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x22C9:1:0x0201]: Attribute report 'Thermostat'[local_temp] = 2030
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x22C9:1:0x0201]: Attribute report 'Thermostat'[occupied_cooling_setpoint] = 2600
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x22C9:1:0x0201]: Attribute report 'Thermostat'[occupied_heating_setpoint] = 2000
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x22C9:1:0x0201]: Attribute report 'Thermostat'[system_mode] = SystemMode.Auto
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x22C9:1:0x0201]: Attribute report 'Thermostat'[pi_heating_demand] = 0
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.schneider_electric_itrv_285c74fe_thermostat: Attribute 'local_temp' = 2030 update
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=climate.schneider_electric_itrv_285c74fe_thermostat, old_state=<state climate.schneider_electric_itrv_285c74fe_thermostat=heat_cool; hvac_modes=('off', 'heat_cool', 'cool', 'heat'), min_temp=7.0, max_temp=32.0, current_temperature=20.2, 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=Schneider Electric iTRV 285c74fe thermostat, supported_features=3 @ 2022-02-28T23:05:03.554031+00:00>, new_state=<state climate.schneider_electric_itrv_285c74fe_thermostat=heat_cool; hvac_modes=('off', 'heat_cool', 'cool', 'heat'), min_temp=7.0, max_temp=32.0, current_temperature=20.3, 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=Schneider Electric iTRV 285c74fe thermostat, supported_features=3 @ 2022-02-28T23:05:03.554031+00:00>>
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.schneider_electric_itrv_285c74fe_thermostat: Attribute 'occupied_cooling_setpoint' = 2600 update
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.schneider_electric_itrv_285c74fe_thermostat: Attribute 'occupied_heating_setpoint' = 2000 update
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.schneider_electric_itrv_285c74fe_thermostat: Attribute 'system_mode' = SystemMode.Auto update
2022-03-01 17:09:02 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.schneider_electric_itrv_285c74fe_thermostat: Attribute 'pi_heating_demand' = 0 update


It’s all a little crazy, what and where are these “attributes”? :upside_down_face:

This article is an interesting read, seems a similar problem to what we’re facing?

I’m going to alter the state attributes for the TRV, so it should default to 19c rather than 20c, it’ll be a while before I can observe if the reset take affect.

Ok, so I attempted to “set state” the occupied_heating_setpoint to 1900, but when I do this and refresh my browser, the value is changed back to 2000. Which is a bit of a pain.

On your first question, I hear the motor turn when I alter the setpoint, so I’m happy that the TRV is responding to the requests.

The problem with your setup is that you’ve got a heating setpoint and a cooling setpoint, and moving the slider seems to be altering the cooling setpoint. These should be for AC systems rather than TRVs, so I’m not sure why ZHA does this. I had this when I was originally on ZHA, but the cooling setpoint vanished when I moved everything to Z2M.

Also, I’ve ordered a second Zigbee device to try and sniff the packets going over the air, so hopefully that’ll show me what’s going on.

1 Like

After tweaking my automation it seemed to hold for about 5 hours. So I’m now going to leave it overnight to see if that’s all good.

If that works, then I’m going to try and make it generic so it works for all TRVs as long as they follow the same naming convention.

ok, it’s been holding steady for nearly 12 hours now, so the workaround seems to be ok. The workaround code currently looks like this:

alias: StudyTRVFix
description: ''
trigger:
  - platform: mqtt
    topic: zigbee2mqtt/StudyTRV
condition: []
action:
  - service: mqtt.publish
    data:
      topic: '{{ trigger.topic }}/set/occupied_heating_setpoint'
      payload_template: '{{ state_attr(''climate.studytrv'', ''occupied_heating_setpoint'') }}'
mode: single

I need to see if I can make it trigger on any TRV update, not just the study one, and then see if I can pass the TRV that triggered it into the payload template.

1 Like

I’m not hot on these things, but are you just reposting back values once HA receives mqtt data/any data from the TRV?

I’m using ZHA and not mqtt, and have been banging my head with this. To the point I’ve ordered one of the new Shelly TRVs :cry:

Yes, so whenever it receives an MQTT message from zigbee2mqtt for that TRV it sends an update back resetting the temperature.

Every two hours I hear the TRV close when it resets to 20C then about a minute later it opens again.

Also, I’ve opened an issue with the zigbee2mqtt project here: Wiser TRv resets to 20c after 2 hours · Issue #11758 · Koenkk/zigbee2mqtt · GitHub

1 Like

Hopefully the zigbee2mqtt people can get to the bottom of it. It drove me crazy a few nights back as the bedroom (where the TRV lives) was just too warm! So at 3:30am I just had enough of constant resetting the TRV and just ordered a new TRV… I know, I know, I should have taken your advice and just made a routine to just set the temp whenever HA sees it change back to 20c. I just lost it and bought a new one LOL

Took a little while but fitted it today and had loads of problems with the Shelly app, but finally have it all installed in HA. It’s such a shame as I really liked the Drayton, not too noisy and a simple twist to just have a set to “min” or “max”.

Hi all - don’t suppose anyone managed to get to the bottom of the issue? Got my first Wiser iTRV yesterday and have been seeing the same reset to “20-26” temperature range issues that have been reported here. Such a shame as I was going to go all in on Wiser if this worked but it looks as though I just wasted £50!

Sadly no… I gave up after my last post, with the idea of looking at it again as ZHA matured. But have not gone back :cry:

TLDR: my post/comment is not a fix, but my experience so far using these TRVs

Hi All - I’m late to the game on this one - 2/3-ish years ago, I bought a complete set of the Drayton wiser kit, to go with the new boiler I had at the time (I splashed, as I hadn’t had a working boiler for 2 years prior to that!) :slight_smile:

I’m heavily invested in this, as I had 8x Drayton Wiser (/Schneider Electric) TRVs+ the Drayton hub (will not use now) and a room thermostat too.

Due to life etc. I never set anything up originally, and only tried one of the TRVs for luck the other day, using ZHA and a sonoff wifi/igbee bridge. - I remembered that you could get a drayton plug to extend the “wifi” network , and thought - ooh… maybe that’s Zigbee too… :slight_smile:

I found the compatibility page, showing that the TRV was “tested working” with both ZHA and Zigbee2MQTT, so I thought it wouldn’t hurt to try :slight_smile:

The TRV paired easily with ZHA, but didn’t appear to be responsive, either by using the twist control, or by using the suggested Lovelace dashboard card thingie (whatever they are called) :slight_smile:

I have had some issues with ZHA compatibility , and was already planning on moving to Zigbee2MQTT, so I deleted the TRV, and re-added to Zigbee2MQTT (the latter is connected via a sonoff zigbee 3 USB dongle)

It re-paired easily, and had a slightly different lovelace card , as noted above - the ZHA one had a low and high temp selector, and the Zigbee2MQTT one, had just a single temp setpoint.

the behaviour in Zigbee2MQTT was almost identical though. (To that when connected via ZHA)

To ensure it was not a duff TRV / battery issue, I fired up and paired a second TRV, with new batteries , and had the same result.

So mine seems to be slightly different - I can see the logs saying the TRV is sending back info, and it seems to have the current temperature ok. if I manually twist the control on the TRV, I can sometimes make the lovelace card change between 18’C (lowest) and 22’C (highest) , but nothing outside these values.

When I change this using the twist control, it does not affect the TRV radiator valve push pin at all , it only seems to send to HA via MQTT

To me this seems correct, as you wouldn’t want local over-ride, as it would potentially cause HA to tell the TRV to revert to the setting it thinks the TRV should be at.

When I change the control / set temperature on the lovelace card, for either TRV, I cannot get it to change the radiator valve push pin.

When I paired the TRVs, at some point either before or after that process, the radiator valve push pin did move , and randomly, I have heard one or the other TRV buzz, where I think it has fractionally moved the radiator pushpin, but not to any significant amount, that would make a change when is service.

It would be nice to make a work around to use these (especially as I have 8 TRVs!) , but I’d prefer if there was a software upgrade to fix it, as from reading above, it might be that these are not 100% zigbee compliant, and I’d rather not have any devices like that , if I have a choice :slight_smile:

As a side note, the wireless room thermostat that came with all this kit, seems to work ok, at least in terms that it sends back the correct temperature, and humidity :slight_smile:

Hope this helps :slight_smile:

Wire a power cable to the Hub, fire it up and pair all your TRVs and Room Thermostat to that. There is an integration for the Drayton Wiser kit. You will be able to control all the TRVs and would make more sense than playing with an incompatible ZHA/Z2M integration.

FYI when you twist the knob the valve boosts, it send a message that it has been boosted up or down. It sets the target temperature to current temperature +/-2 Celsius. And should open or close the valve accordingly.

Your TRVs must be on a firmware where the valves required a response from the Hub to change the state of the valve.

The Drayton Wiser integration’s topic:

A fair note, the Wiser Hubs have an issue as they loose wifi connections recently, but Wiser is looking at the issue currently.

PS.: I went down the same route, first developing a Device Handler in SmartThings then moving to Z2M. But at the end, I fired up the Hub and I do not regret it at all. It works really well. And it does not Matter (:wink:) that it is the 4th Zigbee network in the House. :rofl:

Hiya Gábor, thanks for this :slight_smile:

I might have to do that, as suggested, use the integration. I’m generally not keep on most integrations, as I like to keep everything local and off-net, and I presume the Drayton hub and app software, is cloud controlled?

I’ve got a lot of network congestion issues too - I’m in a corner plot where I live, and have five neighbours all blasting out Wifi on 2.4Ghz. I have to run 3 Wifi APs myself on different channels to get reliable signal to my wall power sockets, which are Wifi controlled too. I have dead spots for Zigbee at the moment already, so firing up another broadcasting device does make me worry a bit :wink: :slight_smile:

Really appreciate the info on the TRVs - that makes a lot more sense now , to what I am seeing :slight_smile:

In case if helps, the current spec of my TRVs is:

Model: WV704R0A0902
Firmware: ad3e958

(values taken from what is being reported to Zigbee2MQTT) :slight_smile:

Thanks :slight_smile:

The Hub and app uses the cloud when you away from home and for firmware updates, but the integration is completely local the same way as the app communicates with the Hub on your local network.

The latest TRv firmware 0000dac0 from the Wiser app. I don’t know how is that compares to Z2M, but it has been released somewhere at the beginning of last winter as I can remember, or just before that.

Hi Gábor - Cool , thanks very much again for helping answer my questions :slight_smile: This has definitely given me something to think about :slight_smile: :slight_smile:

1 Like

Hi all - we purchased a few of these after seeing them recommended on Reddit and available from a local seller.

Is there currently a way to get them working inside of HA? It’s almost two years since this thread was created so I just wanted to see if there was any progress. We currently use ZHA.

Many thanks - any help would be much appreciated.
Dan

With the intention of trying to figure out this ‘reset to 20°C after two hours’ issue, here’s what I’ve found.

I’ve got 3 x WV704R0A0902 TRVs bought as a pack running firmware f60f643; no Wiser Hub. These have worked well for about two months but, after a hard reset, 1 x TRV has started automatically changing its setpoint to 20°C. The other two TRVs still work as expected. I’m therefore in a privileged position to be able to compare TRVs with and without issues.

Here’s what I’ve discovered in Z2M (apologies: I know this thread is tagged ZHA but it appears the issue occurs across platforms):

(As a new user I can only post one image - so apologies for the description where a picture should be!)

1 - Fewer clusters are available to bind
Working TRVs:

Under Device -> Bind -> Clusters there are tickboxes for:
* genBasic
* Ota
* genPollCtrl
* PowerCfg
* haDiagnostic
* hvacThermostat

Failing TRV:

Under Device -> Bind -> Clusters there are tickboxes for:
* genBasic
* Ota
* genPollCtrl

2 - Nothing to report
Working TRVs:

Failing TRV:
Compared to the above, only the empty line with 'Select endpoint' is visible.

3 - Fewer State attributes
Working TRVs:

{
    "ADC": "1619,1619,2,134,-32768,1100,0,0,100,135,135,142",
    "ALG": "649,1,110,134,-24,0,0,163,8058,0,100",
    "MOT": "CloseValve",
    "battery": 100,
    "boost": "Up",
    "keypad_lockout": "unlock",
    "linkquality": 255,
    "local_temperature": 13.4,
    "occupied_heating_setpoint": 11,
    "pi_heating_demand": 0,
    "voltage": 3,
    "running_state": null
}

Failing TRV:

{
    "ADC": "1538,1540,1,166,-32768,1500,0,162,100,166,165,166",
    "ALG": "4,1,150,166,-10,-15,162,15,838,3,100",
    "MOT": "CloseValve",
    "battery": 100,
    "linkquality": 191,
    "local_temperature": 16.6,
    "occupied_heating_setpoint": 15, #This will reset to 20
    "pi_heating_demand": 3,
    "voltage": 3,
    "running_state": null
}

What I’ve tried

  • Complete reset of TRV / force remove from Z2M / leave batteries out for 48+ hours
  • Manually setting the keypad_lockout attribute through Z2M’s Dev Console (seemed hopeful but ultimately fruitless)

What I’m wondering

  • Why the Binding and Reporting is different?
  • Whether there is some artefact left either in HA / Z2M or the TRV itself which prevents a ‘clean’ installation / pairing, leading to the different Binding and Reporting? Would the same issue occur on a fresh HA installation, for instance? I don’t have a spare to test, unfortunately.
  • Whether it’s possible to force all the attributes in the State report manually (TBC)?

I’ll keep playing and will report with anything useful. If you have any ideas you’d like tested, please suggest them.

1 Like