[RE-RELEASE] Zemismart ZigBee Wall Switch Multi-Gang

I tried to measure several times on a few switches. Most of them are between 250 and 500 RTT, and they are similar to the other switches in the house.

Did you manage to find out what’s causing the unstable behavior?

Hello @kkossev, I have a couple of very new Zemismart Smart Touch Switches (4-Gang) The model number on the box says: ZN-RS04E-FF. Using your driver it only seems to detect them as one gang with no child devices. I AM using this driver successfully with 1 and 2 gang switches. Any ideas what I am doing wrong?

Also tried with the Generic driver with no luck either.

Apologies for anyone reading this. I've just realised that despite the name, the following is the correct driver. Thanks @kkossev

1 Like

Pushed Ver. 1.1.6 2025-11-12 kkossev - proper handling of TS000F _TZ3000_m8f3z8ju switchType

got this working with stock driver but cannot toggle each endpoint separately. it is a std outlet with a USB c and USB a. and power monitoring also not working. as well as led on/off status. would your driver work better

also the bigger problem is I got it mainly as a Zigbee repeater that renters in the condo can NOT unplug and thus render inoperable. but with the zigbee interview app it is showing as an end device not a repeater

Krassmir,
Does this driver support the Moes 4 port Zigbee switch, if not, what do you suggest?

1 Like

add the following fingerprint to this driver

    fingerprint profileId: '0104', endpointId: '01', inClusters:'0003,0004,0005,0006,0702,0B04,E000,E001,0000', outClusters:'0019,000A', model:'TS011F', manufacturer:'_TZ3000_svjvlsug', deviceJoinName: 'Tuya Zigbee dual outlet wall socket w usb'  // @lgk !

creates 5 children only the main and first two work..
main turns on the one switch of the 2 (only one is smart controlled) and the usb both.

first child turns on only the switch as it should no usb.
second child turns on the usb only not the switch

next 3 children are noops.. i removed them..

no power reporting.. other than that seems to work..

It does show up as a zigbee repeater (the parent)... (blue circle) in the zigbee map app with this driver whereas it did NOT with the general zigbee outlet driver.

Indicator Light control also seems to work.

The Zemismart community driver does not support power or energy reporting. Unfortunately, I currently do not have a suitable multi-endpoint driver that includes these features.

Looking at the InClusters list,this device is using standard ZCL clusters... Have you tried any of the stock drivers available in Home Assistant?

You might find this community driver to be a better fit:

I expect it should work with this driver, even if the fingerprint is not present in the code. You may need to pair it again to your hub with the community driver already assigned.

What are the results?

Got an operable sample of the 4 gang and assigned this driver. seem to work ok with the four expected child devices.

fingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0003,0004,0005,0006,E000,E001", outClusters:"0019,000A", model:"TS0014", manufacturer:"_TZ3000_mrduubod", controllerType: "ZGB"

2 Likes

That worked... Thanx!

1 Like

You can also try :

or

1 Like

Hello, is this device compatible?
I'll put a part of the logs down.

Application 4A
Endpoint Id 01
Manufacturer _TZ3000_n1j44rth
Model TS0002


[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:11:01.442

debug

Barraca Barraca unprocessed EP: 00 cluster: 8001 command: 00 attrId: null

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:11:01.438

debug

Barraca Parsed descMap: [raw:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B, profileId:0000, clusterId:8001, clusterInt:32769, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:2B9B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[AF, 00, EB, 19, 36, 55, BC, 38, C1, A4, 9B, 2B]] (description:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:58.211

debug

Barraca Barraca unprocessed EP: 00 cluster: 8001 command: 00 attrId: null

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:58.208

debug

Barraca Parsed descMap: [raw:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B, profileId:0000, clusterId:8001, clusterInt:32769, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:2B9B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[AF, 00, EB, 19, 36, 55, BC, 38, C1, A4, 9B, 2B]] (description:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:55.214

debug

Barraca Barraca unprocessed EP: 00 cluster: 8001 command: 00 attrId: null

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:55.210

debug

Barraca Parsed descMap: [raw:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B, profileId:0000, clusterId:8001, clusterInt:32769, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:2B9B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[AF, 00, EB, 19, 36, 55, BC, 38, C1, A4, 9B, 2B]] (description:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:52.457

debug

Barraca Barraca unprocessed EP: 00 cluster: 8001 command: 00 attrId: null

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:52.453

debug

Barraca Parsed descMap: [raw:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B, profileId:0000, clusterId:8001, clusterInt:32769, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:2B9B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[AF, 00, EB, 19, 36, 55, BC, 38, C1, A4, 9B, 2B]] (description:catchall: 0000 8001 00 00 0040 00 2B9B 00 00 0000 00 00 AF00EB193655BC38C1A49B2B)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:34.323

debug

Barraca Attribite FFE4 : 01

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:34.322

debug

Barraca Attribite FFE2 : 38

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:34.320

debug

Barraca Applicaiton version: 4A

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:34.315

debug

Barraca Parsed descMap: [raw:2B9B010000180100204AE2FF2038E4FF2001, dni:2B9B, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:4A, clusterInt:0, attrInt:1, additionalAttrs:[[value:38, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:01, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]] (description:read attr - raw: 2B9B010000180100204AE2FF2038E4FF2001, dni: 2B9B, endpoint: 01, cluster: 0000, size: 18, attrId: 0001, encoding: 20, command: 0A, value: 4AE2FF2038E4FF2001)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.916

debug

Barraca Attribite FFE4 : 01

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.915

debug

Barraca Attribite FFE2 : 38

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.914

debug

Barraca Applicaiton version: 4A

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.909

debug

Barraca Parsed descMap: [raw:2B9B010000180100204AE2FF2038E4FF2001, dni:2B9B, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:4A, clusterInt:0, attrInt:1, additionalAttrs:[[value:38, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:01, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]] (description:read attr - raw: 2B9B010000180100204AE2FF2038E4FF2001, dni: 2B9B, endpoint: 01, cluster: 0000, size: 18, attrId: 0001, encoding: 20, command: 0A, value: 4AE2FF2038E4FF2001)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.517

debug

Barraca Attribite FFE4 : 01

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.516

debug

Barraca Attribite FFE2 : 38

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.514

debug

Barraca Applicaiton version: 4A

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:33.510

debug

Barraca Parsed descMap: [raw:2B9B010000180100204AE2FF2038E4FF2001, dni:2B9B, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:4A, clusterInt:0, attrInt:1, additionalAttrs:[[value:38, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:01, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]] (description:read attr - raw: 2B9B010000180100204AE2FF2038E4FF2001, dni: 2B9B, endpoint: 01, cluster: 0000, size: 18, attrId: 0001, encoding: 20, command: 0A, value: 4AE2FF2038E4FF2001)

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:26.044

debug

Barraca sendZigbeeCommands : [he raw 0x2B9B 1 0x01 0x0000 {10 00 00 04 00 00 00 01 00 05 00 07 00 FE FF}, delay 200, he wattr 0x2B9B 0x01 0x0000 0xFFDE 0x20 {0D} {}, delay 50, zdo bind 0x2B9B 0x01 0x01 6 {A4C138BC553619EB} {}, delay 2000, he cr 0x2B9B 0x01 6 0 16 0 600 {}, delay 2000, he rattr 0x2B9B 0x01 6 0 {}, delay 2000]

[dev:599](http://192.168.1.98/device/edit/599#)2026-03-21 21:10:26.038

debug

Barraca configure()..

Hi Fabio,

Besides these 'unprocessed' debug logs, is the device working as expected? Can you control both switches/relays ?

These debug messages are OK, except if you see them very frequently (every few seconds or similar).

Hi Kkossev,
I did a quick (maybe to quick) install near the hub yesterday, the switches were working. But once I put it more far it stopped working. I think it was the zigbee signal that was too weak. So I put a plug between to check and act as repeater. Then the hub connected to the switch (not through this repeater) but never worked again. I'll do some others test today.

Yes, try pairing the switch again at its final place (without removing it from HE before). Hopefully, it will route via the Zigbee plug, acting as a repeater.

After pairing again it work well for a minute and then stopped responding. I can see some warn in the logs.
Now it's working again. I'll wait a few hours to see if it stays reliable.

Here are the logs just in case you see something wrong.

Thx :slightly_smiling_face:


dev:5992026-03-22 09:03:18.154warnBarraca parseBasicClusterAttribute cluster:null UNKNOWN attrId FFDF value:lR1
dev:5992026-03-22 09:03:18.150debugBarraca Parsed descMap: [raw:ED0601000012DFFF4205196C523116, dni:ED06, endpoint:01, cluster:0000, size:12, attrId:FFDF, encoding:42, command:0A, value:lR1, clusterInt:0, attrInt:65503] (description:read attr - raw: ED0601000012DFFF4205196C523116, dni: ED06, endpoint: 01, cluster: 0000, size: 12, attrId: FFDF, encoding: 42, command: 0A, value: 05196C523116)
dev:5992026-03-22 09:02:35.934debugBarraca sendZigbeeCommands : [he cmd 0x640F 0xFF 0x0006 0x0 {}]
dev:5992026-03-22 09:02:35.932infoBarraca Turning all child switches off
dev:5992026-03-22 09:00:31.529debugBarraca sendZigbeeCommands : [he cmd 0x640F 0xFF 0x0006 0x0 {}]
dev:5992026-03-22 09:00:31.527infoBarraca Turning all child switches off
dev:5992026-03-22 09:00:19.660debugBarraca sendZigbeeCommands : [he cmd 0x640F 0xFF 0x0006 0x0 {}]
dev:5992026-03-22 09:00:19.658infoBarraca Turning all child switches off
dev:5992026-03-22 09:00:10.664debugBarraca sendZigbeeCommands : [he cmd 0x640F 0xFF 0x0006 0x0 {}]
dev:5992026-03-22 09:00:10.663infoBarraca Turning all child switches off
dev:5992026-03-22 09:00:09.715debugBarraca Parent switch is already on
dev:5992026-03-22 09:00:09.714infoBarraca Child switch 02 turned on
dev:5992026-03-22 09:00:09.692debugBarraca Parsed descMap: [raw:640F0200060800001001, dni:640F, endpoint:02, cluster:0006, size:08, attrId:0000, encoding:10, command:0A, value:01, clusterInt:6, attrInt:0] (description:read attr - raw: 640F0200060800001001, dni: 640F, endpoint: 02, cluster: 0006, size: 08, attrId: 0000, encoding: 10, command: 0A, value: 01)
dev:5992026-03-22 09:00:09.671debugBarraca Barraca unprocessed EP: 02 cluster: 0006 command: 0B attrId: null
dev:5992026-03-22 09:00:09.668debugBarraca Parsed descMap: [raw:catchall: 0104 0006 02 01 0040 00 640F 00 00 0000 0B 01 0100, profileId:0104, clusterId:0006, clusterInt:6, sourceEndpoint:02, destinationEndpoint:01, options:0040, messageType:00, dni:640F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[01, 00]] (description:catchall: 0104 0006 02 01 0040 00 640F 00 00 0000 0B 01 0100)
dev:5992026-03-22 09:00:09.640infoBarraca Parent switch is on
dev:5992026-03-22 09:00:09.637infoBarraca Child switch 01 turned on
dev:5992026-03-22 09:00:09.618debugBarraca Parsed descMap: [raw:640F0100060800001001, dni:640F, endpoint:01, cluster:0006, size:08, attrId:0000, encoding:10, command:0A, value:01, clusterInt:6, attrInt:0] (description:read attr - raw: 640F0100060800001001, dni: 640F, endpoint: 01, cluster: 0006, size: 08, attrId: 0000, encoding: 10, command: 0A, value: 01)
dev:5992026-03-22 09:00:09.594debugBarraca Barraca unprocessed EP: 01 cluster: 0006 command: 0B attrId: null
dev:5992026-03-22 09:00:09.591debugBarraca Parsed descMap: [raw:catchall: 0104 0006 01 01 0040 00 640F 00 00 0000 0B 01 0100, profileId:0104, clusterId:0006, clusterInt:6, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:640F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[01, 00]] (description:catchall: 0104 0006 01 01 0040 00 640F 00 00 0000 0B 01 0100)
dev:5992026-03-22 09:00:09.317debugBarraca sendZigbeeCommands : [he cmd 0x640F 0xFF 0x0006 0x1 {}]
dev:5992026-03-22 09:00:09.316infoBarraca Turning all child switches on
dev:5992026-03-22 08:59:53.470debugBarraca Parent switch is already off
dev:5992026-03-22 08:59:53.467infoBarraca Child switch 01 is off
dev:5992026-03-22 08:59:53.456debugBarraca Parsed descMap: [raw:640F0100060A00001000, dni:640F, endpoint:01, cluster:0006, size:0A, attrId:0000, encoding:10, command:01, value:00, clusterInt:6, attrInt:0] (description:read attr - raw: 640F0100060A00001000, dni: 640F, endpoint: 01, cluster: 0006, size: 0A, attrId: 0000, encoding: 10, command: 01, value: 00)
dev:5992026-03-22 08:59:51.391infoBarraca zigbee configure reporting response: Success [00, 00, 00, 00]
dev:5992026-03-22 08:59:51.388debugBarraca Parsed descMap: [raw:catchall: 0104 0006 01 01 0040 00 640F 00 00 0000 07 01 00000000, profileId:0104, clusterId:0006, clusterInt:6, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:640F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:07, direction:01, data:[00, 00, 00, 00]] (description:catchall: 0104 0006 01 01 0040 00 640F 00 00 0000 07 01 00000000)
dev:5992026-03-22 08:59:50.035debugBarraca Model Identifier: TS0002
dev:5992026-03-22 08:59:50.034debugBarraca Applicaiton version: 4A
dev:5992026-03-22 08:59:50.032debugBarraca ZLC version: 03
dev:5992026-03-22 08:59:50.031debugBarraca Manufacturer name: _TZ3000_n1j44rth
dev:5992026-03-22 08:59:50.025debugBarraca Parsed descMap: [raw:640F01000068040042105F545A333030305F6E316A34347274680000002003010000204A05000042065453303030320700003001FEFF003000, dni:640F, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZ3000_n1j44rth, clusterInt:0, attrInt:4, additionalAttrs:[[value:03, encoding:20, attrId:0000, consumedBytes:4, attrInt:0], [value:4A, encoding:20, attrId:0001, consumedBytes:4, attrInt:1], [value:TS0002, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]] (description:read attr - raw: 640F01000068040042105F545A333030305F6E316A34347274680000002003010000204A05000042065453303030320700003001FEFF003000, dni: 640F, endpoint: 01, cluster: 0000, size: 68, attrId: 0004, encoding: 42, command: 01, value: 105F545A333030305F6E316A34347274680000002003010000204A05000042065453303030320700003001FEFF003000)
dev:5992026-03-22 08:59:49.454infoBarraca Bind Response (deviceNetworkId 640F, zigbeeId A4C138BC553619EB)
dev:5992026-03-22 08:59:49.447debugBarraca Parsed descMap: [raw:catchall: 0000 8021 00 00 0040 00 640F 00 00 0000 00 00 8F00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:640F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[8F, 00]] (description:catchall: 0000 8021 00 00 0040 00 640F 00 00 0000 00 00 8F00)
dev:5992026-03-22 08:59:49.380infoBarraca device model TS0002, manufacturer _TZ3000_n1j44rth re-joined the network (deviceNetworkId 640F, zigbeeId A4C138BC553619EB)