question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[BUG] TS0002 switched on and off as a group from HA

See original GitHub issue

Describe the bug A have many 2-gang and 4-gang tuya zigbee switches. I’m connecting them to HomeAssistant using ZHA integration with Sonoff ZigBee 3.0 USB Dongle. They are identified as zhaquirks.tuya.ts000x.Switch_(2/4)G_GPP. When I press physical buttons on switch it works normal, but if I switch any single entity in HA it switches all 2 or 4 buttons together.

To Reproduce Steps to reproduce the behavior:

  1. Connect 2-gang switch to power
  2. Go to Settings > Devices & Services > “Configure” button for ZHA integration > “+ Add Device” button
  3. New device (TS0002 by _TZ3000_fvixbt4b, Quirk: zhaquirks.tuya.ts000x.Switch_2G_GPP) with two entities (both turned off) is discovered
  4. Turn on any entity
  5. Both buttons on switch clicked (relay turn on sound) and showed they turned on with light-emitting diodes
  6. In HA we see that both devices are turned on too
  7. Turn off any entity and they both turned off same way.

Expected behavior If I turn on/off single entity in HA I’m waiting to turn on/off only one button at switch

Device 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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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": "0x0100",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "2": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe001"
      ],
      "out_clusters": []
    },
    "242": {
      "profile_id": 41440,
      "device_type": "0x0061",
      "in_clusters": [],
      "out_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "_TZ3000_fvixbt4b",
  "model": "TS0002",
  "class": "zhaquirks.tuya.ts000x.Switch_2G_GPP"
}
Diagnostic information - this can be acquired by clicking on the "Download Diagnostics" button in the device settings
{
  "home_assistant": {
    "installation_type": "Home Assistant Container",
    "version": "2022.5.3",
    "dev": false,
    "hassio": false,
    "virtualenv": false,
    "python_version": "3.9.9",
    "docker": true,
    "arch": "armv7l",
    "timezone": "Europe/Moscow",
    "os_name": "Linux",
    "os_version": "4.1.19-v7+",
    "run_as_root": true
  },
  "custom_components": {
    "scheduler": {
      "version": "v0.0.0",
      "requirements": []
    },
    "yandex_station": {
      "version": "3.9.1",
      "requirements": []
    },
    "apple_tv": {
      "version": "3.0.1",
      "requirements": [
        "pyatv==0.10.0"
      ]
    },
    "yandex_smart_home": {
      "version": "0.4.1",
      "requirements": []
    },
    "mikrotik_router": {
      "version": "0.0.0",
      "requirements": [
        "librouteros>=3.2.0",
        "mac-vendor-lookup>=0.1.12"
      ]
    },
    "smartir": {
      "version": "1.17.6",
      "requirements": [
        "aiofiles==0.6.0"
      ]
    },
    "localtuya": {
      "version": "3.2.1",
      "requirements": []
    },
    "pyscript": {
      "version": "1.3.3",
      "requirements": [
        "croniter==1.3.4",
        "watchdog==2.1.6"
      ]
    },
    "hacs": {
      "version": "1.24.5",
      "requirements": [
        "aiogithubapi>=21.11.0"
      ]
    },
    "mikrotik_api": {
      "version": "2.0.0",
      "requirements": [
        "librouteros~=3.1"
      ]
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.29.0",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.73",
      "zigpy-deconz==0.16.0",
      "zigpy==0.45.1",
      "zigpy-xbee==0.14.0",
      "zigpy-zigate==0.7.4",
      "zigpy-znp==0.7.0"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "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": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      }
    ],
    "after_dependencies": [
      "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": 9594,
    "manufacturer": "_TZ3000_fvixbt4b",
    "model": "TS0002",
    "name": "_TZ3000_fvixbt4b TS0002",
    "quirk_applied": true,
    "quirk_class": "zhaquirks.tuya.ts000x.Switch_2G_GPP",
    "manufacturer_code": 4417,
    "power_source": "Mains",
    "lqi": 36,
    "rssi": null,
    "last_seen": "2022-05-23T23:29:24",
    "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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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": "0x0100",
          "in_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006",
            "0xe000",
            "0xe001"
          ],
          "out_clusters": [
            "0x000a",
            "0x0019"
          ]
        },
        "2": {
          "profile_id": 260,
          "device_type": "0x0100",
          "in_clusters": [
            "0x0004",
            "0x0005",
            "0x0006",
            "0xe001"
          ],
          "out_clusters": []
        },
        "242": {
          "profile_id": 41440,
          "device_type": "0x0061",
          "in_clusters": [],
          "out_clusters": [
            "0x0021"
          ]
        }
      }
    },
    "entities": [
      {
        "entity_id": "button.tz3000_fvixbt4b_ts0002_12e3d3f8_identify",
        "name": "_TZ3000_fvixbt4b TS0002"
      },
      {
        "entity_id": "light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off",
        "name": "_TZ3000_fvixbt4b TS0002"
      },
      {
        "entity_id": "light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2",
        "name": "_TZ3000_fvixbt4b TS0002"
      }
    ],
    "neighbors": [],
    "endpoint_names": [
      {
        "name": "ON_OFF_LIGHT"
      },
      {
        "name": "ON_OFF_LIGHT"
      },
      {
        "name": "unknown 97 device_type of 0xa1e0 profile id"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "74708c94fb7b5f6b4731f6d6b918b9e0",
    "area_id": null
  }
}
Logs of turning on entity from HA
2022-05-23 23:37:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: SYS.Ping.Req()
2022-05-23 23:37:26 DEBUG (MainThread) [zigpy_znp.api] Received command: SYS.Ping.Rsp(Capabilities=<MTCapabilities.APP_CNF|GP|UTIL|ZDO|AF|SYS: 1625>)
2022-05-23 23:37:28 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=light, service=turn_on, service_data=entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off>
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=25, command_id=1, *is_reply=False)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending request: on()
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x257A), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=6, TSN=25, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x01\x19\x01')
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=25)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=63, SecurityUse=<Bool.false: 0>, TimeStamp=7174501, TSN=0, Data=b'\x18\x19\x0B\x01\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=63, SecurityUse=<Bool.false: 0>, TimeStamp=7174684, TSN=0, Data=b'\x18\xC4\x0A\x00\x00\x10\x01', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=63, SecurityUse=<Bool.false: 0>, TimeStamp=7174936, TSN=0, Data=b'\x18\xC6\x0A\x00\x00\x10\x01', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=2, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=60, SecurityUse=<Bool.false: 0>, TimeStamp=7175149, TSN=0, Data=b'\x18\xC7\x0A\x00\x00\x10\x01', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\xC6\x0A\x00\x00\x10\x01'
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=198, command_id=10, *is_reply=True)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 198): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.true: 1>
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received ZCL frame: b'\x18\xC7\x0A\x00\x00\x10\x01'
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=199, command_id=10, *is_reply=True)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received command 0x0A (TSN 199): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Attribute report received: on_off=<Bool.true: 1>
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\x19\x0B\x01\x00'
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=25, command_id=11, *is_reply=True)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\xC4\x0A\x00\x00\x10\x01'
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=196, command_id=10, *is_reply=True)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 196): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.true: 1>
2022-05-23 23:37:28 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off, old_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:37:15.593513+03:00>, new_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=on; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], color_mode=onoff, off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:37:28.739260+03:00>>
2022-05-23 23:37:28 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2, old_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T21:44:23.517751+03:00>, new_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2=on; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], color_mode=onoff, off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:37:28.743883+03:00>>
2022-05-23 23:37:28 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x257A:1:0x0006]: executed 'on' command with args: '()' kwargs: '{}' result: Default_Response(command_id=1, status=<Status.SUCCESS: 0>)
2022-05-23 23:37:28 DEBUG (MainThread) [homeassistant.components.zha.entity] light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off: turned on: {'on_off': Default_Response(command_id=1, status=<Status.SUCCESS: 0>)}
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=2, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=66, SecurityUse=<Bool.false: 0>, TimeStamp=7187821, TSN=0, Data=b'\x18\xC5\x0A\x00\x00\x10\x01', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received ZCL frame: b'\x18\xC5\x0A\x00\x00\x10\x01'
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=197, command_id=10, *is_reply=True)
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received command 0x0A (TSN 197): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:37:28 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Attribute report received: on_off=<Bool.true: 1>
Logs of turning off entity from HA
2022-05-23 23:38:42 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=light, service=turn_off, service_data=entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off>
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=26, command_id=0, *is_reply=False)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending request: off()
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x257A), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=6, TSN=26, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x01\x1A\x00')
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.SrcRtgInd.Callback(DstAddr=0x257A, Relays=[])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=26)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=60, SecurityUse=<Bool.false: 0>, TimeStamp=11812600, TSN=0, Data=b'\x18\x1A\x0B\x00\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=60, SecurityUse=<Bool.false: 0>, TimeStamp=11812782, TSN=0, Data=b'\x18\xC8\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=60, SecurityUse=<Bool.false: 0>, TimeStamp=11813053, TSN=0, Data=b'\x18\xCA\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=2, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=60, SecurityUse=<Bool.false: 0>, TimeStamp=11813263, TSN=0, Data=b'\x18\xCB\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\xCA\x0A\x00\x00\x10\x00'
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=202, command_id=10, *is_reply=True)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 202): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received ZCL frame: b'\x18\xCB\x0A\x00\x00\x10\x00'
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=203, command_id=10, *is_reply=True)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received command 0x0A (TSN 203): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Attribute report received: on_off=<Bool.false: 0>
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\x1A\x0B\x00\x00'
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=26, command_id=11, *is_reply=True)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Default_Response(command_id=0, status=<Status.SUCCESS: 0>)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\xC8\x0A\x00\x00\x10\x00'
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=200, command_id=10, *is_reply=True)
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 200): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:42 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
2022-05-23 23:38:42 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off, old_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=on; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], color_mode=onoff, off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:37:28.739260+03:00>, new_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:38:42.933074+03:00>>
2022-05-23 23:38:42 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2, old_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2=on; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], color_mode=onoff, off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:37:28.743883+03:00>, new_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off_2=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:38:42.940437+03:00>>
2022-05-23 23:38:42 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x257A:1:0x0006]: executed 'off' command with args: '()' kwargs: '{}' result: Default_Response(command_id=0, status=<Status.SUCCESS: 0>)
2022-05-23 23:38:42 DEBUG (MainThread) [homeassistant.components.zha.entity] light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off: turned off: Default_Response(command_id=0, status=<Status.SUCCESS: 0>)
2022-05-23 23:38:43 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=2, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=54, SecurityUse=<Bool.false: 0>, TimeStamp=11825376, TSN=0, Data=b'\x18\xC9\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:43 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received ZCL frame: b'\x18\xC9\x0A\x00\x00\x10\x00'
2022-05-23 23:38:43 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=201, command_id=10, *is_reply=True)
2022-05-23 23:38:43 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:43 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Received command 0x0A (TSN 201): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:38:43 DEBUG (MainThread) [zigpy.zcl] [0x257A:2:0x0006] Attribute report received: on_off=<Bool.false: 0>
Logs of turning on entity by physical button
2022-05-23 23:38:56 DEBUG (MainThread) [zigpy_znp.api] Sending request: SYS.Ping.Req()
2022-05-23 23:38:56 DEBUG (MainThread) [zigpy_znp.api] Received command: SYS.Ping.Rsp(Capabilities=<MTCapabilities.APP_CNF|GP|UTIL|ZDO|AF|SYS: 1625>)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=15, SecurityUse=<Bool.false: 0>, TimeStamp=12714837, TSN=0, Data=b'\x08\xCC\x0A\x00\x00\x10\x01', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=15, SecurityUse=<Bool.false: 0>, TimeStamp=12715023, TSN=0, Data=b'\x18\xCD\x0A\x00\x00\x10\x01', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x08\xCC\x0A\x00\x00\x10\x01'
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=204, command_id=10, *is_reply=True)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 204): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.true: 1>
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=204, command_id=<GeneralCommand.Default_Response: 11>, *is_reply=True)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\xCD\x0A\x00\x00\x10\x01'
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=205, command_id=10, *is_reply=True)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 205): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.true: 1>))])
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.true: 1>
2022-05-23 23:38:57 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off, old_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:38:42.933074+03:00>, new_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=on; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], color_mode=onoff, off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:38:57.335885+03:00>>
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x257A), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=6, TSN=204, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK: 32>, Radius=30, Data=b'\x18\xCC\x0B\x0A\x00')
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-05-23 23:38:57 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=204)
2022-05-23 23:39:00 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event pyscript_running[L]: name=file_mikrotik_status_sync, entity_id=pyscript.file_mikrotik_status_sync, func_args=trigger_type=time, trigger_time=2022-05-23T23:39:00+03:00>
Logs of turning off entity by physical button
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=51, SecurityUse=<Bool.false: 0>, TimeStamp=13772587, TSN=0, Data=b'\x08\xCE\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=48, SecurityUse=<Bool.false: 0>, TimeStamp=13772774, TSN=0, Data=b'\x18\xCF\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x08\xCE\x0A\x00\x00\x10\x00'
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=206, command_id=10, *is_reply=True)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 206): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=206, command_id=<GeneralCommand.Default_Response: 11>, *is_reply=True)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x18\xCF\x0A\x00\x00\x10\x00'
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=207, command_id=10, *is_reply=True)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 207): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
2022-05-23 23:39:14 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off, old_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=on; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], color_mode=onoff, off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:38:57.335885+03:00>, new_state=<state light.tz3000_fvixbt4b_ts0002_12e3d3f8_on_off=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], off_brightness=None, friendly_name=_TZ3000_fvixbt4b TS0002 12e3d3f8 on_off, supported_features=8 @ 2022-05-23T23:39:14.260182+03:00>>
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x257A), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=6, TSN=206, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK: 32>, Radius=30, Data=b'\x18\xCE\x0B\x0A\x00')
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=206)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=6, SrcAddr=0x257A, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=33, SecurityUse=<Bool.false: 0>, TimeStamp=13785899, TSN=0, Data=b'\x08\xCE\x0A\x00\x00\x10\x00', MacSrcAddr=0x257A, MsgResultRadius=29)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received ZCL frame: b'\x08\xCE\x0A\x00\x00\x10\x00'
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=206, command_id=10, *is_reply=True)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Decoded ZCL frame: TuyaZBOnOffAttributeCluster:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Received command 0x0A (TSN 206): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=206, command_id=<GeneralCommand.Default_Response: 11>, *is_reply=True)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy.zcl] [0x257A:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x257A), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=6, TSN=206, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK: 32>, Radius=30, Data=b'\x18\xCE\x0B\x0A\x00')
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-05-23 23:39:14 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=206)

Additional context Here is switch that I’m testing: https://aliexpress.ru/item/1005003479909650.html I’m using this sonoff zigbee dongle: https://aliexpress.ru/item/1005003763454756.html I have home Assistant Core 2022.5.3 installed with docker homeassistant/raspberrypi2-homeassistant

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:18 (13 by maintainers)

github_iconTop GitHub Comments

2reactions
IIIEIIcommented, Jun 7, 2022

🤦‍♂️ it was my mistake, thanks a lot!

2reactions
javicallecommented, May 24, 2022

@IIIEII could you test with a local quirk? There is a modified version of tx000x.py:

tx000x.py
"""tuya TS000X Switches."""

import asyncio

from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
from zigpy.zcl.clusters.general import (
    Basic,
    GreenPowerProxy,
    Groups,
    Identify,
    OnOff,
    Ota,
    Scenes,
    Time,
)

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODEL,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import (
    TuyaZBE000Cluster,
    TuyaZBExternalSwitchTypeCluster,
    TuyaZBOnOffAttributeCluster,
)


class Switch_1G_GPP(CustomDevice):
    """Tuya 1 gang switch module with restore power state support."""

    signature = {
        MODEL: "TS0001",
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=266 device_type=256
            # device_version=1
            # input_clusters=[0, 3, 4, 5, 6, 57344, 57345]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            # <SimpleDescriptor endpoint=242 profile=41440 device_type=97
            # device_version=1
            # input_clusters=[]
            # output_clusters=[33]>
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBE000Cluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
        },
    }


class TuyaMagicSpell(CustomDevice):
    """Cast a magic spell for Tuya devices that needed."""

    def __init__(self, *args, **kwargs):
        """Initialize with task."""
        super().__init__(*args, **kwargs)

        # cast_tuya_magic_spell(self, tries=3)
        self._init_plug_task = asyncio.create_task(self.spell())

    async def spell(self) -> None:
        """Initialize device so that all endpoints become available."""
        basic_cluster = self.endpoints[1].in_clusters[0]

        self.debug("Device class will cast Tuya Magic Spell")
        attr_to_read = [4, 0, 1, 5, 7, 0xFFFE]
        await basic_cluster.read_attributes(attr_to_read)


class Switch_2G_GPP(TuyaMagicSpell, CustomDevice):
    """Tuya 2 gang switch module with restore power state support."""

    signature = {
        MODEL: "TS0002",
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=256
            # device_version=1
            # input_clusters=[0, 3, 4, 5, 6, 57344, 57345]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            # <SimpleDescriptor endpoint=2 profile=260 device_type=256
            # device_version=1
            # input_clusters=[4, 5, 6, 57345]
            # output_clusters=[]>
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            # <SimpleDescriptor endpoint=242 profile=41440 device_type=97
            # device_version=0
            # input_clusters=[]
            # output_clusters=[33]>
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBE000Cluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }


class Switch_3G_GPP(CustomDevice):
    """Tuya 3 gang switch module with restore power state support."""

    signature = {
        MODEL: "TS0003",
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=256
            # device_version=1
            # input_clusters=[0, 3, 4, 5, 6, 57344, 57345]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            # <SimpleDescriptor endpoint=2 profile=260 device_type=256
            # device_version=1
            # input_clusters=[4, 5, 6, 57345]
            # output_clusters=[]>
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            # <SimpleDescriptor endpoint=3 profile=260 device_type=256
            # device_version=1
            # input_clusters=[4, 5, 6, 57345]
            # output_clusters=[]>
            3: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            # <SimpleDescriptor endpoint=242 profile=41440 device_type=97
            # device_version=0
            # input_clusters=[]
            # output_clusters=[33]>
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBE000Cluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
            3: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }


class Switch_4G_GPP(CustomDevice):
    """Tuya 4 gang switch module with restore power state support."""

    signature = {
        MODEL: "TS0004",
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=256
            # device_version=1
            # input_clusters=[0, 3, 4, 5, 6, 57344, 57345]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            # <SimpleDescriptor endpoint=2 profile=260 device_type=256
            # device_version=1
            # input_clusters=[4, 5, 6, 57345]
            # output_clusters=[]>
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            # <SimpleDescriptor endpoint=3 profile=260 device_type=256
            # device_version=1
            # input_clusters=[4, 5, 6, 57345]
            # output_clusters=[]>
            3: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            # <SimpleDescriptor endpoint=3 profile=260 device_type=256
            # device_version=1
            # input_clusters=[4, 5, 6, 57345]
            # output_clusters=[]>
            4: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            # <SimpleDescriptor endpoint=242 profile=41440 device_type=97
            # device_version=0
            # input_clusters=[]
            # output_clusters=[33]>
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBE000Cluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
            3: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
            4: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
            242: {
                PROFILE_ID: 41440,
                DEVICE_TYPE: 97,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }

If you are not familiar with, there are some guides here to install local quirk:

Read more comments on GitHub >

github_iconTop Results From Across the Web

Group Lights turn off after restart of HA. Bug?
Hello, i have some light groups, for exmaple let's take one of them light: - platform: group name: Group Light Bedroom entities: ...
Read more >
The FlexConnect groups are missing in backup configuration file
Cisco Bug: CSCvi91017 - The FlexConnect groups are missing in backup configuration file.
Read more >
Error Message: 010c006e:5: All devices in traffic group <name ...
You activate or update the traffic group configuration and either all the devices in a traffic group contain a correct high availability (HA) ......
Read more >
Blue 2-1 - Z2M, Groups, Binding, and Multi-Press Actions ...
I'm attempting to troubleshoot issues with multi-press actions of the Blue 2-1 switch using Zigbee2MQTT (with Home Assistant).
Read more >
Possible Bug ? Tracks Grouped - No Group Selected.
In 1 case, all I had to do, was turn the ALL group On, then Off again, and the session was fine. Opening...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found