Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] TS0012, TS0013 2-/3-gang switch cannot switch single gang, all gangs always turned on/off together #2369

Closed
jkraemer opened this issue May 1, 2023 · 24 comments
Labels
stale Issue is inactivate and might get closed soon Tuya Request/PR regarding a Tuya device

Comments

@jkraemer
Copy link

jkraemer commented May 1, 2023

Bug description

I have successfully paired two Tuya compatible switches (the brand is Zemismart) that show the problem that whenever I toggle one gang in HA, all gangs get toggled. Switching single gangs manually on the switches works fine. Quirks are loaded but do not seem to fix it for these models.

Steps to reproduce

Toggle any one gang of the switch in HA dashboard and all gangs will be toggled.

Expected behavior

I'd expect to be able to toggle each gang separately.

Screenshots/Video

No response

Device signature

Device signature

2-gang

Nwk: 0x8b27
Device Type: EndDevice
LQI: 54
RSSI: Unknown
Last Seen: 2023-05-01T10:53:52
Power Source: Battery or Unknown
Quirk: zhaquirks.tuya.ts001x.TuyaDoubleNoNeutralSwitch_2

3-gang

Nwk: 0x4d27
Device Type: EndDevice
LQI: 51
RSSI: Unknown
Last Seen: 2023-05-01T10:58:18
Power Source: Battery or Unknown
Quirk: zhaquirks.tuya.ts001x.TuyaTripleNoNeutralSwitch_2

Diagnostic information

Diagnostic information

2-gang

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.4.6",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.10",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Asia/Manila",
    "os_name": "Linux",
    "os_version": "6.1.21-v8",
    "supervisor": "2023.04.1",
    "host_os": "Home Assistant OS 10.1",
    "docker_version": "23.0.3",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "requirements": [
      "bellows==0.35.1",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.97",
      "zigpy-deconz==0.20.0",
      "zigpy==0.54.1",
      "zigpy-xbee==0.17.0",
      "zigpy-zigate==0.10.3",
      "zigpy-znp==0.10.0"
    ],
    "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"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 35623,
    "manufacturer": "_TZ3000_axmpdjjk",
    "model": "TS0012",
    "name": "_TZ3000_axmpdjjk TS0012",
    "quirk_applied": true,
    "quirk_class": "zhaquirks.tuya.ts001x.TuyaDoubleNoNeutralSwitch_2",
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 72,
    "rssi": null,
    "last_seen": "2023-05-01T11:07:07",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=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=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0100",
          "in_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006"
          ],
          "out_clusters": [
            "0x0019"
          ]
        },
        "2": {
          "profile_id": 260,
          "device_type": "0x0100",
          "in_clusters": [
            "0x0004",
            "0x0005",
            "0x0006"
          ],
          "out_clusters": []
        }
      }
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.tz3000_axmpdjjk_ts0012_identify",
        "name": "_TZ3000_axmpdjjk TS0012"
      },
      {
        "entity_id": "light.tz3000_axmpdjjk_ts0012_light",
        "name": "_TZ3000_axmpdjjk TS0012"
      },
      {
        "entity_id": "light.tz3000_axmpdjjk_ts0012_light_2",
        "name": "_TZ3000_axmpdjjk TS0012"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "ON_OFF_LIGHT"
      },
      {
        "name": "ON_OFF_LIGHT"
      }
    ],
    "user_given_name": "Terrace ceiling lights",
    "device_reg_id": "326f480d402d631299898909e8b2ef98",
    "area_id": "terrace",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "ON_OFF_LIGHT",
          "id": 256
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZ3000_axmpdjjk"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0012"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              },
              "0x4001": {
                "attribute_name": "on_time",
                "value": 0
              },
              "0x4002": {
                "attribute_name": "off_wait_time",
                "value": 0
              },
              "0x8001": {
                "attribute_name": "backlight_mode",
                "value": 1
              },
              "0x8002": {
                "attribute_name": "power_on_state",
                "value": 2
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "2": {
        "device_type": {
          "name": "ON_OFF_LIGHT",
          "id": 256
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              },
              "0x4001": {
                "attribute_name": "on_time",
                "value": 0
              },
              "0x4002": {
                "attribute_name": "off_wait_time",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {}
      }
    }
  }
}

3-gang

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.4.6",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.10",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Asia/Manila",
    "os_name": "Linux",
    "os_version": "6.1.21-v8",
    "supervisor": "2023.04.1",
    "host_os": "Home Assistant OS 10.1",
    "docker_version": "23.0.3",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "requirements": [
      "bellows==0.35.1",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.97",
      "zigpy-deconz==0.20.0",
      "zigpy==0.54.1",
      "zigpy-xbee==0.17.0",
      "zigpy-zigate==0.10.3",
      "zigpy-znp==0.10.0"
    ],
    "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"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 19751,
    "manufacturer": "_TZ3000_liixymgk",
    "model": "TS0013",
    "name": "_TZ3000_liixymgk TS0013",
    "quirk_applied": true,
    "quirk_class": "zhaquirks.tuya.ts001x.TuyaTripleNoNeutralSwitch_2",
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 54,
    "rssi": null,
    "last_seen": "2023-05-01T11:05:23",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=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=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0100",
          "in_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006"
          ],
          "out_clusters": [
            "0x0019"
          ]
        },
        "2": {
          "profile_id": 260,
          "device_type": "0x0100",
          "in_clusters": [
            "0x0004",
            "0x0005",
            "0x0006"
          ],
          "out_clusters": []
        },
        "3": {
          "profile_id": 260,
          "device_type": "0x0100",
          "in_clusters": [
            "0x0004",
            "0x0005",
            "0x0006"
          ],
          "out_clusters": []
        }
      }
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.ceiling_lights_identify",
        "name": "_TZ3000_liixymgk TS0013"
      },
      {
        "entity_id": "light.ceiling_lights_light",
        "name": "_TZ3000_liixymgk TS0013"
      },
      {
        "entity_id": "light.ceiling_lights_light_2",
        "name": "_TZ3000_liixymgk TS0013"
      },
      {
        "entity_id": "light.ceiling_lights_light_3",
        "name": "_TZ3000_liixymgk TS0013"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "ON_OFF_LIGHT"
      },
      {
        "name": "ON_OFF_LIGHT"
      },
      {
        "name": "ON_OFF_LIGHT"
      }
    ],
    "user_given_name": "Ceiling Lights",
    "device_reg_id": "95c67b9bdb58f85b99089889cc9ad535",
    "area_id": "living_room",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "ON_OFF_LIGHT",
          "id": 256
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZ3000_liixymgk"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0013"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              },
              "0x4001": {
                "attribute_name": "on_time",
                "value": 0
              },
              "0x4002": {
                "attribute_name": "off_wait_time",
                "value": 0
              },
              "0x8001": {
                "attribute_name": "backlight_mode",
                "value": 1
              },
              "0x8002": {
                "attribute_name": "power_on_state",
                "value": 2
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "2": {
        "device_type": {
          "name": "ON_OFF_LIGHT",
          "id": 256
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              },
              "0x4001": {
                "attribute_name": "on_time",
                "value": 0
              },
              "0x4002": {
                "attribute_name": "off_wait_time",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {}
      },
      "3": {
        "device_type": {
          "name": "ON_OFF_LIGHT",
          "id": 256
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              },
              "0x4001": {
                "attribute_name": "on_time",
                "value": 0
              },
              "0x4002": {
                "attribute_name": "off_wait_time",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {}
      }
    }
  }
}

Logs

No response

Additional information

No response

@jkraemer jkraemer changed the title [BUG] TS0012, TS0013 3gang switch cannot switch single gang, all gangs always turned on/off together [BUG] TS0012, TS0013 2-/3-gang switch cannot switch single gang, all gangs always turned on/off together May 1, 2023
@MattWestb
Copy link
Contributor

This problem shall being fixed from HA 2023.1 then implanted the tuya magic for this devices.
Ar you running one clean HA or have you installed custom quirks for the devices ?

@jkraemer
Copy link
Author

jkraemer commented May 1, 2023

Hi, this is a fresh install of Home Assistant (on a RaspberryPI). I did not install any custom quirks, the quirk that apparently is loaded for the devices came stock with the HA image.

@MattWestb
Copy link
Contributor

Then it shall working.
The devcie need one "tuya magic" being casted then its joining and then it shall doing all things OK but its have being some refactoring of the code in the last release with the logic.
I dont have the device for testing if its working OK if was having it i have sniffing the joining so can see if its casting is working OK that we was doing with some device then testing the last changes.

@TheJulianJES do you have some thinking about this problem ?
The device is loading the quirk OK and the device class is using the EnchantedDevice, TuyaSwitch so it shall working OK if not new is being broken after the last refactoring.
Also the devices is being new joined on one clean system so the casting shall working OK.

@jkraemer
Copy link
Author

jkraemer commented May 4, 2023

Please let me know if there is anything I can do to help debug this.

@thewolf-oz
Copy link

I have the same issue, happy to assist with anything too

@NicolasIonut
Copy link

I have the same problem. In z2m is working fine but in zha is not

@hoshyK2
Copy link

hoshyK2 commented May 13, 2023

For what it's worth I got this working as follows:

  1. Install "ZHA Toolkit" - I did this via HACS
  2. Go to "Developer Tools -> Services" in HA
  3. Select Service "ZHA Toolkit: execute"
  4. Select Command "tuya_magic"
  5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain).
With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

@NicolasIonut
Copy link

Thank you for your help! It's working fine now!

@lanturn07
Copy link

Thank you!!!
I'm using TS0012 2-gang (model: ds-1021zc)
_TZ3000_zmlunnhy
It helped me too!

@Danixu
Copy link

Danixu commented Jun 25, 2023

For what it's worth I got this working as follows:

1. Install "ZHA Toolkit" - I did this via HACS

2. Go to "Developer Tools -> Services" in HA

3. Select Service "ZHA Toolkit: execute"

4. Select Command "tuya_magic"

5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain). With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

Two days fighting against this problem... Your comment has saved my day. Thank you very much!.

@MattWestb
Copy link
Contributor

Hola @javicalle Looks like new devices if this type is using the tuya magic.
Shall we rolling all classes to using it ?
Im most after the last changes with class that must being used so i cant do it and i dont have the device.

Thanks in advance !!!

NW

@javicalle
Copy link
Collaborator

Hi Matt, sorry to be absent, but no spare time on my side.

Shall we rolling all classes to using it ?

But the classes for these devices are using the EnchantedDevice already:

class TuyaDoubleNoNeutralSwitch_2(EnchantedDevice, TuyaSwitch):

class TuyaTripleNoNeutralSwitch_2(EnchantedDevice, TuyaSwitch):

And both are using the TuyaZBOnOffAttributeCluster which is an TuyaEnchantableCluster:
https://github.com/zigpy/zha-device-handlers/blob/9e210ba946069eeb9e2ae4d41dba362f0a399925/zhaquirks/tuya/__init__.py#L989C35-L996

So the Tuya spell must be casted for these devices.
I can't detect any problem in hierarchy or classes.

Maybe these devices don't trigger the bind for the OnOff cluster?

@MattWestb
Copy link
Contributor

Hi JC thanks for replay !!
Yes i was looking on the wrong quirk and some one was changing it for over a half year ago #2049.

Back to the problem users is having:
The quirk shall sending the tuya magic one time then the device is being added new to the system and then remember it until its being retested.
If its loosing it you must deleting in in ZHA and waiting one minute so the system is deleting it in the DB (or restarting HA) and then adding it as new device and it shall working OK.
Using ZHA-Toolkit shall also working OK then the device can being casted all the time and not only in init mode like some controllers is needing.

@TheJulianJES
Copy link
Collaborator

If its loosing it you must deleting in in ZHA and waiting one minute so the system is deleting it in the DB (or restarting HA) and then adding it as new device and it shall working OK.

This shouldn’t be the case anymore. You can just reconfigure the device to cast the spell or just re-pair it (WITHOUT having to delete it from HA).

@MattWestb
Copy link
Contributor

If its loosing it you must deleting in in ZHA and waiting one minute so the system is deleting it in the DB (or restarting HA) and then adding it as new device and it shall working OK.

This shouldn’t be the case anymore. You can just reconfigure the device to cast the spell or just re-pair it (WITHOUT having to delete it from HA).

I was testing reconfigure my TS004F DMS and sniffing it and indeed ZHA is casting the spell so it shall working for all devices that is not need getting it in INIT mode then they need being repaired for getting it in time for changing the hardware config of the device.

Thanks @TheJulianJES for correcting my !

@setterlee
Copy link

For what it's worth I got this working as follows:

  1. Install "ZHA Toolkit" - I did this via HACS
  2. Go to "Developer Tools -> Services" in HA
  3. Select Service "ZHA Toolkit: execute"
  4. Select Command "tuya_magic"
  5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain). With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

Every day we learn something new... And in this case I learned something new and fixed a problem. Thanks for share your knowledge..

@CobraDunn
Copy link

For what it's worth I got this working as follows:

  1. Install "ZHA Toolkit" - I did this via HACS
  2. Go to "Developer Tools -> Services" in HA
  3. Select Service "ZHA Toolkit: execute"
  4. Select Command "tuya_magic"
  5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain). With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

Searched for solutions for an hour before finding this one. Thank you. Confirmed working for me on 2-Gang - Moes TS0012 - _TZ3000_18ejxno0

@smokerxf
Copy link

smokerxf commented Aug 23, 2023

I have the same problem with ts0012. My 2-gang switch cannot switch single gang by HA.
I've tried using custom quirks from this repo = the situation is unchanged.

"data": {
"ieee": "REDACTED",
"nwk": 54326,
"manufacturer": "_TZ3000_e98krvvk",
"model": "TS0012",
"name": "_TZ3000_e98krvvk TS0012",
"quirk_applied": true,
"quirk_class": "ts001x.TuyaDoubleNoNeutralSwitch_2",
"manufacturer_code": 4417,
"power_source": "Battery or Unknown",
"lqi": 216,
"rssi": -46,
"last_seen": "2023-08-23T23:01:36",
"available": true,
"device_type": "EndDevice",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=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=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0006"
],
"output_clusters": [
"0x0019"
]
},
"2": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0006"
],
"output_clusters": []
}
},
"manufacturer": "_TZ3000_e98krvvk",
"model": "TS0012"
},

@fabiosaboia
Copy link

For what it's worth I got this working as follows:

  1. Install "ZHA Toolkit" - I did this via HACS
  2. Go to "Developer Tools -> Services" in HA
  3. Select Service "ZHA Toolkit: execute"
  4. Select Command "tuya_magic"
  5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain). With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

thanks. woks for me.

Informação Dispositivo
TS0013
por _TZ3000_snq47izk

Zigbee info
IEEE:
Nwk: 0x83f1
Device Type: EndDevice
LQI: 94
RSSI: Desconhecido
Visto pela Última Vez: 2023-08-27T18:46:27
Fonte de Energia: Battery or Unknown

@etmmafl
Copy link

etmmafl commented Oct 7, 2023

For what it's worth I got this working as follows:

1. Install "ZHA Toolkit" - I did this via HACS

2. Go to "Developer Tools -> Services" in HA

3. Select Service "ZHA Toolkit: execute"

4. Select Command "tuya_magic"

5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain). With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

Searched for solutions for multiple days before finding this one. T
Thank you.

Confirmed working for me on 2-Gang - Moes TS0012 - _TZ3000_18ejxno0

@TheJulianJES
Copy link
Collaborator

@etmmafl This should no longer be required when re-pairing/reconfiguring with recent Home Assistant Core versions.
Please attach the "device diagnostic information" and/or device signature from the device you had issues with here.
It can be downloaded on the device page.

@corcaioch
Copy link

For what it's worth I got this working as follows:

  1. Install "ZHA Toolkit" - I did this via HACS
  2. Go to "Developer Tools -> Services" in HA
  3. Select Service "ZHA Toolkit: execute"
  4. Select Command "tuya_magic"
  5. In the ieee section select first Tuya entity and click call service - do for each Tuya entity

I had to re-run the tuya_magic command after changing the entity names (and / or repairing, not certain). With a little fiddleing this should work.

Edit: I'm using TS0013 3-gang btw

This worked for me, thanks so much.

@TheJulianJES TheJulianJES added the Tuya Request/PR regarding a Tuya device label Dec 24, 2023
@saadiego
Copy link

Worked flawlessly with my Zemismart 4 Gang Light Switch + 2 Gang Scene Switch - KES-606US-Z4+2 (TS0726 by _TZ3000_s678wazd)

Copy link

github-actions bot commented Sep 9, 2024

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Issue is inactivate and might get closed soon label Sep 9, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Issue is inactivate and might get closed soon Tuya Request/PR regarding a Tuya device
Projects
None yet
Development

No branches or pull requests