Switch Zigbee TZE200 TS0601 paired but without entities

I got 2 of these both are 1-gang and both have same issue as yours, also using ZHA - Conbee2 combination, it is not added to ZHA I think. So I used a Tuya Zigbee Hub just for those two switches. I also tried to listen to zha_event but nothing shows, neither in Node-Red debugger.

I would love to loose the Tuya hub to be honest and keep everything in ZHA, so I am following this thread.

Does LocalTuya not work with Tuya hubs?

Nope, it does show up in LocalTuya and when you put in the key it won’t connect.

I use Tuya Custom.

Hi! Has anyone found a solution for this one? I believe it can be fixed in one way or another, as it is pairing successfully, but it isn’t recognized as a on/off switch.

I have the same situation here with about 3 of those switches. Can pair them successfully, but no entities. Same set-up: ZHA and Conbee II USB stick.

With another device - a thermostat - I had to re-import “ZHA Quirks”, to get it recognized correctly. Could we maybe copy a “quirk” from another on/off switch and modify it to this type of switch somehow? Any developer(s) in the house?

{
“node_descriptor”: “NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=0)”,
“endpoints”: {
“1”: {
“profile_id”: 260,
“device_type”: “0x0301”,
“in_clusters”: [
“0x0000”,
“0x0001”,
“0x0004”,
“0x0005”,
“0x0201”,
“0xef00”
],
“out_clusters”: [
“0x0001”,
“0x000a”,
“0x0019”,
“0x0201”
]
}
},
“manufacturer”: “_TZE200_c88teujp”,
“model”: “TS0601”,
“class”: “zhaquirks.tuya.thermostat_88teujp.Thermostat_TZE200_c88teujp”
}

Well, I think we have to reconstruct or edit a Quirk. more info on this matter in this post:

And the quirk repository here:

My observation is that “TS0601” apparently is not only a thermostatic valve, it can also be a switch, or other device. I’m trying to digg into the code / python and see where we get. But I think the devices are not discovered, as “_TZE200_amp6tsvycd” , as also your “manufacturer”, are not defined in any of the quirks.

With today’s update in HA core a few of those tuya devices have been implemented
for instance : the windows cover under those manufacturer number now works
("_TZE200_zah67ekd", “TS0601”),
("_TZE200_xuzcvlku", “TS0601”),

You might want to try to add your devices back after the update and try them out … mine are now discovered as

I have the same setup using a ConBeeII with Zigbee Home Automation and I’m having the same issue as everyone else. My device is a TS0601 by _TZE200_whpb9yts which is the in-wall dimmer. It shows Device Type: Router instead of light or dimmer. Have updated to latest core that was just released and although there were some very significant changes to ZHA my device still has no entities. As I am not a programmer or an IT pro I will continue to watch this post for any help. Thanks :pray:

*bump* same here with a dimmer saying it’s TS0601

TS0601
by _TZE200_dfxkcots

Zigbee info
IEEE: 60:a4:23:ff:fe:ef:2b:75
Nwk: 0xc614
Device Type: Router
LQI: 72
RSSI: Unknown
Last Seen: 2021-04-18T17:57:47
Power Source: Mains

Something going mismatch and logs keep repeating the same pattern:

Device 0x25fc (60:a4:23:ff:fe:ef:2b:75) joined the network
[0x25fc:zdo] ZDO request ZDOCmd.Device_annce: [0x25FC, 60:a4:23:ff:fe:ef:2b:75, 142]
[0x25fc] Requesting 'Node Descriptor'
Tries remaining: 2
[0x25fc] Extending timeout for 0x36 request
[0x25fc] Node Descriptor: NodeDescriptor(byte1=1, byte2=64, mac_capability_flags=142, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=0, *allocate_address=True, *complex_descriptor_available=False, *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, *is_valid=True, *logical_type=<LogicalType.Router: 1>, *user_descriptor_available=False)
[0x25fc] Discovering endpoints
Tries remaining: 3
[0x25fc] Discovered endpoints: [1]
[0x25fc:1] Discovering endpoint information
Tries remaining: 3
[0x25fc:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1, input_clusters=[0, 4, 5, 61184], output_clusters=[25, 10])
Unknown cluster 61184
[0x25fc:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=57 command_id=Command.Read_Attributes_rsp>
[0x25fc:1] Manufacturer: _TZE200_dfxkcots
[0x25fc:1] Model: TS0601
Checking quirks for _TZE200_dfxkcots TS0601 (60:a4:23:ff:fe:ef:2b:75)
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1}
Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Fail because device_type mismatch on at least one endpoint
device - 0x25FC:60:a4:23:ff:fe:ef:2b:75 entering async_device_initialized - is_new_join: True
device - 0x25FC:60:a4:23:ff:fe:ef:2b:75 has joined the ZHA zigbee network
[0x25FC](TS0601): started configuration
[0x25FC:ZDO](TS0601): 'async_configure' stage succeeded
[0x25FC:1:0x0000]: bound 'basic' cluster: Status.SUCCESS
[0x25FC:1:0x0000]: finished channel configuration
[0x25FC:1:0x0019]: bound 'ota' cluster: Status.SUCCESS
[0x25FC:1:0x0019]: finished channel configuration
[0x25FC:1:0x0000]: 'async_configure' stage succeeded
[0x25FC:1:0x0019]: 'async_configure' stage succeeded
[0x25FC](TS0601): completed configuration
[0x25FC](TS0601): stored in registry: ZhaDeviceEntry(name='_TZE200_dfxkcots TS0601', ieee='60:a4:23:ff:fe:ef:2b:75', last_seen=1618761891.180783)
[0x25FC](TS0601): started initialization
[0x25FC:ZDO](TS0601): 'async_initialize' stage succeeded
[0x25FC:1:0x0000]: initializing channel: from_cache: False
[0x25FC:1:0x0000]: finished channel configuration
[0x25FC:1:0x0019]: initializing channel: from_cache: False
[0x25FC:1:0x0019]: finished channel configuration
[0x25FC:1:0x0000]: 'async_initialize' stage succeeded
[0x25FC:1:0x0019]: 'async_initialize' stage succeeded
[0x25FC](TS0601): power source: Mains
[0x25FC](TS0601): completed initialization
[0x25fc:1:0x000a] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=17 command_id=Command.Read_Attributes>
[0x25fc:1:0x000a] ZCL request 0x0000: [[7]]
[0x25fc:1:0x000a] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=17 command_id=Command.Read_Attributes>
[0x25fc:1:0x000a] ZCL request 0x0000: [[7]]
Duplicate 17 TSN
[0x1E30:1:0x0b04]: async_update
[0x682E:1:0x0b04]: async_update
[0xB3AC:1:0x0b04]: async_update
[0x9B2A:1:0x0b04]: async_update
[0xC42D:1:0x0b04]: async_update
[0x1e30:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=60 command_id=Command.Read_Attributes_rsp>
[0x8926:1:0x0b04]: async_update
[0x9b2a:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=63 command_id=Command.Read_Attributes_rsp>
[0x682e:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=61 command_id=Command.Read_Attributes_rsp>
[0xb3ac:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=62 command_id=Command.Read_Attributes_rsp>
[0xc42d:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=64 command_id=Command.Read_Attributes_rsp>
[0x8926:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=65 command_id=Command.Read_Attributes_rsp>
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0xc2d5:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=36 command_id=Command.Report_Attributes>
[0xc2d5:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2368>)]]
[0xc2d5:1:0x0402] Attribute report received: measured_value=2368
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>
[0x25fc:1:0xef00] Unknown cluster-specific command 1
[0x25fc:1:0xef00] ZCL request 0x0001: b'\x00\x01\x01\x01\x00\x01\x01'
[0x25fc:1:0xef00] No handler for cluster command 1
[0x25fc:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=1>

I have identical issue with my switch, it seems there is a proprietary Tuya cluster protocol involved - someone even took a time to reverse engineer it: Zigbee2mqtt: How to add support for a new Tuya-based device (part 2) | by Daniel Zegarra | Medium
mentioned on deCONZ feature request New device request - TS0601 / TZE200_nkjintbl · Issue #2879 · dresden-elektronik/deconz-rest-plugin · GitHub

Hello, any updates on this? I’m sure there are more users of this switch.

Or has everyone switched to Z2M?

Hey edc, I ended up installing ZIGBEE2MQTT. It will require you to have installed a MQTT broker like Mosquitto and you might need to re-add your devices. But once installed and configured it works. There’s also a large database of supported devices. Check out digiblurDIY on YouTube for help with MQTT broker install. ZIGBEE2MQTT can be installed as an unofficial Home Assistant Add-on via GitHub. Good luck!

1 Like

Hey @jws5340a, thanks for the help. Will just explore Zigbee2Mqtt then.

i also have two switch… waiting some one come up with working code…

I have a 3-way switch and a “Smart air box” with multiple air sensors in, both of which describe themselves as TZE200 / TS0601 devices, and both have the same problem as others have seen.

One thing I have found though is that all the entities are visible in the “manage clusters” section, however, I can’t make that section do anything permanent. I can select an entity, get a value from it, select the controller to bind it to, but when I click “bind”, nothing happens. I don’t know how this is supposed to work!

I don’t see how Zigbee2MQTT can help with this; if the device isn’t supported, does it matter how it’s connected?


So today my switch came. Got the same issue as everyone.

I will try the zigbee2mqtt route this week and post some results

1 Like

Another TZE200/TS0601 user here…this time a door/vibration sensor. What a crock. I ditched Tuya WiFi devices since the integration doesn’t seem to work for crap and requires renewals… Thought “hey…let’s go zigbee…no more flashing to ESPHome, no Tuya cloud…” Damn you Tuya!

If anyone’s having luck with Zigbee2MQTT please post.

So i switched to zigbee2mqtt from ZHA.

i had some problem when switching. I use a conbee2 stick.

got this morning z2m running and added the switch first. and it worked.

My conclusion is that zigbee2mqtt works with this switch.

Hello,

I am responding here because I see this information is recent and might be related to my issue.

I am converting from Hubitat to HA and I’ve got about 300 devices moved.
I am on Home assistant OS
I have 4 zemismart zigbee curtain rails. The model on them in HA is TS0601 like above. All of the rails have entities except one.

  • I confirmed they are all identical models
  • I have factory reset a dozen times
  • I have removed-re-added to the network a dozen times
  • I’ve tried to pair it right next to zibee repeaters and my zigbee stick
    all with the same results.

This isn’t the furthest curtain rail from my zstick. It’s connecting and is being used as a router but there are no entities. Is this related to the same zigpy library you mentioned above? I’m just at a loss why it’s just this one.

Oh, I keep dragging it back to hubitat where it gets the controls on connection every time.
Here you can see it’s meshing with the others:

Here is the device in question:


Here is an identical device across the room (further from the stick):

From what I’m gathering in this thread and this other one: Adding Moes Rad Valve TSO601 I am not doing anything wrong; however, I am completely stumped as to why I’m only having the issue on one device.

To compound matters, I bought two zigbee shades, one connects without entities and the other one doesn’t power on at all. The one showing no entities is exhibiting the same behavior as the rail (and the complaints above). I don’t want to address that one until I address the unit that I KNOW is working because it works on HE and all the others devices of same type are working in the house.

I read in the other thread that an update to the library might be coming soon. Will that help me and the OP of this thread?

As I type this post, gathering screenshots, I just noticed something:


The manufacturer on this device is different from all the others (even though they’re all branded zemismart). My guess is the firmware is different and HA is looking at this device differently.

Here is the stick that I’m using:

Hello Sergeantpup, I had the same issue with an in-wall dimmer switch. My ultimate solution was to install an MQTT broker and use the ZIGBEE2MQTT integration. Once I had the integrations working properly I added the device and it works as intended. Please go to Zigbee2MQTT and check to see if your devices are supported by zigbee2mqtt, most likely they are. If so then there’s some really sharp folks here that I’m sure will be able to help you with this more than me as I’m using the supervised version of HA. I’m not an expert by any means, just a geeky guy having fun with HA and home automation. But maybe I can help by pointing you in the right direction.

1 Like