### Problem description
The switch integrates into Home Assistant, and when u…sing the physical buttons the entities update in Home Assistant as expected. However, the issue is when using Home Assistant to toggle the switches on or off will cause ALL the switch entities (of the device) to toggle on or off.
I have the 3 switch unit, though they sell these in 1 and 2 switch units as well.
Examples:
1) Using HA to toggle switch 1 ON will turn on switch 1 + 2 + 3. HA updates each entity to ON.
2) Using HA to toggle switch 1 OFF will turn off switch 1 + 2 + 3. HA updates each entity to OFF.
3) Using the device to toggle switch 1 ON will turn switch 1 on. HA updates switch 1 entity to ON.
4) Using the device to toggle switch 1 OFF will turn switch 1 off. HA updates switch 1 entity to OFF.
I use switch 1 as the example above, but the issue occurs on switch 2 and 3 also. See attached video.
I would love for this to work as expected as its quite a nice physical switch and would like to order more.
Link to product: https://www.zemismart.com/products/z811
### Solution description
Have Home Assistant only trigger the relevant switch entity.
### Screenshots/Video
<details><summary>Screenshots/Video</summary>
[Paste/upload your media here]
</details>
https://github.com/zigpy/zha-device-handlers/assets/66342521/24ce59c6-baf4-4a1c-b62d-de1eddb05e71
### Device signature
<details><summary>Device signature</summary>
```json
{
"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=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=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": [
"0x000a",
"0x0019"
]
},
"2": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006"
],
"output_clusters": []
},
"3": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006"
],
"output_clusters": []
}
},
"manufacturer": "_TZ3000_snq47izk",
"model": "TS0013",
"class": "zigpy.device.Device"
}
```
</details>
### Diagnostic information
<details><summary>Diagnostic information</summary>
```json
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2023.8.2",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.11.4",
"docker": true,
"arch": "aarch64",
"timezone": "Australia/Brisbane",
"os_name": "Linux",
"os_version": "6.1.21-v8",
"supervisor": "2023.08.1",
"host_os": "Home Assistant OS 10.4",
"docker_version": "23.0.6",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"fronius_inverter": {
"version": "v0.9.8",
"requirements": []
},
"adaptive_lighting": {
"version": "1.19.0",
"requirements": [
"ulid-transform"
]
},
"hacs": {
"version": "1.32.1",
"requirements": [
"aiogithubapi>=22.10.1"
]
},
"hass_agent": {
"version": "2022.11.9",
"requirements": []
},
"uptime_kuma": {
"version": "2.1.0",
"requirements": [
"pyuptimekuma-hass"
]
},
"ledfx": {
"version": "3.0.0",
"requirements": []
},
"blueiris": {
"version": "1.0.15",
"requirements": []
}
},
"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.9",
"pyserial==3.5",
"pyserial-asyncio==0.6",
"zha-quirks==0.0.102",
"zigpy-deconz==0.21.0",
"zigpy==0.56.4",
"zigpy-xbee==0.18.1",
"zigpy-zigate==0.11.0",
"zigpy-znp==0.11.4"
],
"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": 16339,
"manufacturer": "_TZ3000_snq47izk",
"model": "TS0013",
"name": "_TZ3000_snq47izk TS0013",
"quirk_applied": false,
"quirk_class": "zigpy.device.Device",
"manufacturer_code": 4098,
"power_source": "Battery or Unknown",
"lqi": 112,
"rssi": -72,
"last_seen": "2023-08-21T16:07:22",
"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=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=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": [
"0x000a",
"0x0019"
]
},
"2": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006"
],
"output_clusters": []
},
"3": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006"
],
"output_clusters": []
}
},
"manufacturer": "_TZ3000_snq47izk",
"model": "TS0013"
},
"active_coordinator": false,
"entities": [
{
"entity_id": "button.light_switch_office_identify",
"name": "_TZ3000_snq47izk TS0013"
},
{
"entity_id": "light.light_switch_office_light",
"name": "_TZ3000_snq47izk TS0013"
},
{
"entity_id": "light.light_switch_office_light_2",
"name": "_TZ3000_snq47izk TS0013"
},
{
"entity_id": "light.light_switch_office_light_3",
"name": "_TZ3000_snq47izk TS0013"
}
],
"neighbors": [],
"routes": [],
"endpoint_names": [
{
"name": "ON_OFF_LIGHT"
},
{
"name": "ON_OFF_LIGHT"
},
{
"name": "ON_OFF_LIGHT"
}
],
"user_given_name": "Light Switch - Office",
"device_reg_id": "4573e1c330cd466e63d42de2b22e7f23",
"area_id": "office",
"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_snq47izk"
},
"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": 1
}
},
"unsupported_attributes": {
"0x4003": {
"attribute_name": "start_up_on_off"
}
}
}
},
"out_clusters": {
"0x0019": {
"endpoint_attribute": "ota",
"attributes": {},
"unsupported_attributes": {}
},
"0x000a": {
"endpoint_attribute": "time",
"attributes": {},
"unsupported_attributes": {}
}
}
},
"2": {
"device_type": {
"name": "ON_OFF_LIGHT",
"id": 256
},
"profile_id": 260,
"in_clusters": {
"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
}
},
"unsupported_attributes": {
"0x4003": {
"attribute_name": "start_up_on_off"
}
}
}
},
"out_clusters": {}
},
"3": {
"device_type": {
"name": "ON_OFF_LIGHT",
"id": 256
},
"profile_id": 260,
"in_clusters": {
"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
}
},
"unsupported_attributes": {
"0x4003": {
"attribute_name": "start_up_on_off"
}
}
}
},
"out_clusters": {}
}
}
}
}
```
</details>
### Logs
<details><summary>Logs</summary>
```python
[Paste the logs here]
```
</details>
### Custom quirk
<details><summary>Custom quirk</summary>
```python
[Paste your custom quirk here]
```
</details>
### Additional information
Thankyou!!!