Tuya Zigbee Wall Switch (aka. Lonsonho or Bandi)

@markus how would you approach the 3 gang switch?

Here's the formatted log:

BUTTON 1 ON: debugsendOnOffEvent(endpoint=1, state=true)
BUTTON 1 ON: info ON/OFF CATCHALL EF00 CLUSTER EVENT - description:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 00390101000101 | parseMap:[raw:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 00390101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CC41, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 39, 01, 01, 00, 01, 01]]

BUTTON 1 OFF: debugsendOnOffEvent(endpoint=1, state=false)
BUTTON 1 OFF: info ON/OFF CATCHALL EF00 CLUSTER EVENT - description:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003A0101000100 | parseMap:[raw:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003A0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CC41, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 3A, 01, 01, 00, 01, 00]]

BUTTON 2 ON: debugsendOnOffEvent(endpoint=1, state=true)
BUTTON 2 ON: info ON/OFF CATCHALL EF00 CLUSTER EVENT - description:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003B0201000101 | parseMap:[raw:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003B0201000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CC41, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 3B, 02, 01, 00, 01, 01]]

BUTTON 2 OFF: debugsendOnOffEvent(endpoint=1, state=false)
BUTTON 2 OFF: info ON/OFF CATCHALL EF00 CLUSTER EVENT - description:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003C0201000100 | parseMap:[raw:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003C0201000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CC41, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 3C, 02, 01, 00, 01, 00]]

BUTTON 3 ON: debugsendOnOffEvent(endpoint=1, state=true)
BUTTON 3 ON: info ON/OFF CATCHALL EF00 CLUSTER EVENT - description:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003D0301000101 | parseMap:[raw:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003D0301000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CC41, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 3D, 03, 01, 00, 01, 01]]

BUTTON 3 OFF: debugsendOnOffEvent(endpoint=1, state=false)
BUTTON 3 OFF: info ON/OFF CATCHALL EF00 CLUSTER EVENT - description:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003E0301000100 | parseMap:[raw:catchall: 0104 EF00 01 01 0040 00 CC41 01 00 0000 02 01 003E0301000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CC41, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 3E, 03, 01, 00, 01, 00]]```