[RELEASE] AQARA zigbee wall switch DTH by WooBooung

Hi @OhJungTae I have a zigbee module that can easily connected to smartthing and identify as “Thing”
It is 2 gangs switch that works in Tuya zigbee hub. These are the parameters i’m getting in IDE :

Data :

  • application: 41
  • endpointId: 01
  • manufacturer: _TZ3000_fvh3pjaz
  • model: TS0012
  • onOff: catchall
  • zigbeeNodeType: SLEEPY_END_DEVICE

Raw Description :
01 0104 0100 01 04 0000 0004 0005 0006 02 0019 000A

I can connect it to smartthing hub as a Thing and I changed the DTH to WooBooung integrated-zigbee-switch in IDE and it works very fine and I can control the switch both gangs from smartthings app but after 2 minutes both 2 switches/gangs switch OFF

I tried many times and same results, and I did follow your instruction to modify the DTH for integrated-zigbee-switch and add my model name but unfortunately didnt work !
I do appreciate if any can give me any hints to solve this issue

PS: this is my device

Thanks

Switch 1 logs:
df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:42 AM: debug checkAllSwtichValue null : off

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:42 AM: debug parse - sendEvent child 02

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:42 AM: debug eventMap [name:switch, value:off] | eventDescMap [raw:0104 0006 02 01 0000 00 D54B 00 00 0000 0A 01 0000100001402100000240210000, profileId:0104, clusterId:0006, sourceEndpoint:02, destinationEndpoint:01, options:0000, messageType:00, dni:D54B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0A, direction:01, attrId:0000, encoding:10, value:00, isValidForDataType:true, unparsedData:[01, 40, 21, 00, 00, 02, 40, 21, 00, 00], additionalAttrs:[[attrId:4001, attrInt:16385, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10], [attrId:4002, attrInt:16386, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10]], data:[00, 00, 10, 00, 01, 40, 21, 00, 00, 02, 40, 21, 00, 00], clusterInt:6, attrInt:0, commandInt:10]

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:42 AM: debug checkAllSwtichValue null : off

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:42 AM: debug parse - sendEvent parent 01

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:42 AM: debug eventMap [name:switch, value:off] | eventDescMap [raw:0104 0006 01 01 0000 00 D54B 00 00 0000 0A 01 00001000014021000002402100000180300102803000, profileId:0104, clusterId:0006, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:D54B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0A, direction:01, attrId:0000, encoding:10, value:00, isValidForDataType:true, unparsedData:[01, 40, 21, 00, 00, 02, 40, 21, 00, 00, 01, 80, 30, 01, 02, 80, 30, 00], additionalAttrs:[[attrId:4001, attrInt:16385, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10], [attrId:4002, attrInt:16386, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10], [attrId:8001, attrInt:32769, encoding:30, value:01, isValidForDataType:true, consumedBytes:8], [attrId:8002, attrInt:32770, encoding:30, value:00, isValidForDataType:true, consumedBytes:8]], data:[00, 00, 10, 00, 01, 40, 21, 00, 00, 02, 40, 21, 00, 00, 01, 80, 30, 01, 02, 80, 30, 00], clusterInt:6, attrInt:0, commandInt:10]

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:28 AM: debug checkAllSwtichValue null : off

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:28 AM: debug parse - sendEvent child 02

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:28 AM: debug eventMap [name:switch, value:off] | eventDescMap [raw:0104 0006 02 01 0000 00 D54B 00 00 0000 0A 01 0000100001402100000240210000, profileId:0104, clusterId:0006, sourceEndpoint:02, destinationEndpoint:01, options:0000, messageType:00, dni:D54B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0A, direction:01, attrId:0000, encoding:10, value:00, isValidForDataType:true, unparsedData:[01, 40, 21, 00, 00, 02, 40, 21, 00, 00], additionalAttrs:[[attrId:4001, attrInt:16385, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10], [attrId:4002, attrInt:16386, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10]], data:[00, 00, 10, 00, 01, 40, 21, 00, 00, 02, 40, 21, 00, 00], clusterInt:6, attrInt:0, commandInt:10]

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:28 AM: debug checkAllSwtichValue null : off

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:28 AM: debug parse - sendEvent parent 01

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:28 AM: debug eventMap [name:switch, value:off] | eventDescMap [raw:0104 0006 01 01 0000 00 D54B 00 00 0000 0A 01 00001000014021000002402100000180300102803000, profileId:0104, clusterId:0006, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:D54B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0A, direction:01, attrId:0000, encoding:10, value:00, isValidForDataType:true, unparsedData:[01, 40, 21, 00, 00, 02, 40, 21, 00, 00, 01, 80, 30, 01, 02, 80, 30, 00], additionalAttrs:[[attrId:4001, attrInt:16385, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10], [attrId:4002, attrInt:16386, encoding:21, value:0000, isValidForDataType:true, consumedBytes:10], [attrId:8001, attrInt:32769, encoding:30, value:01, isValidForDataType:true, consumedBytes:8], [attrId:8002, attrInt:32770, encoding:30, value:00, isValidForDataType:true, consumedBytes:8]], data:[00, 00, 10, 00, 01, 40, 21, 00, 00, 02, 40, 21, 00, 00, 01, 80, 30, 01, 02, 80, 30, 00], clusterInt:6, attrInt:0, commandInt:10]

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:19 AM: debug checkAllSwtichValue null : on

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:19 AM: debug parse - sendEvent child 02

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:19 AM: debug eventMap [name:switch, value:off] | eventDescMap [raw:0104 0006 02 01 0000 00 D54B 00 00 0000 01 01 0000001000, profileId:0104, clusterId:0006, sourceEndpoint:02, destinationEndpoint:01, options:0000, messageType:00, dni:D54B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, attrId:0000, resultCode:00, encoding:10, value:00, isValidForDataType:true, data:[00, 00, 00, 10, 00], clusterInt:6, attrInt:0, commandInt:1]

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:17 AM: debug checkAllSwtichValue null : on

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:17 AM: debug parse - sendEvent parent 01

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:17 AM: debug eventMap [name:switch, value:on] | eventDescMap [raw:0104 0006 01 01 0000 00 D54B 00 00 0000 01 01 0000001001, profileId:0104, clusterId:0006, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:D54B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, attrId:0000, resultCode:00, encoding:10, value:01, isValidForDataType:true, data:[00, 00, 00, 10, 01], clusterInt:6, attrInt:0, commandInt:1]

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:16 AM: debug refresh 02

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:16 AM: debug Bandi ZigBee Switch 2

df96ffaa-5cf2-47e3-ad91-1a97ad296894 2:25:16 AM: debug getEndpointCount[TS0012] : 2

Switch 2 logs:
90cfe364-428c-46e1-864c-a0717ce00fd3 2:28:12 AM: error java.lang.NumberFormatException: For input string: “D54B:02” @line 439 (refresh)

90cfe364-428c-46e1-864c-a0717ce00fd3 2:28:12 AM: debug updated()

90cfe364-428c-46e1-864c-a0717ce00fd3 2:28:12 AM: debug updated()

It seems that the problem is arised from “ALL” switch.

Hey Amin

I had the exact same Tuya switch TS0012 and had the same 2 minutes off issue with you. I found in another post that fix that problem! https://community.smartthings.com/t/uk-light-switches-my-experiences-2020/196035/67

Big thanks to the guys in that post!! What they found out is to use the Smart Things generic Zigbee Multi Switch (not Power) dh and inside it had code to deactivate the 2minute heartbeat with Orbivo switch. What we need to do is to add our switch manufacture ( _TZ3000_fvh3pjaz to that Orbivo
bool function then the switch stay on for hours!!! of course you need to add fingerprint and also the model number in the getChildCount() function so it detects as a 2 gang switch.

Hi @OhJungTae
I recently bought an Aqara Double Rocker Wired Switch WS-EUK02 - the EU 2021 version.
A link with the product can be found here: Aqara Switch WS-EUK02 No Neutral

I bought one in order to test, if it works properly with STH.

My use case is as follows:
I wanted a SmartSwitch that can Convert to a Wireless Switch if needed for a long time, due to the fact that I have Smart Lights, and always someone will switch off the physical switch rendering the Smart Lights useless ( I use Smart Lights vs Smart Switches due to the fact that a Smart switch cannot control color temperature or colors.)

My issue:
After I imported your repo inside My handlers section, the Switch was still added as a thing.
I edited your DTH locally and added this 2 lines:

  1. After the line 123 I have added:
'lumi.switch.l2aeu1' : 2,
  1. After the line 185 I have added:
fingerprint endpointId: "01", profileId: "0104", deviceId: "0100", inClusters: "0000, 0002, 0003, 0004, 0005, 0006, 0009, 0702, 0B04", outClusters: "000A, 0019", manufacturer: "LUMI", model: "lumi.switch.l2aeu1", deviceJoinName: "Aqara Switch EU"

I don’t know if I got the fingerprint ok but I will paste it here:

Raw Description 	01 0104 0100 01 07 0000 0002 0003 0004 0005 0006 0009 02 000A 0019

Data 	
    application: 0B
    endpointId: 01
    manufacturer: LUMI
    model: lumi.switch.l2aeu1
    onOff: catchall
    zigbeeNodeType: SLEEPY_END_DEVICE

All is well besides that the Decoupled type Boolean Class does nothing, and I’m interested to use this switch as a soft switch rather than a hard switch.

Can you help?

Thanks