zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
737 stars 676 forks source link

[Device Support Request] TCP-Smart Zigbee TRV Radiator Valve (Tuya/Zigbee Quirks) [Old Integration Supported, testing/debugging new integration] #1180

Closed accessiblepixel closed 2 years ago

accessiblepixel commented 2 years ago

Edit: to make this make a bit more sense.

The old integration method and quirks file works with the TCP-Smart Zigbee TRV Valve, which I've added to my github at https://github.com/accessiblepixel/TCP-Smart-TRV/blob/master/ts0601_trv.py

To get this valve working with the old integration, create a folder in your config directory called custom_zha_quirks and upload the ts0601_trv.py there.

Then edit your main configuration.yaml to include zha: custom_quirks_path: /config/custom_zha_quirks/

and restart, and add/pair the device as usual.

Later on in the thread we are testing the 'new' integration and trying to get support for all features of the device :)

Original post is as follows:

Is your feature request related to a problem? Please describe. I cannot pair and access features of a TCP-Smart ZigBee TRV Valve. Originally it came with a Tuya compatible WiFi gateway, but I've since picked up a CC2531 USB Zigbee Gateway, but when I try and find the device in home assistant it says This Device Has No Entities.

Describe the solution you'd like It looks like it's very similar to a model listed on https://zigbee.blakadder.com/Alecto_SMART-HEAT10.html it physically looks the same.

*Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add { "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=82, maximum_incoming_transfer_size=255, server_mask=11264, maximum_outgoing_transfer_size=255, descriptor_capability_field=<DescriptorCapability.NONE: 0>, allocate_address=True, is_alternate_pan_coordinator=False, is_coordinator=False, is_end_device=True, is_full_function_device=False, is_mains_powered=False, is_receiver_on_when_idle=False, is_router=False, is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0000", "in_clusters": [ "0x0000", "0x0003" ], "out_clusters": [ "0x0003", "0x0019" ] } }, "manufacturer": "_TYST11_czk78ptr", "model": "zk78ptr", "class": "zigpy.device.Device" }

Additional context If I have put this in the wrong place, please move it to the correct one. I'm very new to zigbee integration but if you need any other logfiles, please let me know. I think one of the quirks that exists for similar devices might work for this one, but it's all a bit beyond me. I hope someone can help, I'd like to move my thermostats away from the Tuya Zigbee gateway to local control with Home Assistant.

Kind regards, Jessica

Edit: Here's a link to the product page on Amazon (UK) for the valve itself https://www.amazon.co.uk/gp/product/B0898FVKMT and here's a link to the first device you buy that comes with the gateway that it uses: https://www.amazon.co.uk/gp/product/B0898CHSZS

It appears to be Zigbee, and I can search and find it with ZHA in Home Assistant, just no controls are created. I've been trying to look at other quirks, and since it's similar to other devices that are the same, it could just be a case of adding the IDs to one of them (but I'm just guessing. This is all new to me!)

jacekk015 commented 1 year ago

@accessiblepixel From screenshot you've posted you are using some old quirk - I assume. Remove old quirk from quirks folder and replace it with the one below. Restart of HA is mandatory. ts0601_trv_siterwell.py.zip

accessiblepixel commented 1 year ago

From screenshot you've posted you are using some old quirk - I assume.

@jacekk015 Nope. I removed all the quirks I originally installed when first asking for device support. It's using whatever is included with mainlined Home Assistant's ZHA integration (edit: now and has been for months). I just checked config/custom_zha_quirks and besides an old pycache folder, there's nothing in there.

Is the linked quirk more up to date than what's included in HA Core 10.1?

Edit 2: Removed the pycache folder and there's no difference. I've still got two thermostats I haven't gotten around to moving over to HA yet, so I'll try adding those to see if they "identify" with different info, but I haven't had chance to plug/unplug stuff yet and well everything works okay enough, battery status isn't majorly critical, it's more an annoyance. I'll try getting the discovery stuff @MattWestb posted about when I swap the last two over

jacekk015 commented 1 year ago

Put above quirk to the quirk folder and restart HA

accessiblepixel commented 1 year ago

Ok. Done. I have more binary switches that have appeared, and there's now a "temperature correction" slider, power still says unknown but I'll watch it over the next few hours and see what it does. x

jacekk015 commented 1 year ago

Need to see some logs from HA to see what's going on there. Best would be to get Debug level logs from pairing, and 5 minutes after.

Add to configuration.yaml

logger:
  default: info
  logs:
    homeassistant.components.zha: debug
    zigpy: debug
    zhaquirks: debug
accessiblepixel commented 1 year ago

Need to see some logs

Here are the logs you requested @jacekk015

Edit: Wrong logs removed.

I've also noticed since running the quirk file you provided me, none of the temperature recordings are appearing now for any of them, but I have found out some of the "switch options", one of them is "Enable Window Open Detection", "Child Lock", and "Re-run valve positioning test". The "Identify" button doesn't cause the device to identify itself (In other zigbee devices usually that causes an LED on it to flash to let you know which device it is).

Also battery reporting is still 'unknown %'

Hopefully this information is useful.

Kind regards, Jessica

jacekk015 commented 1 year ago

Need HA full logs from pairing process and min 5 minutes after. Thoose seems to be pairing window logs. Also debug level needs to be enabled first.

Logs should look like those from link:

https://github.com/zigpy/zha-device-handlers/issues/1159#issuecomment-1279352203

accessiblepixel commented 1 year ago

Need HA full logs from pairing process and min 5 minutes after. Thoose seems to be pairing window logs. Also debug level needs to be enabled first.

Logs should look like those from link:

#1159 (comment)

Ah. You were not clear about that... but yes, here they are.

Couldn't post them here, as they were too long. I've linked them here instead with a week's expiry: https://pastecry.pt/X5Am5x#Up-Pyt_Num%5EEt8Zur3Yg6Uc8Em

I did not know what information I could trim to make them smaller, and there's no doubt information about other components in there...

jacekk015 commented 1 year ago
  1. As for battery - someone earlier made assumption that battery level is sent using 0x0215 attribute - I don't see any of that in the communication process, so that's why level is unknown. Maybe he was wrong or you have a bit different device. SITERWELL_BATTERY_ATTR = 0x0215 # [0,0,0,98] battery charge
  2. For temps - I see some strange errors, but code is based on my own devices so it should be working OK.

To be sure - you are using latest HA version with all updates?

Need some time to debug this. Do NOT ever trim any data - it's possible that you cut out lines needed to see communication messages.

accessiblepixel commented 1 year ago

I'm running 2022.10.1 at the minute, I haven't upgraded to 2022.10.4 yet, and there's an update to HA OS 9.2.

I'll do that now, and I'll do another pair/sync process and post the entire logfile from that process, since when I added the device HA was already up and running (It's used by us for a lot of stuff so... Kinda have to plan times for it to be offline.)

Standby.

Okay, I fully upgraded to the latest Home Assistant (2022.10.4) and the latest HA OS (9.2) and manage to capture a cleaner log of the pairing and the 5 minutes after that. I've added it here:

https://pastecry.pt/ziiWzq#Muw2See7Ug7Buv8Eg4Teh4Ut8Es

@jacekk015 should make it a little bit easier, rather than a log that has a bunch of unrelated stuff in it. I cleared the log, then started the pairing process, and waited to get the next 5 minutes.

jacekk015 commented 1 year ago

@accessiblepixel Try version below - temps should be OK. ts0601_trv_siterwell.py.zip

@MattWestb I'm pretty sure you have those TRVs Could you put your logs here - we are searching for 0x0215 attribute which I don't see in the logs above. That's battery level value

MattWestb commented 1 year ago

I was moving my test TRV to tuya / LIDL ZBGW for cecking for updates but was not any :-(( But then adding it back i was getting:

2022-10-16 12:33:53.309 DEBUG (MainThread) [zhaquirks.tuya] [0x3489:1:0xef00] Received value [0, 0, 0, 57] for attribute 0x0215 (command 0x0001)
2022-10-16 12:34:33.739 DEBUG (MainThread) [zhaquirks.tuya] [0x3489:1:0xef00] Received value [0, 0, 0, 56] for attribute 0x0215 (command 0x0001)

= 65% battery in ZHA.

Idont know how oft its reporting but it not oft so best is removing the battery and putting it back so the MCU is sending all DPs its knowing.

By the way great welcome back Jacekk !!!

accessiblepixel commented 1 year ago

I did take batteries out before I paired it, but do you want me to remove batteries while it's connected to the zigbee network? Just kinda "restart" it, to see if we get those attributes that Jacekk is looking for?

Sorry I'm not very good with this stuff. I've learnt a lot about ZHA just from this thread mind, so yeah. If that would be useful, I'll clear the log, then pop the batteries, and plug them back in and grab the next 5 minutes :)

Gonna try the linked quirk now, will let you know (either edit if there's no further posts to try and cut down on notification spam or new post if there's been a reply)

MattWestb commented 1 year ago

TRV shall being in the network so it can sending commands. Take the battery out and wait some seconds so its dead and putting it back. If all is working OK is the MCU sending all its DPs and we can mapping them to right functions in the system. Post the debug log so @jacekk015 can looking in it for DPs the device is using.

accessiblepixel commented 1 year ago

Okay.

I'm pleased to report @jacekk015 that the temperature reporting is working with the new version you added :) I'm going to clear the log now and do the battery reset as @MattWestb has suggested, and I'll keep 5 minutes of the logs.

One moment please :)

2022-10-17 10:40:50.818 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:40:50.818 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:40:59.225 WARNING (MainThread) [homeassistant.components.sensor] Updating hp_ilo sensor took longer than the scheduled update interval 0:00:30
2022-10-17 10:41:03.696 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xEF64](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:41:03.696 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xEF64](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:13.669 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x27CD](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:41:13.669 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x27CD](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:18.370 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x2173](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:41:18.370 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x2173](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:23.193 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC9FD](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:41:23.194 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC9FD](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:30.664 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xAD43](zk78ptr): Device seen - marking the device available and resetting counter
2022-10-17 10:41:30.664 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xAD43](zk78ptr): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:30.944 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x778F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:41:30.944 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x778F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:32.748 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x6894](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:41:32.748 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x6894](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:36.668 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF94F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:41:36.668 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF94F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:36.919 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x02BF](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:41:36.919 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x02BF](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:41.488 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC52F](zk78ptr): Device seen - marking the device available and resetting counter
2022-10-17 10:41:41.489 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC52F](zk78ptr): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:48.728 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x430F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:41:48.728 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x430F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:57.818 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:41:57.818 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:41:59.227 WARNING (MainThread) [homeassistant.components.sensor] Updating hp_ilo sensor took longer than the scheduled update interval 0:00:30
2022-10-17 10:42:18.697 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xEF64](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:42:18.698 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xEF64](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:24.195 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC9FD](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:42:24.195 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC9FD](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:27.476 INFO (MainThread) [zigpy_znp.zigbee.application] TC device join: ZDO.TCDevInd.Callback(SrcNwk=0xC52F, SrcIEEE=ec:1b:bd:ff:fe:87:25:ec, ParentNwk=0x2173)
2022-10-17 10:42:27.478 INFO (MainThread) [zigpy.application] Device 0xc52f (ec:1b:bd:ff:fe:87:25:ec) joined the network
2022-10-17 10:42:27.527 INFO (MainThread) [zigpy_znp.zigbee.application] TC device join: ZDO.TCDevInd.Callback(SrcNwk=0xC52F, SrcIEEE=ec:1b:bd:ff:fe:87:25:ec, ParentNwk=0x2173)
2022-10-17 10:42:27.528 INFO (MainThread) [zigpy.application] Device 0xc52f (ec:1b:bd:ff:fe:87:25:ec) joined the network
2022-10-17 10:42:27.657 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.Broadcast: 15>, address=<BroadcastAddress.ALL_ROUTERS_AND_COORDINATOR: 65532>), dst_ep=0, source_route=None, extended_timeout=False, tsn=129, profile_id=0, cluster_id=19, data=Serialized[b'\x81/\xc5\xec%\x87\xfe\xff\xbd\x1b\xec\x80'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2022-10-17 10:42:27.657 INFO (MainThread) [zigpy.application] Device 0xc52f (ec:1b:bd:ff:fe:87:25:ec) joined the network
2022-10-17 10:42:27.658 DEBUG (MainThread) [zigpy.zdo] [0xc52f:zdo] ZDO request ZDOCmd.Device_annce: [0xC52F, ec:1b:bd:ff:fe:87:25:ec, 128]
2022-10-17 10:42:34.749 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x6894](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:42:34.749 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x6894](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:35.492 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x00\x01\x00\x02\x01\x01\x00\x01\x01'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=68, rssi=None)
2022-10-17 10:42:35.493 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x00\x01\x00\x02\x01\x01\x00\x01\x01'
2022-10-17 10:42:35.494 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=0, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:35.495 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=2, command_id=257, function=0, data=[1, 1]))
2022-10-17 10:42:35.496 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 0): get_data(param=Command(status=0, tsn=2, command_id=257, function=0, data=[1, 1]))
2022-10-17 10:42:35.496 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0101 (command 0x0001)
2022-10-17 10:42:35.497 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=0, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:35.498 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:36.555 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x01\x01\x00\x03\r\x05\x00\x01\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=65, rssi=None)
2022-10-17 10:42:36.555 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x01\x01\x00\x03\r\x05\x00\x01\x00'
2022-10-17 10:42:36.556 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=1, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:36.557 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=3, command_id=1293, function=0, data=[1, 0]))
2022-10-17 10:42:36.558 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 1): get_data(param=Command(status=0, tsn=3, command_id=1293, function=0, data=[1, 0]))
2022-10-17 10:42:36.558 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x050d (command 0x0001)
2022-10-17 10:42:36.560 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=1, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:36.561 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:36.665 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xAD43](zk78ptr): Device seen - marking the device available and resetting counter
2022-10-17 10:42:36.666 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xAD43](zk78ptr): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:37.539 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x02\x01\x00\x03\r\x05\x00\x01\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=65, rssi=None)
2022-10-17 10:42:37.540 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x02\x01\x00\x03\r\x05\x00\x01\x00'
2022-10-17 10:42:37.541 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=2, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:37.543 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=3, command_id=1293, function=0, data=[1, 0]))
2022-10-17 10:42:37.543 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 2): get_data(param=Command(status=0, tsn=3, command_id=1293, function=0, data=[1, 0]))
2022-10-17 10:42:37.543 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x050d (command 0x0001)
2022-10-17 10:42:37.544 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=2, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:37.545 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:38.580 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x03\x01\x00\x04\x0e\x04\x00\x01\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=65, rssi=None)
2022-10-17 10:42:38.581 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x03\x01\x00\x04\x0e\x04\x00\x01\x00'
2022-10-17 10:42:38.581 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=3, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:38.582 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=4, command_id=1038, function=0, data=[1, 0]))
2022-10-17 10:42:38.583 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 3): get_data(param=Command(status=0, tsn=4, command_id=1038, function=0, data=[1, 0]))
2022-10-17 10:42:38.583 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x040e (command 0x0001)
2022-10-17 10:42:38.584 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=3, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:38.585 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:38.670 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x27CD](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:42:38.670 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x27CD](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:39.586 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x04\x01\x00\x05\x04\x04\x00\x01\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=65, rssi=None)
2022-10-17 10:42:39.587 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x04\x01\x00\x05\x04\x04\x00\x01\x00'
2022-10-17 10:42:39.588 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=4, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:39.589 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=5, command_id=1028, function=0, data=[1, 0]))
2022-10-17 10:42:39.589 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 4): get_data(param=Command(status=0, tsn=5, command_id=1028, function=0, data=[1, 0]))
2022-10-17 10:42:39.590 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0404 (command 0x0001)
2022-10-17 10:42:39.590 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[unoccupied_heating_setpoint] = 500
2022-10-17 10:42:39.591 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[system_mode] = SystemMode.Off
2022-10-17 10:42:39.593 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[programing_oper_mode] = ProgrammingOperationMode.Simple
2022-10-17 10:42:39.593 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[occupancy] = Occupancy.Unoccupied
2022-10-17 10:42:39.594 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[operation_preset] = Preset.Away
2022-10-17 10:42:39.595 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[unoccupied_heating_setpoint] = 500
2022-10-17 10:42:39.595 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[system_mode] = SystemMode.Off
2022-10-17 10:42:39.596 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[programing_oper_mode] = ProgrammingOperationMode.Simple
2022-10-17 10:42:39.597 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[occupancy] = Occupancy.Unoccupied
2022-10-17 10:42:39.598 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[operation_preset] = Preset.Away
2022-10-17 10:42:39.601 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=4, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:39.601 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:39.603 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'unoccupied_heating_setpoint' = 500 update
2022-10-17 10:42:39.604 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'system_mode' = SystemMode.Off update
2022-10-17 10:42:39.612 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'programing_oper_mode' = ProgrammingOperationMode.Simple update
2022-10-17 10:42:39.613 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'occupancy' = Occupancy.Unoccupied update
2022-10-17 10:42:39.614 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'operation_preset' = Preset.Away update
2022-10-17 10:42:39.614 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'unoccupied_heating_setpoint' = 500 update
2022-10-17 10:42:39.615 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'system_mode' = SystemMode.Off update
2022-10-17 10:42:39.615 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'programing_oper_mode' = ProgrammingOperationMode.Simple update
2022-10-17 10:42:39.616 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'occupancy' = Occupancy.Unoccupied update
2022-10-17 10:42:39.617 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'operation_preset' = Preset.Away update
2022-10-17 10:42:40.599 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x05\x01\x00\x06\x02\x02\x00\x04\x00\x00\x00\xd2'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=65, rssi=None)
2022-10-17 10:42:40.599 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x05\x01\x00\x06\x02\x02\x00\x04\x00\x00\x00\xd2'
2022-10-17 10:42:40.600 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=5, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:40.601 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=6, command_id=514, function=0, data=[4, 0, 0, 0, 210]))
2022-10-17 10:42:40.601 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 5): get_data(param=Command(status=0, tsn=6, command_id=514, function=0, data=[4, 0, 0, 0, 210]))
2022-10-17 10:42:40.602 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 210] for attribute 0x0202 (command 0x0001)
2022-10-17 10:42:40.602 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[occupied_heating_setpoint] = 2100
2022-10-17 10:42:40.603 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[occupied_heating_setpoint] = 2100
2022-10-17 10:42:40.604 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:40.605 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:40.606 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:40.607 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:40.607 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:40.608 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:40.608 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:40.609 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:40.610 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=5, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:40.611 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:40.615 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'occupied_heating_setpoint' = 2100 update
2022-10-17 10:42:40.616 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'occupied_heating_setpoint' = 2100 update
2022-10-17 10:42:40.617 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:40.617 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:40.631 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:40.631 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:40.632 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:40.633 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:40.633 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:40.634 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:41.588 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x06\x01\x00\x06\x02\x02\x00\x04\x00\x00\x00\xd2'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=65, rssi=None)
2022-10-17 10:42:41.589 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x06\x01\x00\x06\x02\x02\x00\x04\x00\x00\x00\xd2'
2022-10-17 10:42:41.589 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=6, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:41.590 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=6, command_id=514, function=0, data=[4, 0, 0, 0, 210]))
2022-10-17 10:42:41.591 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 6): get_data(param=Command(status=0, tsn=6, command_id=514, function=0, data=[4, 0, 0, 0, 210]))
2022-10-17 10:42:41.591 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 210] for attribute 0x0202 (command 0x0001)
2022-10-17 10:42:41.592 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[occupied_heating_setpoint] = 2100
2022-10-17 10:42:41.592 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[occupied_heating_setpoint] = 2100
2022-10-17 10:42:41.593 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:41.594 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:41.595 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:41.595 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:41.596 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:41.597 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:41.597 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:41.598 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:41.599 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=6, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:41.599 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:41.601 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'occupied_heating_setpoint' = 2100 update
2022-10-17 10:42:41.601 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'occupied_heating_setpoint' = 2100 update
2022-10-17 10:42:41.602 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:41.602 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:41.603 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:41.605 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:41.606 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:41.606 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:41.607 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:41.608 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:42.612 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x07\x01\x00\x07\x12\x01\x00\x01\x01'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=68, rssi=None)
2022-10-17 10:42:42.613 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x07\x01\x00\x07\x12\x01\x00\x01\x01'
2022-10-17 10:42:42.613 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=7, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:42.614 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=7, command_id=274, function=0, data=[1, 1]))
2022-10-17 10:42:42.615 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 7): get_data(param=Command(status=0, tsn=7, command_id=274, function=0, data=[1, 1]))
2022-10-17 10:42:42.615 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0112 (command 0x0001)
2022-10-17 10:42:42.617 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=7, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:42.617 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:43.622 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x08\x01\x00\x08\x07\x01\x00\x01\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=68, rssi=None)
2022-10-17 10:42:43.623 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x08\x01\x00\x08\x07\x01\x00\x01\x00'
2022-10-17 10:42:43.623 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=8, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:43.624 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=8, command_id=263, function=0, data=[1, 0]))
2022-10-17 10:42:43.625 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 8): get_data(param=Command(status=0, tsn=8, command_id=263, function=0, data=[1, 0]))
2022-10-17 10:42:43.625 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0107 (command 0x0001)
2022-10-17 10:42:43.630 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=8, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:43.631 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:44.630 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\t\x01\x00\t\x11\x04\x00\x01\x01'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=68, rssi=None)
2022-10-17 10:42:44.631 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\t\x01\x00\t\x11\x04\x00\x01\x01'
2022-10-17 10:42:44.631 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=9, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:44.632 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=9, command_id=1041, function=0, data=[1, 1]))
2022-10-17 10:42:44.633 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 9): get_data(param=Command(status=0, tsn=9, command_id=1041, function=0, data=[1, 1]))
2022-10-17 10:42:44.633 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0411 (command 0x0001)
2022-10-17 10:42:44.635 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=9, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:44.635 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:45.641 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\n\x01\x00\n\x03\x02\x00\x04\x00\x00\x00\xcf'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=68, rssi=None)
2022-10-17 10:42:45.642 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\n\x01\x00\n\x03\x02\x00\x04\x00\x00\x00\xcf'
2022-10-17 10:42:45.642 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=10, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:45.643 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=10, command_id=515, function=0, data=[4, 0, 0, 0, 207]))
2022-10-17 10:42:45.644 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 10): get_data(param=Command(status=0, tsn=10, command_id=515, function=0, data=[4, 0, 0, 0, 207]))
2022-10-17 10:42:45.644 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 207] for attribute 0x0203 (command 0x0001)
2022-10-17 10:42:45.645 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[local_temperature] = 2070.0
2022-10-17 10:42:45.646 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[local_temperature] = 2070.0
2022-10-17 10:42:45.646 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:45.647 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:45.647 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:45.648 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:45.649 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:45.649 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:45.650 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:45.650 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:45.651 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=10, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:45.652 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:45.653 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'local_temperature' = 2070.0 update
2022-10-17 10:42:45.654 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'local_temperature' = 2070.0 update
2022-10-17 10:42:45.655 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:45.655 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:45.656 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:45.656 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:45.657 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:45.666 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:45.667 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:45.668 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:46.628 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC52F), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x0b\x01\x00\n\x03\x02\x00\x04\x00\x00\x00\xcf'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=68, rssi=None)
2022-10-17 10:42:46.629 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received ZCL frame: b'\t\x0b\x01\x00\n\x03\x02\x00\x04\x00\x00\x00\xcf'
2022-10-17 10:42:46.630 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=True), tsn=11, command_id=1, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:46.631 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Decoded ZCL frame: SiterwellManufCluster:get_data(param=Command(status=0, tsn=10, command_id=515, function=0, data=[4, 0, 0, 0, 207]))
2022-10-17 10:42:46.631 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Received command 0x01 (TSN 11): get_data(param=Command(status=0, tsn=10, command_id=515, function=0, data=[4, 0, 0, 0, 207]))
2022-10-17 10:42:46.632 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 207] for attribute 0x0203 (command 0x0001)
2022-10-17 10:42:46.632 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[local_temperature] = 2070.0
2022-10-17 10:42:46.633 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[local_temperature] = 2070.0
2022-10-17 10:42:46.634 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:46.635 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:46.636 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:46.637 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:46.637 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:46.638 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:46.639 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_mode] = RunningMode.Heat
2022-10-17 10:42:46.639 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xC52F:1:0x0201]: Attribute report 'SiterwellThermostat'[running_state] = RunningState.Heat_State_On
2022-10-17 10:42:46.641 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=11, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-17 10:42:46.642 DEBUG (MainThread) [zigpy.zcl] [0xC52F:1:0xef00] Sending reply: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-10-17 10:42:46.643 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'local_temperature' = 2070.0 update
2022-10-17 10:42:46.644 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'local_temperature' = 2070.0 update
2022-10-17 10:42:46.644 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:46.645 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:46.646 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:46.646 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:46.647 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:46.648 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:46.648 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_mode' = RunningMode.Heat update
2022-10-17 10:42:46.649 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.bedroom_radiator_thermostat: Attribute 'running_state' = RunningState.Heat_State_On update
2022-10-17 10:42:47.919 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x02BF](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:42:47.919 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x02BF](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:48.370 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x2173](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:42:48.371 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x2173](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:48.668 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF94F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:42:48.668 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF94F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:42:52.945 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x778F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:42:52.946 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x778F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:04.819 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:43:04.819 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:06.729 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x430F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:43:06.730 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x430F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:10.489 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC52F](zk78ptr): Device seen - marking the device available and resetting counter
2022-10-17 10:43:10.489 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC52F](zk78ptr): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:25.196 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC9FD](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:43:25.197 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xC9FD](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:29.230 WARNING (MainThread) [homeassistant.components.sensor] Updating hp_ilo sensor took longer than the scheduled update interval 0:00:30
2022-10-17 10:43:33.699 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xEF64](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:43:33.699 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xEF64](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:36.750 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x6894](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:43:36.750 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x6894](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:42.667 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xAD43](zk78ptr): Device seen - marking the device available and resetting counter
2022-10-17 10:43:42.668 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xAD43](zk78ptr): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:58.921 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x02BF](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:43:58.921 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x02BF](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:43:59.230 WARNING (MainThread) [homeassistant.components.sensor] Updating hp_ilo sensor took longer than the scheduled update interval 0:00:30
2022-10-17 10:44:00.670 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF94F](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:44:00.671 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF94F](TS0502A): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:44:03.677 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x27CD](TS011F): Device seen - marking the device available and resetting counter
2022-10-17 10:44:03.677 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x27CD](TS011F): Update device availability -  device available: True - new availability: True - changed: False
2022-10-17 10:44:11.820 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Device seen - marking the device available and resetting counter
2022-10-17 10:44:11.821 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x11F5](TS0502A): Update device availability -  device available: True - new availability: True - changed: False

That should be what was asked for... I cleared the log, took out the batteries and waited about a minute, plugged back in and it reconnected to ZHA. Please let me know if I've done something wrong :)

jacekk015 commented 1 year ago

Your logs filtered:

2022-10-17 10:42:35.496 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0101 (command 0x0001)
2022-10-17 10:42:36.558 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x050d (command 0x0001)
2022-10-17 10:42:37.543 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x050d (command 0x0001)
2022-10-17 10:42:38.583 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x040e (command 0x0001)
2022-10-17 10:42:39.590 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0404 (command 0x0001)
2022-10-17 10:42:40.602 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 210] for attribute 0x0202 (command 0x0001)
2022-10-17 10:42:41.591 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 210] for attribute 0x0202 (command 0x0001)
2022-10-17 10:42:42.615 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0112 (command 0x0001)
2022-10-17 10:42:43.625 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0107 (command 0x0001)
2022-10-17 10:42:44.633 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0411 (command 0x0001)
2022-10-17 10:42:45.644 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 207] for attribute 0x0203 (command 0x0001)
2022-10-17 10:42:46.632 DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 207] for attribute 0x0203 (command 0x0001)

0x0101, 0x050d and 0x040e are unknown for us - you would need to play with the TRV and check if value switches from 0 to 1 to identify what it does. Still no 0x0215 for battery level. Later, after an hour or more, post logs again. Do not cut anything - I can easily filter it out. If the device will not send battery level there's not much we can do about it.

accessiblepixel commented 1 year ago

Alright. Will do! I'll change settings on it and whatnot for a bit.

I also had a thought, maybe it doesn't have a "battery level" so to speak, and just sends a "battery low" signal. I remember when using it in the official "TCP Smart app" and in "Smart Life", there was no on screen "battery", but I remember seeing "Battery Low" in a notification flag at the top, so perhaps that's what it does, rather than give a percentage?

Do you think I should hook it up to a bench power supply, and simulate various battery voltages to see if that will cause one of the attributes to change?

jacekk015 commented 1 year ago

You have the TRV in your hands. Can't do more than you. Maybe some attribute will change on battery low voltage.

accessiblepixel commented 1 year ago

Okay, I played with every thing I could physically do on the device. Changing modes, temperatures, every combination of buttons. I also hooked it up to a bench power supply and got it to display a low battery symbol.

I tried every switch and option that was in home assistant too (other than the "Identify" button) so this should have everything in it that's possible. It's a bit beyond me since I don't really understand how zigbee works (or how ZHA works with it), but hopefully this is useful!

The link is https://mirror.jcx.life/zha-debug3-home-assistant.log Please extract what you need and let me know when I can delete it. This is the whole HA log since it was last cleared. Thanks :)

jacekk015 commented 1 year ago

These are unique lines. You've tried all switches, but I don't know which when, so for me it's still unknown what was change on what time. You need to mark time of switching something, and do some pause, like minute at least. If I know that on 14:25 you've switched specific button on TRV then I know, from the logs, what was sent from TRV to HA. 0x050d looks like it's changing value, so maybe it's voltage level or valve open percentage.

DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0101 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0101 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0411 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 200] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 210] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 120] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 220] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 230] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 240] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 50] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 150] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 250] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 180] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 4] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 14] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 24] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 34] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 44] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 205] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 215] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 225] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 235] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 245] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 55] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 155] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 165] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 185] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 195] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 9] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 19] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 29] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 49] for attribute 0x0202 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0112 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0112 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 252] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 254] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 1, 5] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 255] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 207] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 237] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 218] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 229] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0, 0, 0, 239] for attribute 0x0203 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0404 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0404 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [2] for attribute 0x0404 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [3] for attribute 0x0404 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0107 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0107 (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [80] for attribute 0x050d (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x050d (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [64] for attribute 0x050d (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [16] for attribute 0x050d (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x040e (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x040e (command 0x0001)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0101 (command 0x0002)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0112 (command 0x0002)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [3] for attribute 0x0404 (command 0x0002)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [0] for attribute 0x0107 (command 0x0002)
DEBUG (MainThread) [zhaquirks.tuya] [0xc52f:1:0xef00] Received value [1] for attribute 0x0107 (command 0x0002)