[RE-RELEASE] Moes ZigBee Wall Switch 1/2/3-Gang (Tuya TS0601 Switches)

So I just did a ton of testing, and I have good news: it's working now for non-physical triggers. Physical triggers still aren't being captured.

I'm afraid I may have led you astray a little bit—it turns out the "Update Rule" button is required when updating triggers, but not actions. I never noticed this before, so it's possible some of the issues I was facing were due to me initially using the physical actions and then not properly updating the rule when I switched to non-physical actions. Apologies for the inconvenience!

The driver should probably handle those physical triggers too, so hopefully these latest logs help with that:

Top switch "on"

dev:692025-11-29 11:57:40.414 AMdebug
Child switch 1 is on
dev:692025-11-29 11:57:40.411 AMdebug
Parent Switch turned OFF (number of child switches on = 0)
dev:702025-11-29 11:57:40.404 AMinfo
Child switch 1 is on
dev:692025-11-29 11:57:40.396 AMdebug
processStarFeatherDP: dp=24 dp_id=1 fncmd=1 dp_len=0
dev:692025-11-29 11:57:40.392 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 004D1801000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 4D, 18, 01, 00, 01, 01]]
dev:692025-11-29 11:57:40.387 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 004D1801000101
dev:692025-11-29 11:57:40.365 AMdebug
Gang #1 countdown timer is 0 seconds
dev:692025-11-29 11:57:40.361 AMdebug
processStarFeatherDP: dp=30 dp_id=2 fncmd=0 dp_len=0
dev:692025-11-29 11:57:40.356 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 004C1E02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 4C, 1E, 02, 00, 04, 00, 00, 00, 00]]
dev:692025-11-29 11:57:40.350 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 004C1E02000400000000

Top switch "off"

dev:692025-11-29 11:57:55.899 AMdebug
Child switch 1 is off
dev:692025-11-29 11:57:55.893 AMdebug
Parent Switch turned ON (number of child switches on = 1)
dev:702025-11-29 11:57:55.884 AMinfo
Child switch 1 is off
dev:692025-11-29 11:57:55.877 AMdebug
processStarFeatherDP: dp=24 dp_id=1 fncmd=0 dp_len=0
dev:692025-11-29 11:57:55.872 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00561801000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 56, 18, 01, 00, 01, 00]]
dev:692025-11-29 11:57:55.868 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00561801000100
dev:692025-11-29 11:57:55.838 AMdebug
Gang #1 countdown timer is 0 seconds
dev:692025-11-29 11:57:55.834 AMdebug
processStarFeatherDP: dp=30 dp_id=2 fncmd=0 dp_len=0
dev:692025-11-29 11:57:55.831 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00551E02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 55, 1E, 02, 00, 04, 00, 00, 00, 00]]
dev:692025-11-29 11:57:55.828 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00551E02000400000000

Bottom switch "on"

dev:692025-11-29 11:58:14.091 AMdebug
Child switch 2 is on
dev:692025-11-29 11:58:14.088 AMdebug
Parent Switch turned OFF (number of child switches on = 0)
dev:712025-11-29 11:58:14.084 AMinfo
Child switch 2 is on
dev:692025-11-29 11:58:14.079 AMdebug
processStarFeatherDP: dp=25 dp_id=1 fncmd=1 dp_len=0
dev:692025-11-29 11:58:14.077 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00611901000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 61, 19, 01, 00, 01, 01]]
dev:692025-11-29 11:58:14.073 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00611901000101
dev:692025-11-29 11:58:14.034 AMdebug
Gang #2 countdown timer is 0 seconds
dev:692025-11-29 11:58:14.031 AMdebug
processStarFeatherDP: dp=31 dp_id=2 fncmd=0 dp_len=0
dev:692025-11-29 11:58:14.028 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00601F02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 60, 1F, 02, 00, 04, 00, 00, 00, 00]]
dev:692025-11-29 11:58:14.024 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 00601F02000400000000

Bottom switch "off"

dev:692025-11-29 11:58:30.267 AMdebug
Child switch 2 is off
dev:692025-11-29 11:58:30.262 AMdebug
Parent Switch turned ON (number of child switches on = 1)
dev:712025-11-29 11:58:30.252 AMinfo
Child switch 2 is off
dev:692025-11-29 11:58:30.247 AMdebug
processStarFeatherDP: dp=25 dp_id=1 fncmd=0 dp_len=0
dev:692025-11-29 11:58:30.245 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 006C1901000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 6C, 19, 01, 00, 01, 00]]
dev:692025-11-29 11:58:30.241 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 006C1901000100
dev:692025-11-29 11:58:30.204 AMdebug
Gang #2 countdown timer is 0 seconds
dev:692025-11-29 11:58:30.201 AMdebug
processStarFeatherDP: dp=31 dp_id=2 fncmd=0 dp_len=0
dev:692025-11-29 11:58:30.198 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 006B1F02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 6B, 1F, 02, 00, 04, 00, 00, 00, 00]]
dev:692025-11-29 11:58:30.194 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 02 01 006B1F02000400000000

I'm also seeing the following warning appear periodically:

dev:692025-11-29 11:58:29.739 AMwarn
parseMoesStarFeatherSwitch: unprocessed short Tuya command response: dp_id=null dp=null data=[24, 00]) size=2
dev:692025-11-29 11:58:29.735 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 00 00 0000 0B 01 2400, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[24, 00]]
dev:692025-11-29 11:58:29.730 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 00 00 0000 0B 01 2400
dev:692025-11-29 11:58:29.654 AMdebug
Switch (Office) Tuya device time synchronized
dev:692025-11-29 11:58:29.651 AMdebug
Switch (Office) sendZigbeeCommands: [he cmd 0xEC5E 0x01 0xEF00 0x24 {0008692B3445692ADFE5}, delay 2000]
dev:692025-11-29 11:58:29.648 AMdebug
Switch (Office) timezone offset of current location is -21600000 (-6 hours), current hour is 11 h
dev:692025-11-29 11:58:29.646 AMdebug
descMap: [raw:catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 24 01 6A00, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:EC5E, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:24, direction:01, data:[6A, 00]]
dev:692025-11-29 11:58:29.642 AMdebug
description: catchall: 0104 EF00 01 01 0040 00 EC5E 01 00 0000 24 01 6A00
1 Like