zha-device-handlers icon indicating copy to clipboard operation
zha-device-handlers copied to clipboard

[Device Support Request] TUYA DIN ENERGY METERING

Open seblang opened this issue 2 years ago • 135 comments

Is your feature request related to a problem? Please describe. I can pair this tuya consumption energy metering device but i have no sensor

Describe the solution you'd like i want to be able to see the consumption metering

Device signature
Paste the device signature here.
Don't remove the extra line breaks outside the ``` {
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0051",
      "in_clusters": [
        "0x0000",
        "0x0004",
        "0x0005",
        "0xef00"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE204_cjbofhxw",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}
Diagnostic information
Paste the diagnostic information here.
Don't remove the extra line breaks outside the ``` marks.
Additional logs
Paste any additional debug logs here.
Don't remove the extra line breaks outside the ``` {
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2022.11.4",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.7",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Paris",
    "os_name": "Linux",
    "os_version": "5.15.74",
    "supervisor": "2022.11.2",
    "host_os": "Home Assistant OS 9.3",
    "docker_version": "20.10.18",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.28.4",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "multizone_controller": {
      "version": "1.2",
      "requirements": []
    },
    "average": {
      "version": "2.3.0",
      "requirements": []
    },
    "pollens": {
      "version": "2022.02.01",
      "requirements": []
    },
    "solcast_solar": {
      "version": "3.0.26",
      "requirements": [
        "aiohttp>=3.6.2",
        "datetime>=4.3",
        "isodate>=0.6.0"
      ]
    },
    "fullykiosk": {
      "version": "1.1.0",
      "requirements": [
        "python-fullykiosk==0.0.11"
      ]
    },
    "tahoma": {
      "version": "2.14.0",
      "requirements": [
        "pyoverkiz==1.5.6"
      ]
    },
    "favicon": {
      "version": "10.4",
      "requirements": []
    },
    "rte_ecowatt": {
      "version": "0.1.1",
      "requirements": [
        "Async-OAuthlib==0.0.9"
      ]
    },
    "reversotts": {
      "version": "1.0.2",
      "requirements": [
        "pyttsreverso==0.4"
      ]
    },
    "huawei_solar": {
      "version": "1.1.2",
      "requirements": [
        "pyserial==3.5",
        "pyserial-asyncio==0.6",
        "huawei-solar==2.1.2"
      ]
    },
    "virtual": {
      "version": "0.7.7",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.34.2",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.86",
      "zigpy-deconz==0.19.0",
      "zigpy==0.51.5",
      "zigpy-xbee==0.16.2",
      "zigpy-zigate==0.10.3",
      "zigpy-znp==0.9.1"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      }
    ],
    "dependencies": [
      "file_upload"
    ],
    "after_dependencies": [
      "onboarding",
      "usb",
      "zeroconf"
    ],
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 27050,
    "manufacturer": "_TZE204_cjbofhxw",
    "model": "TS0601",
    "name": "_TZE204_cjbofhxw TS0601",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 4098,
    "power_source": "Mains",
    "lqi": 203,
    "rssi": -47,
    "last_seen": "2022-11-29T21:48:19",
    "available": true,
    "device_type": "Router",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0051",
          "in_clusters": [
            "0x0000",
            "0x0004",
            "0x0005",
            "0xef00"
          ],
          "out_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      }
    },
    "active_coordinator": false,
    "entities": [],
    "neighbors": [],
    "endpoint_names": [
      {
        "name": "SMART_PLUG"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "30b9cbfc4fcfb0e8393dce44c893bc70",
    "area_id": null,
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "SMART_PLUG",
          "id": 81
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0001": {
                "attribute_name": "app_version",
                "value": 70
              },
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZE204_cjbofhxw"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0601"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0xef00": {
            "endpoint_attribute": null,
            "attributes": {},
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}.

Additional context Add any other context or screenshots about the feature request here.

seblang avatar Nov 29 '22 21:11 seblang

product link

https://fr.aliexpress.com/item/1005004845740618.html?spm=a2g0o.productlist.0.0.7f0c1c051vU9BM&ad_pvid=202211300039372484257705916200029604571_1&s=p

seblang avatar Nov 30 '22 08:11 seblang

There are already 2 implementations for Tuya DIN metering devices. I would suggest you to try with the HikingPowerMeter one.

There is a good guide to create your local quirk:

  • https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274

Just copy inside your local quirk folder the current ts0601_din_power.py file:

  • https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_din_power.py

Edit the content adding your device signature at the MODELS_INFO like this:

class HikingPowerMeter(TuyaSwitch):
    """Hiking Power Meter Device - DDS238-2."""

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE200_bkkmqmyo", "TS0601"),
            ("_TZE204_cjbofhxw", "TS0601"),
        ],
        ENDPOINTS: {

Save changes, restart HA and repair the device.

javicalle avatar Nov 30 '22 09:11 javicalle

Hi Thank you

Done but result is not perfect :-)

tempo

If I ask a reconfiguration I have this :

tempo

My product have no switch :

tempo1

available info according vendor

tempo2

Can you help me to update mu quirks please

seblang avatar Nov 30 '22 16:11 seblang

We can remove the switch, this part is the easy one. For all the other entities we need to collect the info that report the device and map it against the measured values.

To do that, will be necessary to activate the logs for the integration and collect the relevant information. Instructions here:

  • https://www.home-assistant.io/integrations/zha/#debug-logging

You will get multiple reports from your device, NMK: 0x7667

Every report will be a meassurement and you have to analize it to map against the correct one. In example, the current voltage will be a value around 220/240

javicalle avatar Nov 30 '22 18:11 javicalle

Hi debug activated, but I am not sur how to understand the log file:

2022-11-30 19:57:34.371 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\t\x00' 2022-11-30 19:57:34.374 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 64): b'\t\x00' 2022-11-30 19:57:34.374 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\t\x00' 2022-11-30 19:57:34.519 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:34.519 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:34.566 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=181), 99, -69, 0x7667, 255, 255, b'\t@%\t\x00'] 2022-11-30 19:57:34.567 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=181, profile_id=260, cluster_id=61184, data=Serialized[b'\t@%\t\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:34.567 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t@%\t\x00' 2022-11-30 19:57:34.568 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=64, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:34.569 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\t\x00' 2022-11-30 19:57:34.572 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 64): b'\t\x00' 2022-11-30 19:57:34.573 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\t\x00' 2022-11-30 19:57:38.100 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 94, -70, []] 2022-11-30 19:57:38.100 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 94, -70, []) 2022-11-30 19:57:38.149 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=182), 94, -70, 0x7667, 255, 255, b'\tA%\x0b\x00'] 2022-11-30 19:57:38.149 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=182, profile_id=260, cluster_id=61184, data=Serialized[b'\tA%\x0b\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=94, rssi=-70) 2022-11-30 19:57:38.150 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tA%\x0b\x00' 2022-11-30 19:57:38.150 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=65, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:38.151 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\x0b\x00' 2022-11-30 19:57:38.154 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 65): b'\x0b\x00' 2022-11-30 19:57:38.155 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\x0b\x00' 2022-11-30 19:57:38.296 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:38.297 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:38.346 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=183), 99, -69, 0x7667, 255, 255, b'\tA%\x0b\x00'] 2022-11-30 19:57:38.347 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=183, profile_id=260, cluster_id=61184, data=Serialized[b'\tA%\x0b\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:38.347 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tA%\x0b\x00' 2022-11-30 19:57:38.348 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=65, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:38.348 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\x0b\x00' 2022-11-30 19:57:38.351 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 65): b'\x0b\x00' 2022-11-30 19:57:38.351 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\x0b\x00' 2022-11-30 19:57:38.498 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:38.498 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:38.546 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=184), 99, -69, 0x7667, 255, 255, b'\tA%\x0b\x00'] 2022-11-30 19:57:38.546 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=184, profile_id=260, cluster_id=61184, data=Serialized[b'\tA%\x0b\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:38.547 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tA%\x0b\x00' 2022-11-30 19:57:38.548 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=65, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:38.548 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\x0b\x00' 2022-11-30 19:57:38.551 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 65): b'\x0b\x00' 2022-11-30 19:57:38.552 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\x0b\x00' 2022-11-30 19:57:38.697 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:38.697 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:38.744 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=185), 99, -69, 0x7667, 255, 255, b'\tA%\x0b\x00'] 2022-11-30 19:57:38.745 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=185, profile_id=260, cluster_id=61184, data=Serialized[b'\tA%\x0b\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:38.745 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tA%\x0b\x00' 2022-11-30 19:57:38.746 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=65, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:38.747 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\x0b\x00' 2022-11-30 19:57:38.750 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 65): b'\x0b\x00' 2022-11-30 19:57:38.750 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\x0b\x00' 2022-11-30 19:57:38.896 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:38.896 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:38.944 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=186), 99, -69, 0x7667, 255, 255, b'\tA%\x0b\x00'] 2022-11-30 19:57:38.944 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=186, profile_id=260, cluster_id=61184, data=Serialized[b'\tA%\x0b\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:38.945 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tA%\x0b\x00' 2022-11-30 19:57:38.945 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=65, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:38.946 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\x0b\x00' 2022-11-30 19:57:38.949 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 65): b'\x0b\x00' 2022-11-30 19:57:38.949 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\x0b\x00' 2022-11-30 19:57:42.475 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:42.475 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:42.530 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=187), 99, -69, 0x7667, 255, 255, b'\tB%\r\x00'] 2022-11-30 19:57:42.531 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=187, profile_id=260, cluster_id=61184, data=Serialized[b'\tB%\r\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:42.531 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tB%\r\x00' 2022-11-30 19:57:42.532 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=66, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:42.532 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\r\x00' 2022-11-30 19:57:42.538 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 66): b'\r\x00' 2022-11-30 19:57:42.538 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\r\x00' 2022-11-30 19:57:42.675 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 19:57:42.676 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 19:57:42.723 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=188), 99, -69, 0x7667, 255, 255, b'\tB%\r\x00'] 2022-11-30 19:57:42.723 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=188, profile_id=260, cluster_id=61184, data=Serialized[b'\tB%\r\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 19:57:42.724 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\tB%\r\x00' 2022-11-30 19:57:42.724 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=66, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 19:57:42.725 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'\r\x00' 2022-11-30 19:57:42.729 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 66): b'\r\x00' 2022-11-30 19:57:42.730 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'\r\x00'

seblang avatar Nov 30 '22 19:11 seblang

The device is calling some custom command 0x25 every 4 ~~minutes~~ seconds with ~~one~~ five repetitions. I have no idea what is this command. There is nothing in ZHA and I can't find any relation in Z2M.

Is any entity updating values? Any other logs than these ones?

javicalle avatar Nov 30 '22 19:11 javicalle

no

seblang avatar Nov 30 '22 20:11 seblang

I have cancel the quirk to see if I have some other info

Journaux complets 2022-11-30 23:04:53.593 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 4 value: _TZE204_cjbofhxw 2022-11-30 23:04:53.593 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 5 value: TS0601 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 4 value: _TZE204_cjbofhxw 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 5 value: TS0601 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 1 value: 70 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 65506 value: 31 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 65508 value: 0 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 65503 value: 2022-11-30 23:04:58.525 DEBUG (MainThread) [zigpy.appdb] [0x7667:1:0x0000] Attribute id: 65534 value: 0 2022-11-30 23:05:06.984 DEBUG (MainThread) [homeassistant.components.zha.core.gateway] [0x7667](_TZE204_cjbofhxw TS0601) restored as 'available', last seen: 0:01:36 ago, consider_unavailable_time: 7200 seconds 2022-11-30 23:05:07.010 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x7667](TS0601): started initialization 2022-11-30 23:05:07.010 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:ZDO](TS0601): 'async_initialize' stage succeeded 2022-11-30 23:05:07.149 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0000]: initializing channel: from_cache: True 2022-11-30 23:05:07.149 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0000]: finished channel initialization 2022-11-30 23:05:07.149 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0xef00]: initializing channel: from_cache: True 2022-11-30 23:05:07.150 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0xef00]: finished channel initialization 2022-11-30 23:05:07.150 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0019]: initializing channel: from_cache: True 2022-11-30 23:05:07.150 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0019]: finished channel initialization 2022-11-30 23:05:07.186 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0000]: 'async_initialize' stage succeeded 2022-11-30 23:05:07.186 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0xef00]: 'async_initialize' stage succeeded 2022-11-30 23:05:07.186 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0019]: 'async_initialize' stage succeeded 2022-11-30 23:05:07.226 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x7667](TS0601): power source: Mains 2022-11-30 23:05:07.226 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x7667](TS0601): completed initialization 2022-11-30 23:05:07.253 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x7667](TS0601): started initialization 2022-11-30 23:05:07.253 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:ZDO](TS0601): 'async_initialize' stage succeeded 2022-11-30 23:05:07.388 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0000]: initializing channel: from_cache: False 2022-11-30 23:05:07.388 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0000]: finished channel initialization 2022-11-30 23:05:07.388 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0xef00]: initializing channel: from_cache: False 2022-11-30 23:05:07.389 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0xef00]: finished channel initialization 2022-11-30 23:05:07.389 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0019]: initializing channel: from_cache: False 2022-11-30 23:05:07.389 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0019]: finished channel initialization 2022-11-30 23:05:07.393 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0000]: 'async_initialize' stage succeeded 2022-11-30 23:05:07.393 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0xef00]: 'async_initialize' stage succeeded 2022-11-30 23:05:07.393 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x7667:1:0x0019]: 'async_initialize' stage succeeded 2022-11-30 23:05:07.416 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x7667](TS0601): power source: Mains 2022-11-30 23:05:07.416 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x7667](TS0601): completed initialization 2022-11-30 23:05:07.653 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:07.653 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:07.656 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=77), 99, -69, 0x7667, 255, 255, b'\t\x13%/\x00'] 2022-11-30 23:05:07.657 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=77, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x13%/\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:07.658 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x13%/\x00' 2022-11-30 23:05:07.658 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=19, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:07.660 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'/\x00' 2022-11-30 23:05:07.671 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 19): b'/\x00' 2022-11-30 23:05:07.671 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'/\x00' 2022-11-30 23:05:07.685 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:07.685 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:07.961 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=78), 99, -69, 0x7667, 255, 255, b'\t\x13%/\x00'] 2022-11-30 23:05:07.961 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=78, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x13%/\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:07.962 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x13%/\x00' 2022-11-30 23:05:07.963 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=19, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:07.963 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'/\x00' 2022-11-30 23:05:07.966 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 19): b'/\x00' 2022-11-30 23:05:07.967 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'/\x00' 2022-11-30 23:05:07.971 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:07.971 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:07.973 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=79), 99, -69, 0x7667, 255, 255, b'\t\x13%/\x00'] 2022-11-30 23:05:07.973 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=79, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x13%/\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:07.974 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x13%/\x00' 2022-11-30 23:05:07.974 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=19, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:07.975 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'/\x00' 2022-11-30 23:05:07.979 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 19): b'/\x00' 2022-11-30 23:05:07.980 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'/\x00' 2022-11-30 23:05:08.180 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:08.180 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:08.207 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=80), 104, -68, 0x7667, 255, 255, b'\t\x13%/\x00'] 2022-11-30 23:05:08.208 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=80, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x13%/\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:08.209 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x13%/\x00' 2022-11-30 23:05:08.209 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=19, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:08.210 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'/\x00' 2022-11-30 23:05:08.216 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 19): b'/\x00' 2022-11-30 23:05:08.217 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'/\x00' 2022-11-30 23:05:08.383 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:08.383 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:08.386 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=81), 104, -68, 0x7667, 255, 255, b'\t\x13%/\x00'] 2022-11-30 23:05:08.387 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=81, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x13%/\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:08.395 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x13%/\x00' 2022-11-30 23:05:08.396 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=19, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:08.396 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'/\x00' 2022-11-30 23:05:08.416 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 19): b'/\x00' 2022-11-30 23:05:08.416 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'/\x00' 2022-11-30 23:05:11.840 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:11.840 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:11.885 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=82), 104, -68, 0x7667, 255, 255, b'\t\x14%1\x00'] 2022-11-30 23:05:11.886 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=82, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x14%1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:11.886 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x14%1\x00' 2022-11-30 23:05:11.887 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=20, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:11.888 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'1\x00' 2022-11-30 23:05:11.904 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 20): b'1\x00' 2022-11-30 23:05:11.904 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'1\x00' 2022-11-30 23:05:12.064 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:12.064 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:12.144 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=83), 104, -68, 0x7667, 255, 255, b'\t\x14%1\x00'] 2022-11-30 23:05:12.144 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=83, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x14%1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:12.145 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x14%1\x00' 2022-11-30 23:05:12.145 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=20, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:12.146 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'1\x00' 2022-11-30 23:05:12.156 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 20): b'1\x00' 2022-11-30 23:05:12.156 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'1\x00' 2022-11-30 23:05:12.223 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:12.223 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:12.286 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=84), 104, -68, 0x7667, 255, 255, b'\t\x14%1\x00'] 2022-11-30 23:05:12.287 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=84, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x14%1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:12.287 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x14%1\x00' 2022-11-30 23:05:12.288 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=20, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:12.289 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'1\x00' 2022-11-30 23:05:12.304 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 20): b'1\x00' 2022-11-30 23:05:12.304 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'1\x00' 2022-11-30 23:05:12.445 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:12.445 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:12.502 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=85), 104, -68, 0x7667, 255, 255, b'\t\x14%1\x00'] 2022-11-30 23:05:12.503 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=85, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x14%1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:12.503 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x14%1\x00' 2022-11-30 23:05:12.504 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=20, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:12.505 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'1\x00' 2022-11-30 23:05:12.519 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 20): b'1\x00' 2022-11-30 23:05:12.519 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'1\x00' 2022-11-30 23:05:12.649 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 109, -67, []] 2022-11-30 23:05:12.649 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 109, -67, []) 2022-11-30 23:05:12.671 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=86), 104, -68, 0x7667, 255, 255, b'\t\x14%1\x00'] 2022-11-30 23:05:12.672 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=86, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x14%1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:12.672 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x14%1\x00' 2022-11-30 23:05:12.673 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=20, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:12.674 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'1\x00' 2022-11-30 23:05:12.690 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 20): b'1\x00' 2022-11-30 23:05:12.690 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'1\x00' 2022-11-30 23:05:16.599 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:16.599 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:16.601 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=87), 104, -68, 0x7667, 255, 255, b'\t\x15%3\x00'] 2022-11-30 23:05:16.602 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=87, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x15%3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:16.602 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x15%3\x00' 2022-11-30 23:05:16.603 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=21, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:16.604 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'3\x00' 2022-11-30 23:05:16.612 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 21): b'3\x00' 2022-11-30 23:05:16.612 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'3\x00' 2022-11-30 23:05:16.615 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:16.615 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:16.616 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=88), 104, -68, 0x7667, 255, 255, b'\t\x15%3\x00'] 2022-11-30 23:05:16.617 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=88, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x15%3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:16.618 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x15%3\x00' 2022-11-30 23:05:16.618 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=21, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:16.619 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'3\x00' 2022-11-30 23:05:16.633 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 21): b'3\x00' 2022-11-30 23:05:16.633 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'3\x00' 2022-11-30 23:05:16.636 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:16.636 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:16.697 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=89), 99, -69, 0x7667, 255, 255, b'\t\x15%3\x00'] 2022-11-30 23:05:16.697 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=89, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x15%3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:16.698 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x15%3\x00' 2022-11-30 23:05:16.698 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=21, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:16.699 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'3\x00' 2022-11-30 23:05:16.711 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 21): b'3\x00' 2022-11-30 23:05:16.712 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'3\x00' 2022-11-30 23:05:16.796 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:16.796 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:16.846 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=90), 99, -69, 0x7667, 255, 255, b'\t\x15%3\x00'] 2022-11-30 23:05:16.847 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=90, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x15%3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:16.847 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x15%3\x00' 2022-11-30 23:05:16.848 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=21, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:16.849 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'3\x00' 2022-11-30 23:05:16.862 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 21): b'3\x00' 2022-11-30 23:05:16.862 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'3\x00' 2022-11-30 23:05:17.003 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:17.003 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:17.044 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=91), 99, -69, 0x7667, 255, 255, b'\t\x15%3\x00'] 2022-11-30 23:05:17.044 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=91, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x15%3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:17.045 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x15%3\x00' 2022-11-30 23:05:17.045 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=21, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:17.046 WARNING (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Unknown cluster command 37 b'3\x00' 2022-11-30 23:05:17.073 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received command 0x25 (TSN 21): b'3\x00' 2022-11-30 23:05:17.074 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] No explicit handler for cluster command 0x25: b'3\x00' 2022-11-30 23:05:20.339 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:20.339 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:20.389 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=92), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:20.389 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=92, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:20.390 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:20.390 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.391 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.392 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.394 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:20.396 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.397 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:20.397 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), dst_ep=1, source_route=None, extended_timeout=False, tsn=22, profile_id=260, cluster_id=0, data=Serialized[b'\x18\x16\x0b\n\x00'], tx_options=<TransmitOptions.ACK: 1>, radius=0, non_member_radius=0, lqi=None, rssi=None) 2022-11-30 23:05:20.540 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:20.540 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:20.589 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=93), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:20.589 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=93, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:20.590 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:20.590 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.592 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.592 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.593 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:20.595 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.596 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:20.739 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:20.739 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:20.790 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=94), 99, -69, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:20.791 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=94, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=99, rssi=-69) 2022-11-30 23:05:20.791 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:20.792 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.793 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.794 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.795 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:20.796 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.797 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:20.937 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:20.937 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:20.990 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=95), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:20.991 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=95, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:20.991 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:20.992 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.993 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.993 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:20.995 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:20.996 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:20.997 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:21.138 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []] 2022-11-30 23:05:21.138 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 99, -69, []) 2022-11-30 23:05:21.186 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=96), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:21.187 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=96, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:21.187 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:21.188 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.189 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.189 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.191 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:21.193 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.194 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:21.336 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:21.336 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:21.385 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=97), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:21.386 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=97, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:21.386 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:21.387 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.389 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.391 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.391 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:21.393 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.394 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:21.535 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:21.535 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:21.587 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=98), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:21.588 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=98, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:21.588 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:21.589 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.591 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.591 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.592 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:21.598 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.599 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:21.735 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:21.735 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:21.786 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=99), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:21.786 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=99, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:21.787 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:21.788 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.789 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.791 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.791 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:21.793 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.793 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:21.935 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:21.935 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:21.982 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=100), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:21.982 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=100, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:21.983 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:21.983 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.984 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.985 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:21.985 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:21.989 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:21.989 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:22.133 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:22.133 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:22.191 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=101), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:22.191 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=101, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:22.192 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:22.192 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:22.194 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:22.194 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:22.196 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:22.198 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:22.199 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:22.332 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:22.332 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:22.380 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=102), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:22.381 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=102, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:22.382 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:22.382 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:22.383 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:22.384 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:22.384 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:22.386 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:22.387 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:22.532 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:22.532 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:22.568 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 0x7667, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY|APS_OPTION_RETRY: 320>, groupId=0, sequence=22), 97, b'\x18\x16\x0b\n\x00') 2022-11-30 23:05:22.583 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=0, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=103), 104, -68, 0x7667, 255, 255, b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'] 2022-11-30 23:05:22.584 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=103, profile_id=260, cluster_id=0, data=Serialized[b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:22.584 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received ZCL frame: b'\x08\x16\n\x01\x00 F\xe2\xff \x1f\xe4\xff \x00' 2022-11-30 23:05:22.585 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=22, command_id=10, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:22.586 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:22.588 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Received command 0x0A (TSN 22): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=31)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2022-11-30 23:05:22.589 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Attribute report received: app_version=70, 0xFFE2=31, 0xFFE4=0 2022-11-30 23:05:22.591 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] 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=22, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-11-30 23:05:22.591 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) 2022-11-30 23:05:22.612 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:22.612 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:22.622 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []] 2022-11-30 23:05:22.622 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x7667, e0:79:8d:ff:fe:de:3b:6a, 104, -68, []) 2022-11-30 23:05:22.673 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=104), 104, -68, 0x7667, 255, 255, b'\t\x17%5\x00'] 2022-11-30 23:05:22.674 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7667), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=104, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x17%5\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=104, rssi=-68) 2022-11-30 23:05:22.674 DEBUG (MainThread) [zigpy.zcl] [0x7667:1:0xef00] Received ZCL frame: b'\t\x17%5\x00' 2022-11-30 23:05:22.675 DEBUG (MainThread) [zigpy.zcl] [0x7667: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=23, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)

How can I use this information to customize my quirk please

seblang avatar Nov 30 '22 22:11 seblang

How can I interpret the log?

seblang avatar Dec 01 '22 16:12 seblang

2022-12-01 21:03:52.052 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 4 value: _TZE204_cjbofhxw 2022-12-01 21:03:52.052 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 5 value: TS0601 2022-12-01 21:03:57.241 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 4 value: _TZE204_cjbofhxw 2022-12-01 21:03:57.241 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 5 value: TS0601 2022-12-01 21:03:57.241 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0b04] Attribute id: 1539 value: 1000 2022-12-01 21:03:57.241 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0b04] Attribute id: 1538 value: 1 2022-12-01 21:03:57.241 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0b04] Attribute id: 1536 value: 2 2022-12-01 21:03:57.241 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0702] Attribute id: 768 value: 0 2022-12-01 21:03:57.242 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 1 value: 70 2022-12-01 21:03:57.242 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 65506 value: 31 2022-12-01 21:03:57.242 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 65508 value: 0 2022-12-01 21:03:57.242 DEBUG (MainThread) [zigpy.appdb] [0x1c87:1:0x0000] Attribute id: 65503 value: t�+��+e��+��+ 2022-12-01 21:04:01.505 DEBUG (MainThread) [homeassistant.components.zha.core.gateway] [0x1C87](_TZE204_cjbofhxw TS0601) restored as 'available', last seen: 0:01:34 ago, consider_unavailable_time: 7200 seconds 2022-12-01 21:04:01.530 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x1C87](TS0601): started initialization 2022-12-01 21:04:01.530 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:ZDO](TS0601): 'async_initialize' stage succeeded 2022-12-01 21:04:01.664 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: initializing channel: from_cache: True 2022-12-01 21:04:01.664 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: initializing cached channel attributes: ['start_up_on_off'] 2022-12-01 21:04:01.664 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: Reading attributes in chunks: ['start_up_on_off'] 2022-12-01 21:04:01.664 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: initializing uncached channel attributes: ['on_off'] - from cache[True] 2022-12-01 21:04:01.664 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: Reading attributes in chunks: ['on_off'] 2022-12-01 21:04:01.664 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: finished channel initialization 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: initializing channel: from_cache: True 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: initializing cached channel attributes: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor', 'ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor', 'power_multiplier'] 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor'] 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor'] 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['power_multiplier'] 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: initializing uncached channel attributes: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max', 'rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] - from cache[True] 2022-12-01 21:04:01.665 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max'] 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: finished channel initialization 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0000]: initializing channel: from_cache: True 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0000]: finished channel initialization 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: initializing channel: from_cache: True 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: initializing cached channel attributes: ['demand_formatting', 'divisor', 'metering_device_type', 'multiplier', 'summation_formatting', 'unit_of_measure'] 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Reading attributes in chunks: ['demand_formatting', 'divisor', 'metering_device_type', 'multiplier', 'summation_formatting'] 2022-12-01 21:04:01.666 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Reading attributes in chunks: ['unit_of_measure'] 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: initializing uncached channel attributes: ['instantaneous_demand', 'current_summ_delivered', 'status'] - from cache[True] 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Reading attributes in chunks: ['instantaneous_demand', 'current_summ_delivered', 'status'] 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Performing channel specific initialization: ['instantaneous_demand', 'current_summ_delivered', 'status'] 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: finished channel initialization 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0xef00]: initializing channel: from_cache: True 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0xef00]: finished channel initialization 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0019]: initializing channel: from_cache: True 2022-12-01 21:04:01.667 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0019]: finished channel initialization 2022-12-01 21:04:01.701 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: 'async_initialize' stage succeeded 2022-12-01 21:04:01.701 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: 'async_initialize' stage succeeded 2022-12-01 21:04:01.701 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0000]: 'async_initialize' stage succeeded 2022-12-01 21:04:01.701 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: 'async_initialize' stage succeeded 2022-12-01 21:04:01.701 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0xef00]: 'async_initialize' stage succeeded 2022-12-01 21:04:01.701 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0019]: 'async_initialize' stage succeeded 2022-12-01 21:04:01.719 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x1C87](TS0601): power source: Mains 2022-12-01 21:04:01.719 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x1C87](TS0601): completed initialization 2022-12-01 21:04:01.732 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x1C87](TS0601): started initialization 2022-12-01 21:04:01.732 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:ZDO](TS0601): 'async_initialize' stage succeeded 2022-12-01 21:04:01.859 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: initializing channel: from_cache: False 2022-12-01 21:04:01.859 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: initializing cached channel attributes: ['start_up_on_off'] 2022-12-01 21:04:01.859 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0006]: Reading attributes in chunks: ['start_up_on_off'] 2022-12-01 21:04:01.860 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=59, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>, *is_reply=False) 2022-12-01 21:04:01.860 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0x0006] Sending request: Read_Attributes(attribute_ids=[16387]) 2022-12-01 21:04:01.861 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), dst_ep=1, source_route=None, extended_timeout=False, tsn=59, profile_id=260, cluster_id=6, data=Serialized[b'\x00;\x00\x03@'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None) 2022-12-01 21:04:01.863 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: initializing channel: from_cache: False 2022-12-01 21:04:01.863 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: initializing cached channel attributes: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor', 'ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor', 'power_multiplier'] 2022-12-01 21:04:01.863 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor'] 2022-12-01 21:04:01.864 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor'] 2022-12-01 21:04:01.865 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['power_multiplier'] 2022-12-01 21:04:01.865 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: initializing uncached channel attributes: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max', 'rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] - from cache[False] 2022-12-01 21:04:01.866 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max'] 2022-12-01 21:04:01.866 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: Reading attributes in chunks: ['rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] 2022-12-01 21:04:01.867 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0b04]: finished channel initialization 2022-12-01 21:04:01.868 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0000]: initializing channel: from_cache: False 2022-12-01 21:04:01.868 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0000]: finished channel initialization 2022-12-01 21:04:01.868 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: initializing channel: from_cache: False 2022-12-01 21:04:01.868 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: initializing cached channel attributes: ['demand_formatting', 'divisor', 'metering_device_type', 'multiplier', 'summation_formatting', 'unit_of_measure'] 2022-12-01 21:04:01.868 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Reading attributes in chunks: ['demand_formatting', 'divisor', 'metering_device_type', 'multiplier', 'summation_formatting'] 2022-12-01 21:04:01.869 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Reading attributes in chunks: ['unit_of_measure'] 2022-12-01 21:04:01.869 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: initializing uncached channel attributes: ['instantaneous_demand', 'current_summ_delivered', 'status'] - from cache[False] 2022-12-01 21:04:01.870 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Reading attributes in chunks: ['instantaneous_demand', 'current_summ_delivered', 'status'] 2022-12-01 21:04:01.870 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: Performing channel specific initialization: ['instantaneous_demand', 'current_summ_delivered', 'status'] 2022-12-01 21:04:01.870 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0702]: finished channel initialization 2022-12-01 21:04:01.870 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0xef00]: initializing channel: from_cache: False 2022-12-01 21:04:01.871 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0xef00]: finished channel initialization 2022-12-01 21:04:01.871 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0019]: initializing channel: from_cache: False 2022-12-01 21:04:01.871 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1C87:1:0x0019]: finished channel initialization 2022-12-01 21:04:03.328 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=22), 203, -47, 0x1c87, 255, 255, b'\t\x1b%\xf1\x00'] 2022-12-01 21:04:03.328 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=22, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1b%\xf1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=203, rssi=-47) 2022-12-01 21:04:03.329 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1b%\xf1\x00' 2022-12-01 21:04:03.330 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=27, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-12-01 21:04:03.331 WARNING (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Unknown cluster command 37 b'\xf1\x00' 2022-12-01 21:04:03.351 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received command 0x25 (TSN 27): b'\xf1\x00' 2022-12-01 21:04:03.352 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] No explicit handler for cluster command 0x25: b'\xf1\x00' 2022-12-01 21:04:03.633 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=23), 208, -46, 0x1c87, 255, 255, b'\t\x1b%\xf1\x00'] 2022-12-01 21:04:03.633 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=23, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1b%\xf1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=208, rssi=-46) 2022-12-01 21:04:03.634 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1b%\xf1\x00' 2022-12-01 21:04:03.635 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=27, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-12-01 21:04:03.635 WARNING (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Unknown cluster command 37 b'\xf1\x00' 2022-12-01 21:04:03.638 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received command 0x25 (TSN 27): b'\xf1\x00' 2022-12-01 21:04:03.639 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] No explicit handler for cluster command 0x25: b'\xf1\x00' 2022-12-01 21:04:03.787 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=24), 208, -46, 0x1c87, 255, 255, b'\t\x1b%\xf1\x00'] 2022-12-01 21:04:03.788 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=24, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1b%\xf1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=208, rssi=-46) 2022-12-01 21:04:03.788 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1b%\xf1\x00' 2022-12-01 21:04:03.789 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=27, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-12-01 21:04:03.789 WARNING (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Unknown cluster command 37 b'\xf1\x00' 2022-12-01 21:04:03.803 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received command 0x25 (TSN 27): b'\xf1\x00' 2022-12-01 21:04:03.804 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] No explicit handler for cluster command 0x25: b'\xf1\x00' 2022-12-01 21:04:03.937 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=25), 208, -46, 0x1c87, 255, 255, b'\t\x1b%\xf1\x00'] 2022-12-01 21:04:03.938 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=25, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1b%\xf1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=208, rssi=-46) 2022-12-01 21:04:03.938 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1b%\xf1\x00' 2022-12-01 21:04:03.939 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=27, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-12-01 21:04:03.940 WARNING (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Unknown cluster command 37 b'\xf1\x00' 2022-12-01 21:04:03.948 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received command 0x25 (TSN 27): b'\xf1\x00' 2022-12-01 21:04:03.948 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] No explicit handler for cluster command 0x25: b'\xf1\x00' 2022-12-01 21:04:05.948 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=26), 208, -46, 0x1c87, 255, 255, b'\t\x1b%\xf1\x00'] 2022-12-01 21:04:05.948 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=26, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1b%\xf1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=208, rssi=-46) 2022-12-01 21:04:05.949 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1b%\xf1\x00' 2022-12-01 21:04:05.950 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=27, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-12-01 21:04:05.950 WARNING (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Unknown cluster command 37 b'\xf1\x00' 2022-12-01 21:04:06.016 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received command 0x25 (TSN 27): b'\xf1\x00' 2022-12-01 21:04:06.016 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] No explicit handler for cluster command 0x25: b'\xf1\x00' 2022-12-01 21:04:07.778 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=27), 208, -46, 0x1c87, 255, 255, b'\t\x1c%\xf3\x00'] 2022-12-01 21:04:07.779 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=27, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1c%\xf3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=208, rssi=-46) 2022-12-01 21:04:07.779 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1c%\xf3\x00' 2022-12-01 21:04:07.783 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=28, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True) 2022-12-01 21:04:07.784 WARNING (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Unknown cluster command 37 b'\xf3\x00' 2022-12-01 21:04:07.802 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received command 0x25 (TSN 28): b'\xf3\x00' 2022-12-01 21:04:07.802 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] No explicit handler for cluster command 0x25: b'\xf3\x00' 2022-12-01 21:04:07.925 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=28), 213, -45, 0x1c87, 255, 255, b'\t\x1c%\xf3\x00'] 2022-12-01 21:04:07.927 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x1C87), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=28, profile_id=260, cluster_id=61184, data=Serialized[b'\t\x1c%\xf3\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=213, rssi=-45) 2022-12-01 21:04:07.927 DEBUG (MainThread) [zigpy.zcl] [0x1C87:1:0xef00] Received ZCL frame: b'\t\x1c%\xf3\x00' 2022-12-01 21:04:07.928 DEBUG (MainThread) [zigpy.zcl] [0x1C87: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=28, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)

seblang avatar Dec 01 '22 20:12 seblang

Hi Are there any updates on this request? I have the same device installed yesterday but can't get it to work. From what I understand ZHA needs to send a a reply on command 0x25 to confirm that there is a cloud connection, before it starts sending any data, as described here https://github.com/Koenkk/zigbee2mqtt/issues/15359#issuecomment-1342957715

I have some programming skills, but this is too difficult for me to figure out, can someone help with this? Big chance that the rest of the ts0601_din_power.py quirk works as soon as that this command is send. (if not, big chance that I can figure out the attributes and map it correctly as soon as it is being send by the device)

Warre118 avatar Dec 15 '22 10:12 Warre118

@javicalle Look in the link in the post before its very interesting and the "found" is implanted and tested by the same user as was doing the same with our "tuya magic" casting for Hubitat and Z2M and ZHA (deCONZ not) have implanting it from his work. I think "tuya cloud service status" need being implanted in your MCU commands and i think some other devices can needing it 2 (the LCD temperature sensors and some TRVs that is not reporting with very long intervals or not at all).

Thanks for digging and implanting your findings in Hubitat so other open system can using it @kkossev (our tuya magician) !!!

MattWestb avatar Dec 15 '22 11:12 MattWestb

From https://developer.tuya.com/en/docs/iot/tuya-zigbee-module-uart-communication-protocol?id=K9ear5khsqoty#title-32-MCU%20requests%20gateway%20connection%20status%20(0x25). Command 0x25 = Tuya gateway connection status And command 0x26 = Configure Zigbee network policy is interesting.

MattWestb avatar Dec 15 '22 11:12 MattWestb

Ok, let's try it...

That's my (quick & dirty) proposal:

  1. copy the current ts0601_din_power.py file:
  • https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_din_power.py
  1. edit the HikingManufClusterDinPower and add the following code (ie: between attributes declaration and the _update_attribute method):
        .../...
        HIKING_POWER_FACTOR_ATTR: ("power_factor", t.uint16_t, True),
    }

    class TuyaTsn(t.Struct):
        """Tuya request data."""

        status: t.uint8_t
        tsn: t.uint8_t

    client_commands = TuyaManufClusterAttributes.client_commands.copy()
    client_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status",
                {"data": TuyaTsn},
                True,
                is_manufacturer_specific=True,
            ),
        }
    )

    def handle_mcu_connection_status(self, payload: TuyaTsn) -> foundation.Status:
        """Handle gateway connection status requests (0x25)."""

        payload_rsp = 0x01  # 0x00 not connected to internet | 0x01 connected to internet | 0x02 time out

        self.create_catching_task(
            super().command(0x25, payload_rsp, expect_reply=False)
        )

        return foundation.Status.SUCCESS

    def _update_attribute(self, attrid, value):
        super()._update_attribute(attrid, value)
        .../...
  1. add the import foundation statement at the top of file:
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time

Save changes, restart HA and repair the device.

There is some instructions:

  • https://github.com/zigpy/zha-device-handlers/issues/1973#issuecomment-1331903614

If something isn't working, enable the debug logs and attach the relevant info. Put the logs between ``` marks or as attached file to easy reading.

javicalle avatar Dec 15 '22 21:12 javicalle

Hi, Thank you for the quick response, your help is much apperciated. I made the necessary changes to the custom quirk, however, there still seems to be an issue with the 0x25 command. since the warning changed, I'm quite sure the changes had an effect.

Now I get WARNING (MainThread) [zigpy.zcl] [0x93D7:1:0xef00] Data remains after deserializing ZCL frame: b'\xb9\x00'

I copied the most relevant lines from the debug log and pasted them below. If you need the complete file, happy to include this.

2022-12-15 23:46:50.850 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=61184, SrcAddr=0x93D7, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=40, SecurityUse=<Bool.false: 0>, TimeStamp=1369556, TSN=0, Data=b'\x09\x40\x25\xB9\x00', MacSrcAddr=0x93D7, MsgResultRadius=29)
2022-12-15 23:46:50.855 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x93D7), 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@%\xb9\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=29, non_member_radius=0, lqi=40, rssi=None)
2022-12-15 23:46:50.857 DEBUG (MainThread) [zigpy.zcl] [0x93D7:1:0xef00] Received ZCL frame: b'\t@%\xb9\x00'
2022-12-15 23:46:50.859 DEBUG (MainThread) [zigpy.zcl] [0x93D7: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=64, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-15 23:46:50.862 DEBUG (MainThread) [zigpy.zcl] [0x93D7:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_connection_status()
2022-12-15 23:46:50.863 WARNING (MainThread) [zigpy.zcl] [0x93D7:1:0xef00] Data remains after deserializing ZCL frame: b'\xb9\x00'
2022-12-15 23:46:50.873 DEBUG (MainThread) [zigpy.zcl] [0x93D7:1:0xef00] Received command 0x25 (TSN 64): mcu_connection_status()
2022-12-15 23:46:50.874 DEBUG (MainThread) [zigpy.zcl] [0x93D7:1:0xef00] No explicit handler for cluster command 0x25: mcu_connection_status()

Warre118 avatar Dec 15 '22 23:12 Warre118

I have updated the code in my comment adding a new class and updating its use in the commands update and method definition.

Please, be sure to put your logs like this:

```
here all your logs
```

javicalle avatar Dec 15 '22 23:12 javicalle

The warnings are gone now, but the device is still only sending the x25 messages. I also see the "no explicit handler" message at the bottom of the log. not sure if it helps, but here is the debug log where i got below snippet from. home-assistant_zha_2022-12-16T00-39-37.512Z.log.txt

2022-12-16 01:39:24.728 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=61184, SrcAddr=0x3DFB, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=40, SecurityUse=<Bool.false: 0>, TimeStamp=501062, TSN=0, Data=b'\x09\x3B\x25\x5D\x00', MacSrcAddr=0x3DFB, MsgResultRadius=29)
2022-12-16 01:39:24.732 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x3DFB), 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'], tx_options=<TransmitOptions.NONE: 0>, radius=29, non_member_radius=0, lqi=40, rssi=None)
2022-12-16 01:39:24.734 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Received ZCL frame: b'\t;%]\x00'
2022-12-16 01:39:24.737 DEBUG (MainThread) [zigpy.zcl] [0x3DFB: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=59, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-16 01:39:24.740 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_connection_status(data=TuyaTsn(status=93, tsn=0))
2022-12-16 01:39:24.741 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Received command 0x25 (TSN 59): mcu_connection_status(data=TuyaTsn(status=93, tsn=0))
2022-12-16 01:39:24.743 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] No explicit handler for cluster command 0x25: mcu_connection_status(data=TuyaTsn(status=93, tsn=0))

Warre118 avatar Dec 16 '22 01:12 Warre118

Have you updated also this part?

def handle_mcu_connection_status(self, payload: TuyaTsn) -> foundation.Status:

javicalle avatar Dec 16 '22 06:12 javicalle

Just double checked, but that looks ok. I copy/pasted the whole block of code over the old block, did a restart of home assistant, and re-paired the device. Just to be sure, below a printscreen of the adapted class.

image

I also see a timeout error during initialisation, but this is for the 0x0006 cluster, so I don't think that is relevant for now.

2022-12-16 08:38:30.300 WARNING (MainThread) [homeassistant.components.zha.core.channels.base] [0x3DFB:16:0x0006]: async_initialize: all attempts have failed: [TimeoutError(), TimeoutError(), TimeoutError(), TimeoutError()]

Warre118 avatar Dec 16 '22 08:12 Warre118

Not sure if related but it lacks an break like before the _update_attribute method. I'll check later.

javicalle avatar Dec 16 '22 09:12 javicalle

Hi, @javicalle have you been able to take a look? I had another look over the weekend, but I can't figure out why the handle is not recognized. If I base myself on the handle_mcu_version_response in this ini.py, as far as I can tell everything looks ok.

The only thing I see, is that in this comand the client_commands are copied from the TuyaNewManufCluster class instead of the TuyaManufClusterAttributes class. so I copied the command from the TuyaManufCluster class, (that seemed the most logic position to me) but the results are the same.

Warre118 avatar Dec 19 '22 08:12 Warre118

ok, I think I got the handle working, based on the logs below. However the device is still repeating the x25 command, so the exepected response does not seem correct. here you find the complete custom quirk file. Below the lines I changed to get it working.

from zhaquirks.tuya import TuyaManufClusterAttributes, TuyaOnOff, TuyaSwitch, TuyaNewManufCluster

class HikingManufClusterDinPower(TuyaManufClusterAttributes, TuyaNewManufCluster):

client_commands = TuyaNewManufCluster.client_commands.copy()
2022-12-19 09:34:14.694 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=61184, SrcAddr=0x3DFB, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=40, SecurityUse=<Bool.false: 0>, TimeStamp=9681462, TSN=0, Data=b'\x09\x27\x25\x11\x00', MacSrcAddr=0x3DFB, MsgResultRadius=29)
2022-12-19 09:34:14.699 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x3DFB), 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'%\x11\x00"], tx_options=<TransmitOptions.NONE: 0>, radius=29, non_member_radius=0, lqi=40, rssi=None)
2022-12-19 09:34:14.702 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Received ZCL frame: b"\t'%\x11\x00"
2022-12-19 09:34:14.704 DEBUG (MainThread) [zigpy.zcl] [0x3DFB: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=39, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-19 09:34:14.706 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_thisisatest(data=TuyaTsn(status=17, tsn=0))
2022-12-19 09:34:14.707 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Received command 0x25 (TSN 39): mcu_thisisatest(data=TuyaTsn(status=17, tsn=0))
2022-12-19 09:34:14.723 ERROR (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Traceback (most recent call last):
2022-12-19 09:34:14.734 DEBUG (MainThread) [zigpy.zcl] [0x3DFB: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=39, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-19 09:34:14.736 DEBUG (MainThread) [zigpy.zcl] [0x3DFB:1:0xef00] Sending reply: Default_Response(command_id=37, status=<Status.SUCCESS: 0>)
2022-12-19 09:34:14.738 DEBUG (MainThread) [zigpy_znp.zigbee.application] Sending packet ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x3DFB), dst_ep=1, source_route=None, extended_timeout=False, tsn=39, profile_id=260, cluster_id=61184, data=Serialized[b"\x18'\x0b%\x00"], tx_options=<TransmitOptions.ACK: 1>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2022-12-19 09:34:14.742 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x3DFB), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=61184, TSN=39, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=0, Data=b'\x18\x27\x0B\x25\x00')

Warre118 avatar Dec 19 '22 08:12 Warre118

However the device is still repeating the 0x25 command, so the exepected response does not seem correct

The payload for the 0x25 command answer should be 3 bytes - the previously received serial number (2 bytes) plus 0x01. See the sniffed communication to Tuya gateway. So either the Tuya documentation or the MatSee Plus implementation for this device may be wrong,

However, even with the correct answer to 0x25 command, the device will still continue to query the ZIgbee coordinator every 5 seconds. The LED will blink shortly every 3 seconds if the 0x25 command answer was OK. Otherwise will stay constantly lit.

kkossev avatar Dec 20 '22 04:12 kkossev

Thank you for the info. The LED does not blink, it is permanent on, and In the logs I only see the x25 command coming trough in the form of Data=b'\x09\x27\x25\x11\x00'

I'm way over my head here, so below logic could be totatly wrong. To get a specific example, I'll use the data in the logs of above comment. If the received string is Data=b'\x09\x27\x25\x11\x00' then, from what I understand, I have to reply with x27\x11\x01. Now my question is how do I build this reply?

The data received from the device is stored via the class TuyaTsn(t.Struct): If I check the status: t.uint8_t I get x11 If I check the tsn: t.uint8_t I always get 0 Based on that, I think only the second part of the data string (x25\x11\x00) is stored.

For now this is my code, but I'm quite sure the payload_rsp needs to be defined differently. p.s. in this comment the code block is colorcoded, How do I do that? I can't find this in the Github documentation. 😅

    class TuyaTsn(t.Struct):
        """Tuya request data."""

        status: t.uint8_t
        tsn: t.uint8_t

    client_commands = TuyaNewManufCluster.client_commands.copy()
    client_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_thisisatest",
                {"data": TuyaTsn},
                True,
                is_manufacturer_specific=True,
            ),
        }
    )

    def handle_mcu_thisisatest(self, payload: TuyaTsn) -> foundation.Status:
        """Handle gateway connection status requests (0x25)."""
        payload_rsp: t.uint32_t
        payload_rsp = payload.status, payload.tsn, 0x01  # 0x00 not connected to internet | 0x01 connected to internet | 0x02 time out
        
        self.debug("handle_mcu_thisisatest response: %s", payload_rsp)
        
        self.create_catching_task(
            super().command(0x25, payload_rsp, expect_reply=False)
        )

        return foundation.Status.SUCCESS
2022-12-21 09:42:14.966 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=61184, SrcAddr=0xC817, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=76, SecurityUse=<Bool.false: 0>, TimeStamp=3890105, TSN=0, Data=b'\x09\x53\x25\xEC\x00', MacSrcAddr=0xDF0C, MsgResultRadius=28)
2022-12-21 09:42:14.967 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC817), 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'\tS%\xec\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=76, rssi=None)
2022-12-21 09:42:14.968 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received ZCL frame: b'\tS%\xec\x00'
2022-12-21 09:42:14.968 DEBUG (MainThread) [zigpy.zcl] [0xC817: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=83, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-21 09:42:14.970 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_thisisatest(data=TuyaTsn(status=236, tsn=0))
2022-12-21 09:42:14.970 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received command 0x25 (TSN 83): mcu_thisisatest(data=TuyaTsn(status=236, tsn=0))
2022-12-21 09:42:14.971 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] handle_mcu_thisisatest response: (0, 236, 1)
2022-12-21 09:42:14.974 ERROR (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/zigpy/quirks/__init__.py", line 173, in command
    command = self.server_commands[command_id]
KeyError: 37

2022-12-21 09:42:14.975 DEBUG (Thread-13) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f32d0ec5540>, 'UPDATE devices_v11\n                    SET last_seen=:ts\n                    WHERE ieee=:ieee AND :ts - last_seen > :min_last_seen_delta', {'ts': 1671612134.967824, 'ieee': e0:79:8d:ff:fe:de:3b:71, 'min_last_seen_delta': 30.0})
2022-12-21 09:42:14.979 DEBUG (Thread-13) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f32d0ec5540>, 'UPDATE devices_v11\n                    SET last_seen=:ts\n                    WHERE ieee=:ieee AND :ts - last_seen > :min_last_seen_delta', {'ts': 1671612134.967824, 'ieee': e0:79:8d:ff:fe:de:3b:71, 'min_last_seen_delta': 30.0}) completed
2022-12-21 09:42:14.982 DEBUG (MainThread) [zigpy.zcl] [0xC817: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=83, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-21 09:42:14.982 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Sending reply: Default_Response(command_id=37, status=<Status.SUCCESS: 0>)
2022-12-21 09:42:14.983 DEBUG (MainThread) [zigpy_znp.zigbee.application] Sending packet ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC817), dst_ep=1, source_route=None, extended_timeout=False, tsn=83, profile_id=260, cluster_id=61184, data=Serialized[b'\x18S\x0b%\x00'], tx_options=<TransmitOptions.ACK: 1>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2022-12-21 09:42:14.986 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xC817), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=61184, TSN=83, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=0, Data=b'\x18\x53\x0B\x25\x00')
2022-12-21 09:42:14.988 DEBUG (Thread-13) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f32d0ec5540>)
2022-12-21 09:42:14.990 DEBUG (Thread-13) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f32d0ec5540>) completed
2022-12-21 09:42:15.007 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-12-21 09:42:15.053 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=83)

Warre118 avatar Dec 21 '22 09:12 Warre118

Sorry for the late response.

The only thing I see, is that in this comand the client_commands are copied from the TuyaNewManufCluster class instead of the TuyaManufClusterAttributes class. so I copied the command from the TuyaManufCluster class, (that seemed the most logic position to me) but the results are the same.

No, that is not correct. The TuyaNewManufCluster is another diferent approach (for the same target) but don't apply here.

However the device is still repeating the x25 command

Repeating from time to time is not a problem. The problem is if there are retries (with the same tsn number). Can you check it?

In any case, the response message (Data=b'\x18\x27\x0B\x25\x00') is not what I would expect.

2022-12-21 09:42:14.974 ERROR (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/zigpy/quirks/__init__.py", line 173, in command
    command = self.server_commands[command_id]
KeyError: 37

That's interesting... We need to define also the server_commands to be able to send the response.

Putting all together that would be:

ts0601_din_power.py
"""Tuya Din Power Meter."""
from zigpy.profiles import zha
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time
from zigpy.zcl.clusters.homeautomation import ElectricalMeasurement
from zigpy.zcl.clusters.smartenergy import Metering

from zhaquirks import Bus, LocalDataCluster
from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import TuyaManufClusterAttributes, TuyaOnOff, TuyaSwitch

TUYA_TOTAL_ENERGY_ATTR = 0x0211
TUYA_CURRENT_ATTR = 0x0212
TUYA_POWER_ATTR = 0x0213
TUYA_VOLTAGE_ATTR = 0x0214
TUYA_DIN_SWITCH_ATTR = 0x0101

SWITCH_EVENT = "switch_event"

"""Hiking Power Meter Attributes"""
HIKING_DIN_SWITCH_ATTR = 0x0110
HIKING_TOTAL_ENERGY_DELIVERED_ATTR = 0x0201
HIKING_TOTAL_ENERGY_RECEIVED_ATTR = 0x0266
HIKING_VOLTAGE_CURRENT_ATTR = 0x0006
HIKING_POWER_ATTR = 0x0267
HIKING_FREQUENCY_ATTR = 0x0269
HIKING_POWER_FACTOR_ATTR = 0x026F
HIKING_TOTAL_REACTIVE_ATTR = 0x026D
HIKING_REACTIVE_POWER_ATTR = 0x026E


class TuyaManufClusterDinPower(TuyaManufClusterAttributes):
    """Manufacturer Specific Cluster of the Tuya Power Meter device."""

    attributes = {
        TUYA_TOTAL_ENERGY_ATTR: ("energy", t.uint16_t, True),
        TUYA_CURRENT_ATTR: ("current", t.int16s, True),
        TUYA_POWER_ATTR: ("power", t.uint16_t, True),
        TUYA_VOLTAGE_ATTR: ("voltage", t.uint16_t, True),
        TUYA_DIN_SWITCH_ATTR: ("switch", t.uint8_t, True),
    }

    def _update_attribute(self, attrid, value):
        super()._update_attribute(attrid, value)
        if attrid == TUYA_TOTAL_ENERGY_ATTR:
            self.endpoint.smartenergy_metering.energy_deliver_reported(value / 100)
        elif attrid == TUYA_CURRENT_ATTR:
            self.endpoint.electrical_measurement.current_reported(value)
        elif attrid == TUYA_POWER_ATTR:
            self.endpoint.electrical_measurement.power_reported(value / 10)
        elif attrid == TUYA_VOLTAGE_ATTR:
            self.endpoint.electrical_measurement.voltage_reported(value / 10)
        elif attrid == TUYA_DIN_SWITCH_ATTR:
            self.endpoint.device.switch_bus.listener_event(
                SWITCH_EVENT, self.endpoint.endpoint_id, value
            )


class TuyaPowerMeasurement(LocalDataCluster, ElectricalMeasurement):
    """Custom class for power, voltage and current measurement."""

    cluster_id = ElectricalMeasurement.cluster_id

    POWER_ID = 0x050B
    VOLTAGE_ID = 0x0505
    CURRENT_ID = 0x0508
    REACTIVE_POWER_ID = 0x050E
    AC_FREQUENCY_ID = 0x0300
    TOTAL_REACTIVE_POWER_ID = 0x0305
    POWER_FACTOR_ID = 0x0510

    AC_CURRENT_MULTIPLIER = 0x0602
    AC_CURRENT_DIVISOR = 0x0603
    AC_FREQUENCY_MULTIPLIER = 0x0400
    AC_FREQUENCY_DIVISOR = 0x0401

    _CONSTANT_ATTRIBUTES = {
        AC_CURRENT_MULTIPLIER: 1,
        AC_CURRENT_DIVISOR: 1000,
        AC_FREQUENCY_MULTIPLIER: 1,
        AC_FREQUENCY_DIVISOR: 100,
    }

    def voltage_reported(self, value):
        """Voltage reported."""
        self._update_attribute(self.VOLTAGE_ID, value)

    def power_reported(self, value):
        """Power reported."""
        self._update_attribute(self.POWER_ID, value)

    def power_factor_reported(self, value):
        """Power Factor reported."""
        self._update_attribute(self.POWER_FACTOR_ID, value)

    def reactive_power_reported(self, value):
        """Reactive Power reported."""
        self._update_attribute(self.REACTIVE_POWER_ID, value)

    def current_reported(self, value):
        """Ampers reported."""
        self._update_attribute(self.CURRENT_ID, value)

    def frequency_reported(self, value):
        """AC Frequency reported."""
        self._update_attribute(self.AC_FREQUENCY_ID, value)

    def reactive_energy_reported(self, value):
        """Summation Reactive Energy reported."""
        self._update_attribute(self.TOTAL_REACTIVE_POWER_ID, value)


class TuyaElectricalMeasurement(LocalDataCluster, Metering):
    """Custom class for total energy measurement."""

    cluster_id = Metering.cluster_id
    CURRENT_DELIVERED_ID = 0x0000
    CURRENT_RECEIVED_ID = 0x0001
    POWER_WATT = 0x0000

    """Setting unit of measurement."""
    _CONSTANT_ATTRIBUTES = {0x0300: POWER_WATT}

    def energy_deliver_reported(self, value):
        """Summation Energy Deliver reported."""
        self._update_attribute(self.CURRENT_DELIVERED_ID, value)

    def energy_receive_reported(self, value):
        """Summation Energy Receive reported."""
        self._update_attribute(self.CURRENT_RECEIVED_ID, value)


class HikingManufClusterDinPower(TuyaManufClusterAttributes):
    """Manufacturer Specific Cluster of the Hiking Power Meter device."""

    attributes = {
        HIKING_DIN_SWITCH_ATTR: ("switch", t.uint8_t, True),
        HIKING_TOTAL_ENERGY_DELIVERED_ATTR: ("energy_delivered", t.uint16_t, True),
        HIKING_TOTAL_ENERGY_RECEIVED_ATTR: ("energy_received", t.uint16_t, True),
        HIKING_VOLTAGE_CURRENT_ATTR: ("voltage_current", t.uint32_t, True),
        HIKING_POWER_ATTR: ("power", t.uint16_t, True),
        HIKING_FREQUENCY_ATTR: ("frequency", t.uint16_t, True),
        HIKING_TOTAL_REACTIVE_ATTR: ("total_reactive_energy", t.int32s, True),
        HIKING_REACTIVE_POWER_ATTR: ("reactive_power", t.int16s, True),
        HIKING_POWER_FACTOR_ATTR: ("power_factor", t.uint16_t, True),
    }

    class TuyaConnectionStatus(t.Struct):
        """Tuya request data."""

        data_1: t.uint8_t
        data_2: t.uint8_t

    client_commands = TuyaManufClusterAttributes.client_commands.copy()
    client_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status",
                {"payload": TuyaConnectionStatus},
                True,
                is_manufacturer_specific=True,
            ),
        }
    )

    class TuyaConnectionStatusRsp(t.Struct):
        """Tuya request data."""

        data_1: t.uint8_t
        data_2: t.uint8_t
        data_3: t.uint8_t

    server_commands = TuyaManufClusterAttributes.server_commands.copy()
    server_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status_rsp",
                {"payload": TuyaConnectionStatusRsp},
                False,
                is_manufacturer_specific=True,
            ),
        }
    )

    def handle_mcu_connection_status(self, payload: TuyaConnectionStatus) -> foundation.Status:
        """Handle gateway connection status requests (0x25)."""

        payload_rsp = TuyaConnectionStatusRsp()
        payload_rsp.data_1 = payload.data_1
        payload_rsp.data_2 = payload.data_2  # If this is data length would be 0x01
        payload_rsp.data_3 = 0x01  # 0x00 not connected to internet | 0x01 connected to internet | 0x02 time out

        self.create_catching_task(
            super().command(0x25, payload_rsp, expect_reply=False)
        )

        return foundation.Status.SUCCESS

    def _update_attribute(self, attrid, value):
        super()._update_attribute(attrid, value)
        if attrid == HIKING_DIN_SWITCH_ATTR:
            self.endpoint.device.switch_bus.listener_event(SWITCH_EVENT, 16, value)
        elif attrid == HIKING_TOTAL_ENERGY_DELIVERED_ATTR:
            self.endpoint.smartenergy_metering.energy_deliver_reported(value / 100)
        elif attrid == HIKING_TOTAL_ENERGY_RECEIVED_ATTR:
            self.endpoint.smartenergy_metering.energy_receive_reported(value / 100)
        elif attrid == HIKING_VOLTAGE_CURRENT_ATTR:
            self.endpoint.electrical_measurement.current_reported(value >> 16)
            self.endpoint.electrical_measurement.voltage_reported(
                (value & 0x0000FFFF) / 10
            )
        elif attrid == HIKING_POWER_ATTR:
            self.endpoint.electrical_measurement.power_reported(value)
        elif attrid == HIKING_FREQUENCY_ATTR:
            self.endpoint.electrical_measurement.frequency_reported(value)
        elif attrid == HIKING_TOTAL_REACTIVE_ATTR:
            self.endpoint.electrical_measurement.reactive_energy_reported(value)
        elif attrid == HIKING_REACTIVE_POWER_ATTR:
            self.endpoint.electrical_measurement.reactive_power_reported(value)
        elif attrid == HIKING_POWER_FACTOR_ATTR:
            self.endpoint.electrical_measurement.power_factor_reported(value / 10)


class TuyaPowerMeter(TuyaSwitch):
    """Tuya power meter device."""

    def __init__(self, *args, **kwargs):
        """Init device."""
        self.switch_bus = Bus()
        super().__init__(*args, **kwargs)

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE200_byzdayie", "TS0601"),
            ("_TZE200_ewxhg6o9", "TS0601"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=51
            # device_version=1
            # input_clusters=[0, 4, 5, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterAttributes.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterDinPower,
                    TuyaPowerMeasurement,
                    TuyaElectricalMeasurement,
                    TuyaOnOff,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        }
    }


class HikingPowerMeter(TuyaSwitch):
    """Hiking Power Meter Device - DDS238-2."""

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE200_bkkmqmyo", "TS0601"),
            ("_TZE204_cjbofhxw", "TS0601"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=51
            # device_version=1
            # input_clusters=[0, 4, 5, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterAttributes.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    HikingManufClusterDinPower,
                    TuyaElectricalMeasurement,
                    TuyaPowerMeasurement,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            16: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    TuyaOnOff,
                ],
                OUTPUT_CLUSTERS: [],
            },
        }
    }

PS: you can color your code with:

```python
YOUR CODE HERE
```

javicalle avatar Dec 21 '22 20:12 javicalle

If I check the status: t.uint8_t I get x11

This value change over time? Or is exactly x11 always?

javicalle avatar Dec 21 '22 20:12 javicalle

The message is repeated five times, then there is a timeout of 5 seconds, and then the TSN number goes up with one decimal, and the status number goes up with two decimals. Below an example.

With the code above the No explicit handler for cluster command 0x25: mcu_connection_status pops up.

2022-12-21 22:56:28.421 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC817), 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'\tu%\xd4\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=127, rssi=None)
2022-12-21 22:56:28.423 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received ZCL frame: b'\tu%\xd4\x00'
2022-12-21 22:56:28.427 DEBUG (MainThread) [zigpy.zcl] [0xC817: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=117, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-21 22:56:28.431 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_connection_status(payload=TuyaConnectionStatus(data_1=212, data_2=0))
2022-12-21 22:56:28.434 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received command 0x25 (TSN 117): mcu_connection_status(payload=TuyaConnectionStatus(data_1=212, data_2=0))
2022-12-21 22:56:28.441 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] No explicit handler for cluster command 0x25: mcu_connection_status(payload=TuyaConnectionStatus(data_1=212, data_2=0))
------------------------------------------------------------------------------------------------------------------------------------
2022-12-21 22:56:32.082 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC817), 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'\tv%\xd6\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=127, rssi=None)
2022-12-21 22:56:32.083 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received ZCL frame: b'\tv%\xd6\x00'
2022-12-21 22:56:32.084 DEBUG (MainThread) [zigpy.zcl] [0xC817: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=118, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-21 22:56:32.085 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_connection_status(payload=TuyaConnectionStatus(data_1=214, data_2=0))
2022-12-21 22:56:32.086 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received command 0x25 (TSN 118): mcu_connection_status(payload=TuyaConnectionStatus(data_1=214, data_2=0))
2022-12-21 22:56:32.087 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] No explicit handler for cluster command 0x25: mcu_connection_status(payload=TuyaConnectionStatus(data_1=214, data_2=0))

Warre118 avatar Dec 21 '22 22:12 Warre118

If one unicats is not being acked the sender is sending it with the same TSN after some hundred millS. Id the system (the Zibee stack if ZCL or the quirk id not ZCL) sending one default resonance to the device ? If not is the device doing right and the the system is doing wrong.

Default response from quirk is implanted in tuya INIT must only using the right device class for using it.

MattWestb avatar Dec 21 '22 23:12 MattWestb

Thanks for testing. I'm a bit confused here.

Can you try replacing the copy() parr like this?

client_commands = TuyaManufCluster.client_commands.copy()
server_commands = TuyaManufCluster.server_commands.copy()

javicalle avatar Dec 21 '22 23:12 javicalle

Hi javicalle, That gives me the same error message.

If I use the TuyaNewManufCluster , the handle is recognized, but now I get a traceback. I had to import the class and define it like described here Below you find the log, and the adapted code that generated this log.

My reasoning is that the 'TuyaNewManufCluster' contains a similar error handling message as I see in the logs except it specifically says tuya handler.

In the code I also changed

def handle_mcu_connection_status(self, payload: TuyaTsn)  -> foundation.Status:

to

def handle_mcu_connection_status(self, payload: TuyaConnectionStatus) -> foundation.Status:
2022-12-22 08:29:11.019 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=61184, SrcAddr=0xC817, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=58, SecurityUse=<Bool.false: 0>, TimeStamp=1497354, TSN=0, Data=b'\x09\x6C\x25\x1E\x00', MacSrcAddr=0xA4E2, MsgResultRadius=28)
2022-12-22 08:29:11.023 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xC817), 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'\tl%\x1e\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=58, rssi=None)
2022-12-22 08:29:11.026 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received ZCL frame: b'\tl%\x1e\x00'
2022-12-22 08:29:11.030 DEBUG (MainThread) [zigpy.zcl] [0xC817: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=108, command_id=37, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-12-22 08:29:11.036 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Decoded ZCL frame: HikingManufClusterDinPower:mcu_connection_status(payload=TuyaConnectionStatus(data_1=30, data_2=0))
2022-12-22 08:29:11.038 DEBUG (MainThread) [zigpy.zcl] [0xC817:1:0xef00] Received command 0x25 (TSN 108): mcu_connection_status(payload=TuyaConnectionStatus(data_1=30, data_2=0))
2022-12-22 08:29:11.040 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/zigpy_znp/zigbee/application.py", line 588, in on_af_message
    self.packet_received(
  File "/usr/local/lib/python3.10/site-packages/zigpy/application.py", line 855, in packet_received
    self.handle_message(
  File "/usr/local/lib/python3.10/site-packages/zigpy/application.py", line 361, in handle_message
    return sender.handle_message(
  File "/usr/local/lib/python3.10/site-packages/zigpy/device.py", line 370, in handle_message
    return endpoint.handle_message(
  File "/usr/local/lib/python3.10/site-packages/zigpy/endpoint.py", line 224, in handle_message
    handler(hdr, args, dst_addressing=dst_addressing)
  File "/usr/local/lib/python3.10/site-packages/zigpy/zcl/__init__.py", line 373, in handle_message
    self.handle_cluster_request(hdr, args, dst_addressing=dst_addressing)
  File "/usr/local/lib/python3.10/site-packages/zhaquirks/tuya/__init__.py", line 429, in handle_cluster_request
    return super().handle_cluster_request(
  File "/usr/local/lib/python3.10/site-packages/zhaquirks/tuya/__init__.py", line 377, in handle_cluster_request
    return super().handle_cluster_request(
  File "/usr/local/lib/python3.10/site-packages/zhaquirks/tuya/__init__.py", line 1431, in handle_cluster_request
    status = getattr(self, handler_name)(*args)
  File "/config/custom_zha_quirks/ts0601_din_power.py", line 198, in handle_mcu_connection_status
    payload_rsp = TuyaConnectionStatusRsp()
NameError: name 'TuyaConnectionStatusRsp' is not defined
"""Tuya Din Power Meter."""
from zigpy.profiles import zha
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time
from zigpy.zcl.clusters.homeautomation import ElectricalMeasurement
from zigpy.zcl.clusters.smartenergy import Metering

from zhaquirks import Bus, LocalDataCluster
from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import TuyaManufClusterAttributes, TuyaOnOff, TuyaSwitch, TuyaNewManufCluster

TUYA_TOTAL_ENERGY_ATTR = 0x0211
TUYA_CURRENT_ATTR = 0x0212
TUYA_POWER_ATTR = 0x0213
TUYA_VOLTAGE_ATTR = 0x0214
TUYA_DIN_SWITCH_ATTR = 0x0101

SWITCH_EVENT = "switch_event"

"""Hiking Power Meter Attributes"""
HIKING_DIN_SWITCH_ATTR = 0x0110
HIKING_TOTAL_ENERGY_DELIVERED_ATTR = 0x0201
HIKING_TOTAL_ENERGY_RECEIVED_ATTR = 0x0266
HIKING_VOLTAGE_CURRENT_ATTR = 0x0006
HIKING_POWER_ATTR = 0x0267
HIKING_FREQUENCY_ATTR = 0x0269
HIKING_POWER_FACTOR_ATTR = 0x026F
HIKING_TOTAL_REACTIVE_ATTR = 0x026D
HIKING_REACTIVE_POWER_ATTR = 0x026E


class TuyaManufClusterDinPower(TuyaManufClusterAttributes):
    """Manufacturer Specific Cluster of the Tuya Power Meter device."""

    attributes = {
        TUYA_TOTAL_ENERGY_ATTR: ("energy", t.uint16_t, True),
        TUYA_CURRENT_ATTR: ("current", t.int16s, True),
        TUYA_POWER_ATTR: ("power", t.uint16_t, True),
        TUYA_VOLTAGE_ATTR: ("voltage", t.uint16_t, True),
        TUYA_DIN_SWITCH_ATTR: ("switch", t.uint8_t, True),
    }

    def _update_attribute(self, attrid, value):
        super()._update_attribute(attrid, value)
        if attrid == TUYA_TOTAL_ENERGY_ATTR:
            self.endpoint.smartenergy_metering.energy_deliver_reported(value / 100)
        elif attrid == TUYA_CURRENT_ATTR:
            self.endpoint.electrical_measurement.current_reported(value)
        elif attrid == TUYA_POWER_ATTR:
            self.endpoint.electrical_measurement.power_reported(value / 10)
        elif attrid == TUYA_VOLTAGE_ATTR:
            self.endpoint.electrical_measurement.voltage_reported(value / 10)
        elif attrid == TUYA_DIN_SWITCH_ATTR:
            self.endpoint.device.switch_bus.listener_event(
                SWITCH_EVENT, self.endpoint.endpoint_id, value
            )


class TuyaPowerMeasurement(LocalDataCluster, ElectricalMeasurement):
    """Custom class for power, voltage and current measurement."""

    cluster_id = ElectricalMeasurement.cluster_id

    POWER_ID = 0x050B
    VOLTAGE_ID = 0x0505
    CURRENT_ID = 0x0508
    REACTIVE_POWER_ID = 0x050E
    AC_FREQUENCY_ID = 0x0300
    TOTAL_REACTIVE_POWER_ID = 0x0305
    POWER_FACTOR_ID = 0x0510

    AC_CURRENT_MULTIPLIER = 0x0602
    AC_CURRENT_DIVISOR = 0x0603
    AC_FREQUENCY_MULTIPLIER = 0x0400
    AC_FREQUENCY_DIVISOR = 0x0401

    _CONSTANT_ATTRIBUTES = {
        AC_CURRENT_MULTIPLIER: 1,
        AC_CURRENT_DIVISOR: 1000,
        AC_FREQUENCY_MULTIPLIER: 1,
        AC_FREQUENCY_DIVISOR: 100,
    }

    def voltage_reported(self, value):
        """Voltage reported."""
        self._update_attribute(self.VOLTAGE_ID, value)

    def power_reported(self, value):
        """Power reported."""
        self._update_attribute(self.POWER_ID, value)

    def power_factor_reported(self, value):
        """Power Factor reported."""
        self._update_attribute(self.POWER_FACTOR_ID, value)

    def reactive_power_reported(self, value):
        """Reactive Power reported."""
        self._update_attribute(self.REACTIVE_POWER_ID, value)

    def current_reported(self, value):
        """Ampers reported."""
        self._update_attribute(self.CURRENT_ID, value)

    def frequency_reported(self, value):
        """AC Frequency reported."""
        self._update_attribute(self.AC_FREQUENCY_ID, value)

    def reactive_energy_reported(self, value):
        """Summation Reactive Energy reported."""
        self._update_attribute(self.TOTAL_REACTIVE_POWER_ID, value)


class TuyaElectricalMeasurement(LocalDataCluster, Metering):
    """Custom class for total energy measurement."""

    cluster_id = Metering.cluster_id
    CURRENT_DELIVERED_ID = 0x0000
    CURRENT_RECEIVED_ID = 0x0001
    POWER_WATT = 0x0000

    """Setting unit of measurement."""
    _CONSTANT_ATTRIBUTES = {0x0300: POWER_WATT}

    def energy_deliver_reported(self, value):
        """Summation Energy Deliver reported."""
        self._update_attribute(self.CURRENT_DELIVERED_ID, value)

    def energy_receive_reported(self, value):
        """Summation Energy Receive reported."""
        self._update_attribute(self.CURRENT_RECEIVED_ID, value)


class HikingManufClusterDinPower(TuyaManufClusterAttributes, TuyaNewManufCluster):
    """Manufacturer Specific Cluster of the Hiking Power Meter device."""

    attributes = {
        HIKING_DIN_SWITCH_ATTR: ("switch", t.uint8_t, True),
        HIKING_TOTAL_ENERGY_DELIVERED_ATTR: ("energy_delivered", t.uint16_t, True),
        HIKING_TOTAL_ENERGY_RECEIVED_ATTR: ("energy_received", t.uint16_t, True),
        HIKING_VOLTAGE_CURRENT_ATTR: ("voltage_current", t.uint32_t, True),
        HIKING_POWER_ATTR: ("power", t.uint16_t, True),
        HIKING_FREQUENCY_ATTR: ("frequency", t.uint16_t, True),
        HIKING_TOTAL_REACTIVE_ATTR: ("total_reactive_energy", t.int32s, True),
        HIKING_REACTIVE_POWER_ATTR: ("reactive_power", t.int16s, True),
        HIKING_POWER_FACTOR_ATTR: ("power_factor", t.uint16_t, True),
    }

    class TuyaConnectionStatus(t.Struct):
        """Tuya request data."""

        data_1: t.uint8_t
        data_2: t.uint8_t

    client_commands = TuyaNewManufCluster.client_commands.copy()

    client_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status",
                {"payload": TuyaConnectionStatus},
                True,
                is_manufacturer_specific=True,
            ),
        }
    )

    class TuyaConnectionStatusRsp(t.Struct):
        """Tuya request data."""

        data_1: t.uint8_t
        data_2: t.uint8_t
        data_3: t.uint8_t

    server_commands = TuyaNewManufCluster.server_commands.copy()
    server_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status_rsp",
                {"payload": TuyaConnectionStatusRsp},
                True,
                is_manufacturer_specific=True,
            ),
        }
    )

    def handle_mcu_connection_status(self, payload: TuyaConnectionStatus) -> foundation.Status:
        """Handle gateway connection status requests (0x25)."""

            
        payload_rsp = TuyaConnectionStatusRsp()
        payload_rsp.data_1 = payload.data_1
        payload_rsp.data_2 = payload.data_2  # If this is data length would be 0x01
        payload_rsp.data_3 = 0x01  # 0x00 not connected to internet | 0x01 connected to internet | 0x02 time out

        self.create_catching_task(
            super().command(0x25, payload_rsp, expect_reply=False)
        )

        return foundation.Status.SUCCESS

    def _update_attribute(self, attrid, value):
        super()._update_attribute(attrid, value)
        if attrid == HIKING_DIN_SWITCH_ATTR:
            self.endpoint.device.switch_bus.listener_event(SWITCH_EVENT, 16, value)
        elif attrid == HIKING_TOTAL_ENERGY_DELIVERED_ATTR:
            self.endpoint.smartenergy_metering.energy_deliver_reported(value / 100)
        elif attrid == HIKING_TOTAL_ENERGY_RECEIVED_ATTR:
            self.endpoint.smartenergy_metering.energy_receive_reported(value / 100)
        elif attrid == HIKING_VOLTAGE_CURRENT_ATTR:
            self.endpoint.electrical_measurement.current_reported(value >> 16)
            self.endpoint.electrical_measurement.voltage_reported(
                (value & 0x0000FFFF) / 10
            )
        elif attrid == HIKING_POWER_ATTR:
            self.endpoint.electrical_measurement.power_reported(value)
        elif attrid == HIKING_FREQUENCY_ATTR:
            self.endpoint.electrical_measurement.frequency_reported(value)
        elif attrid == HIKING_TOTAL_REACTIVE_ATTR:
            self.endpoint.electrical_measurement.reactive_energy_reported(value)
        elif attrid == HIKING_REACTIVE_POWER_ATTR:
            self.endpoint.electrical_measurement.reactive_power_reported(value)
        elif attrid == HIKING_POWER_FACTOR_ATTR:
            self.endpoint.electrical_measurement.power_factor_reported(value / 10)


class TuyaPowerMeter(TuyaSwitch):
    """Tuya power meter device."""

    def __init__(self, *args, **kwargs):
        """Init device."""
        self.switch_bus = Bus()
        super().__init__(*args, **kwargs)

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE200_byzdayie", "TS0601"),
            ("_TZE200_ewxhg6o9", "TS0601"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=51
            # device_version=1
            # input_clusters=[0, 4, 5, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterAttributes.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterDinPower,
                    TuyaPowerMeasurement,
                    TuyaElectricalMeasurement,
                    TuyaOnOff,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        }
    }


class HikingPowerMeter(TuyaSwitch):
    """Hiking Power Meter Device - DDS238-2."""

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE200_bkkmqmyo", "TS0601"),
            ("_TZE204_cjbofhxw", "TS0601"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=51
            # device_version=1
            # input_clusters=[0, 4, 5, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterAttributes.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    HikingManufClusterDinPower,
                    TuyaElectricalMeasurement,
                    TuyaPowerMeasurement,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            16: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    TuyaOnOff,
                ],
                OUTPUT_CLUSTERS: [],
            },
        }
    }

Warre118 avatar Dec 22 '22 08:12 Warre118