TS011F / TZ3000 Outlet switches all relays / incorrect quirks class

Hello,

I bought a TS011F / TZ3000 Zigbee outlet from Amazon a few months ago. The device has been working perfekt since day one. It gives me four switches for outlets and one switch for 5V power.
This one: https://smile.amazon.de/-/en/gp/product/B09TW36J98/

I bough another one a couple of days ago. This one will switch all relays when I press any button. The switching action in home assistant is always the same. It starts with the “zero” entitty ID and loops to the the last switch which is entity “_5”. This either turns all outlets on or all to off. Switching one is impossible.

The only difference I have found so far is that the working device is using the quirks class
"class": "zhaquirks.tuya.ts011f_plug.Plug_4AC_2USB"

while the unit with problems is using

"class": "zigpy.device.Device"

I have deleted the device from my network multiple times but it is always detected the same way.
I also tried to force the device class in configuration.yaml but it doesn’t work

zha:
  zigpy_config:
    znp_config:
      tx_power: 12
    network:
      channel: 1 
      channels: [1, 2, 3] 
    ota:
      ota_directory: /config/zigpy_ota
      ikea_provider: true
      #ledvance_provider: true
    device_config:
      a4:c1:38:4f:73:96:f6:8d:
        class: 'zhaquirks.tuya.ts011f_plug.Plug_4AC_2USB'

I was using HA docker 2022.2 but I just upgrade to 2022.7.7 and it behaves the same way.
Can anyone point me in the right direction? Maybe force the class somehow?

Here are the device signatures:
Working Setup

{
  "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": "0x010a",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "2": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": []
    },
    "3": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": []
    },
    "4": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": []
    },
    "5": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": []
    },
    "242": {
      "profile_id": 41440,
      "device_type": "0x0061",
      "in_clusters": [],
      "out_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "_TZ3000_o005nuxx",
  "model": "TS011F",
  "class": "zhaquirks.tuya.ts011f_plug.Plug_4AC_2USB"
}

This is the one switching all outlets

{
  "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": "0x010a",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "2": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe001"
      ],
      "out_clusters": []
    },
    "3": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe001"
      ],
      "out_clusters": []
    },
    "4": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe001"
      ],
      "out_clusters": []
    },
    "5": {
      "profile_id": 260,
      "device_type": "0x010a",
      "in_clusters": [
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe001"
      ],
      "out_clusters": []
    },
    "242": {
      "profile_id": 41440,
      "device_type": "0x0061",
      "in_clusters": [],
      "out_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "_TZ3000_cfnprab5",
  "model": "TS011F",
  "class": "zigpy.device.Device"
}

Any hint appreciated. Thanks

Copy this file, modify Plug_4AC_2USB to match your device signature, add it into the /config/custom_zha_quirks folder and make some tests.

I get this too.
Just bought a UK variant of the same device that came 15 minutes ago and I get the same behaviour.

Tried the Tuya app, but it requires a hub, so I’m keen to get this working in HA ZHA

Raised as a bug in Zigpy/ZHA github

1 Like

I had the same issue, but it was fixed using a new quirk as described here: https://github.com/zigpy/zha-device-handlers/issues/1632

I’m new to HA, could you provide details guide on what did you do. Thank you.

On this post on GitHub you will find a file attached: [Device Support Request] TS011F _TZ3000_cfnprab5 (XENON 4AC+2USB power strip) · Issue #1632 · zigpy/zha-device-handlers · GitHub

Copy that file, rename it removing the “.txt” at the end and then upload it to your Quirk folder on Home Assistant (usually under config\zha\quirks.

Remove the Power strip if you have already paired with Home Assistant (as you are having the error described in the first post here).
Restart Home Assistant, pair your device again and it should work fine.

Or you can just wait a few days, as this was already fixed and probably will soon be part of a released version of Home Assistant.

1 Like

thank you, this helped me a lot :+1: :+1: :+1:

1 Like