Device Handler for Aqara 2 Gang Wired Wall Switch no Neutral

Sure… here it is, using the latest testcode for the main switch and the updated child switch code.

  1. In decoupled = FALSE, double press main switch.
5:30:25 PM: debug Shower Light QBKG25LM Parse returned: [[name:button, value:double, data:[buttonNumber:1], isStateChange:true, linkText:Shower Light QBKG25LM, descriptionText:Shower Light QBKG25LM button is double, displayed:true], [name:lastCheckin, value:17:30:25 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]]
5:30:25 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F592900120A5500210200, dni: 6F59, endpoint: 29, cluster: 0012, size: 10, attrId: 0055, result: success, encoding: 21, value: 0002'
5:30:25 PM: debug Shower Light QBKG25LM Parse returned: [[name:switch, value:off, isStateChange:true, linkText:Shower Light QBKG25LM, descriptionText:Shower Light QBKG25LM switch is off, displayed:true], [name:lastCheckin, value:17:30:25 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]]
5:30:25 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100061600001000F5002300596F03, dni: 6F59, endpoint: 01, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 036f59002300f500'
5:30:24 PM: debug Shower Light QBKG25LM Parse returned: [[name:switch, value:on, isStateChange:true, linkText:Shower Light QBKG25LM, descriptionText:Shower Light QBKG25LM switch is on, displayed:true], [name:lastCheckin, value:17:30:24 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]]
5:30:24 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100061600001001F5002300596F03, dni: 6F59, endpoint: 01, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 036f59002300f501' 
  1. Setting decoupled = TRUE for main switch
 5:32:51 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:51 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:51 PM: debug Shower Light QBKG25LM {Child 2 [name:switch, value:off, isStateChange:true, linkText:Exhaust Fan QBKG25LM-(2), descriptionText:Exhaust Fan QBKG25LM-(2) switch is off, displayed:true, description:] 
 5:32:51 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590300061600001000F5002300596F02, dni: 6F59, endpoint: 03, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 026f59002300f500' 
 5:32:50 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:50 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:50 PM: debug Shower Light QBKG25LM {Child 1 [name:switch, value:off, isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) switch is off, displayed:true, description:] 
 5:32:50 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590200061600001000F5002300596F02, dni: 6F59, endpoint: 02, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 026f59002300f500' 
 5:32:48 PM: debug Shower Light QBKG25LM Parse returned: [[name:switch, value:off, isStateChange:true, linkText:Shower Light QBKG25LM, descriptionText:Shower Light QBKG25LM switch is off, displayed:true], [name:lastCheckin, value:17:32:48 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:48 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100061600001000F5002300596F02, dni: 6F59, endpoint: 01, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 026f59002300f500' 
 5:32:48 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:48 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:48 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x22, 0xff, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:48 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 01 01 22FF86' 
 5:32:47 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:47 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:47 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:32:47 PM: debug Shower Light QBKG25LM FCC07 Map: [100:false, 101:false, 102:false, 3:25, 5:134, 154:0, 8:283, 10:0, 11:0] 
 5:32:47 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E641000651000661000032819052186009A200008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210800209a008621051928030010660010650010641e' 
 5:32:46 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:46 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:46 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:32:46 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x01, 0x00, 0x20, 0x1b], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:46 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0100201B' 
 5:32:46 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:46 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:46 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0xf7, 0x00, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:46 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 01 01 F70086' 
 5:32:46 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:46 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:46 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 00' 
 5:32:44 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:44 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:44 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:32:44 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00CF600002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 12, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:32:44 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:44 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:44 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:32:44 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x06, 0x00, 0x42, 0x0a, 0x30, 0x36, 0x2d, 0x31, 0x39, 0x2d, 0x32, 0x30, 0x32, 0x30], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:44 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0600420A30362D31392D32303230' 
 5:32:41 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:41 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:41 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 00' 
 5:32:39 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:39 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:39 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 00' 
 5:32:39 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:39 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:39 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:32:39 PM: debug Shower Light QBKG25LM FCC07 Map: [100:false, 101:false, 102:false, 3:25, 5:134, 154:16, 8:283, 10:0, 11:0] 
 5:32:39 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E641000651000661000032819052186009A201008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210810209a008621051928030010660010650010641e' 
 5:32:35 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:35 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:35 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:32:35 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x01, 0x00, 0x20, 0x1b], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:35 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0100201B' 
 5:32:35 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:35 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:35 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0900002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0009, result: success, encoding: 20, value: 01' 
 5:32:33 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:33 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:33 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:32:33 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x06, 0x00, 0x42, 0x0a, 0x30, 0x36, 0x2d, 0x31, 0x39, 0x2d, 0x32, 0x30, 0x32, 0x30], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:33 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0600420A30362D31392D32303230' 
 5:32:32 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:32 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:32 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x03, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:32 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 03 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:32:32 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:32 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:32 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5903FCC00800022001, dni: 6F59, endpoint: 03, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:32:30 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:30 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:30 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x02, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:30 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 02 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:32:30 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:30 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:30 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5902FCC00800022001, dni: 6F59, endpoint: 02, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:32:30 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:30 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:30 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:32:30 PM: debug Shower Light QBKG25LM FCC07 Map: [100:false, 101:false, 102:false, 3:25, 5:133, 154:16, 8:283, 10:0, 11:0] 
 5:32:30 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E641000651000661000032819052185009A201008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210810209a008521051928030010660010650010641e' 
 5:32:27 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:27 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:27 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:27 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:32:27 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:27 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:32:27 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:27 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:27 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00800022000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 00' 
 5:32:25 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:25 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:25 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:32:25 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100020C000000291900, dni: 6F59, endpoint: 01, cluster: 0002, size: 12, attrId: 0000, result: success, encoding: 29, value: 0019' 
 5:32:21 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:21 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:32:21 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:21 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:32:21 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:32:21 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:32:21 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:21 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:21 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:32:21 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00AF6002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:32:21 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:32:21 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00AF6002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:32:20 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:20 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:20 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:32:20 PM: debug Shower Light QBKG25LM FCC07 Map: [100:false, 101:false, 102:false, 3:25, 5:132, 154:16, 8:283, 10:0, 11:0] 
 5:32:20 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E641000651000661000032819052184009A201008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210810209a008421051928030010660010650010641e' 
 5:32:16 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:16 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:16 PM: debug Shower Light QBKG25LM Device Type: lumi.switch.l3acn3 
 5:32:16 PM: debug Shower Light QBKG25LM Basic Cluster: [raw:6F590100002E05000042126C756D692E7377697463682E6C3361636E33, dni:6F59, endpoint:01, cluster:0000, size:46, attrId:0005, result:success, encoding:42, value:6C756D692E7377697463682E6C3361636E33] 
 5:32:16 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100002E05000042126C756D692E7377697463682E6C3361636E33, dni: 6F59, endpoint: 01, cluster: 0000, size: 46, attrId: 0005, result: success, encoding: 42, value: 6C756D692E7377697463682E6C3361636E33' 
 5:32:14 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:32:14 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:32:14 PM: debug Shower Light QBKG25LM Basic Cluster: [raw:6F590100000A010000201B, dni:6F59, endpoint:01, cluster:0000, size:10, attrId:0001, result:success, encoding:20, value:1b] 
 5:32:14 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100000A010000201B, dni: 6F59, endpoint: 01, cluster: 0000, size: 10, attrId: 0001, result: success, encoding: 20, value: 1b' 
 5:32:14 PM: debug Shower Light QBKG25LM Basic Cluster: [raw:6F590100000A010000201B, dni:6F59, endpoint:01, cluster:0000, size:10, attrId:0001, result:success, encoding:20, value:1b] 
 5:32:14 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100000A010000201B, dni: 6F59, endpoint: 01, cluster: 0000, size: 10, attrId: 0001, result: success, encoding: 20, value: 1b' 
 5:32:13 PM: debug Shower Light QBKG25LM [st rattr 0x6F59 0x01 0x0000 0x0001, delay 2000, st rattr 0x6F59 0x01 0x0000 0x0005, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0009 0x20 {01}, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x00F6 0x21 {03E8}, delay 200, send 0x6F59 0x01 0x01, delay 2000, st rattr 0x6F59 0x01 0x0001 0x0000, delay 2000, st rattr 0x6F59 0x01 0x0002 0x0000, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {00}, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x02, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x03, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0009, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x00F6, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x00F7, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0x0000 0xFF22, delay 200, send 0x6F59 0x01 0x01, delay 2000] 
 5:32:13 PM: debug Shower Light QBKG25LM Decoupled: [true, false, false] true 
 5:32:13 PM: debug Shower Light QBKG25LM Setting OPPLE Mode 
 5:32:13 PM: debug Shower Light QBKG25LM Exhaust Fan QBKG25LM-(2) 6F59-2 
 5:32:13 PM: debug Shower Light QBKG25LM Sink Light QBKG25LM-(1) 6F59-1 
 5:32:13 PM: debug Shower Light QBKG25LM State: [unwiredSwitches:[false, false, false], decoupled:[true, false, false], tempNow:25, tempNow2:27, lastTempTime:1637832733525, tempOffset:2, oldOnOff:false, hasFCC0:true, hasFF22:false, numSwitches:3, numButtons:4, endpoints:[1, 2, 3, 41, 42, 43, 246, 51, 52, 53], childDevices:[6F59-1, 6F59-2], refreshOn:false] 
 5:32:13 PM: debug Shower Light QBKG25LM Children(b): [6F59-1, 6F59-2] 
 5:32:13 PM: debug Shower Light QBKG25LM Children: [Sink Light QBKG25LM-(1), Exhaust Fan QBKG25LM-(2)]: 2 
 5:32:13 PM: debug Shower Light QBKG25LM endpoints: [1, 2, 3, 41, 42, 43, 246, 51, 52, 53] 
 5:32:13 PM: debug Shower Light QBKG25LM Unwired: [false, false, false] 
 5:32:13 PM: debug Shower Light QBKG25LM [unwiredSwitches:[false, false, false], decoupled:[false, false, false], tempNow:25, tempNow2:27] 
 5:32:13 PM: info Shower Light QBKG25LM refreshing 
  1. Double press main switch
5:34:30 PM: debug Shower Light QBKG25LM Parse returned: [[name:button, value:double, data:[buttonNumber:1], isStateChange:true, linkText:Shower Light QBKG25LM, descriptionText:Shower Light QBKG25LM button is double, displayed:true], [name:lastCheckin, value:17:34:30 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]]
5:34:30 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F592900120A5500210200, dni: 6F59, endpoint: 29, cluster: 0012, size: 10, attrId: 0055, result: success, encoding: 21, value: 0002' 
  1. Decoupled = FALSE for child switch. Double press child switch.
 5:37:28 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:37:28 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:37:28 PM: debug Shower Light QBKG25LM Child 1 [name:button, value:double, data:[buttonNumber:1], isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) button is double, displayed:true, description:] 
 5:37:28 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F592A00120A5500210200, dni: 6F59, endpoint: 2A, cluster: 0012, size: 10, attrId: 0055, result: success, encoding: 21, value: 0002' 
 5:37:27 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:37:27 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:37:27 PM: debug Shower Light QBKG25LM {Child 1 [name:switch, value:on, isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) switch is on, displayed:true, description:] 
 5:37:27 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590200061600001001F5002300596F03, dni: 6F59, endpoint: 02, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 036f59002300f501' 
 5:37:27 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590200061600001001F5002300596F03, dni: 6F59, endpoint: 02, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 036f59002300f501' 
  1. Setting Decoupled = TRUE for child switch.
 5:38:58 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:58 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:58 PM: debug Shower Light QBKG25LM {Child 1 [name:switch, value:off, isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) switch is off, displayed:true, description:] 
 5:38:58 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590200061600001000F5002300596F02, dni: 6F59, endpoint: 02, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 026f59002300f500' 
 5:38:57 PM: debug Shower Light QBKG25LM Parse returned: [[name:switch, value:off, isStateChange:true, linkText:Shower Light QBKG25LM, descriptionText:Shower Light QBKG25LM switch is off, displayed:true], [name:lastCheckin, value:17:38:57 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:57 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100061600001000F5002300596F02, dni: 6F59, endpoint: 01, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 026f59002300f500' 
 5:38:56 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:56 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:56 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x22, 0xff, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:56 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 01 01 22FF86' 
 5:38:56 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:56 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:56 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:38:56 PM: debug Shower Light QBKG25LM FCC07 Map: [100:false, 101:false, 102:false, 3:25, 5:141, 154:0, 8:283, 10:0, 11:0] 
 5:38:56 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E64100065100066100003281905218D009A200008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210800209a008d21051928030010660010650010641e' 
 5:38:55 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:55 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:55 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:38:55 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x01, 0x00, 0x20, 0x1b], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:55 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0100201B' 
 5:38:54 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:54 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:54 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:54 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:54 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:54 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0xf7, 0x00, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:54 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 01 01 F70086' 
 5:38:53 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:53 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:53 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:52 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:52 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:52 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:38:52 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x06, 0x00, 0x42, 0x0a, 0x30, 0x36, 0x2d, 0x31, 0x39, 0x2d, 0x32, 0x30, 0x32, 0x30], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:52 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0600420A30362D31392D32303230' 
 5:38:52 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:52 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:52 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:38:52 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00CF600002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 12, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:38:51 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:51 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:51 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:49 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:49 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:49 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:49 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:49 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:49 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0xf7, 0x00, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:49 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 01 01 F70086' 
 5:38:44 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:44 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:44 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:38:44 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x06, 0x00, 0x42, 0x0a, 0x30, 0x36, 0x2d, 0x31, 0x39, 0x2d, 0x32, 0x30, 0x32, 0x30], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:44 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0600420A30362D31392D32303230' 
 5:38:43 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:43 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:43 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:38:43 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00CF600002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 12, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:38:42 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:42 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:42 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:42 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:42 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:42 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0900002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0009, result: success, encoding: 20, value: 01' 
 5:38:41 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:41 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:41 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x03, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:41 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 03 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:38:41 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:41 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:41 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5903FCC00800022001, dni: 6F59, endpoint: 03, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:41 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:41 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:41 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0002002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:40 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:40 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:40 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5902FCC00800022000, dni: 6F59, endpoint: 02, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 00' 
 5:38:35 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:35 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:35 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:35 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:38:35 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:35 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:35 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00800022001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:34 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:34 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:34 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:38:34 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x01, 0x00, 0x20, 0x1b], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:34 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0100201B' 
 5:38:34 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:34 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:34 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00A0900002001, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 0009, result: success, encoding: 20, value: 01' 
 5:38:33 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:33 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:33 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:38:33 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100020C000000291900, dni: 6F59, endpoint: 01, cluster: 0002, size: 12, attrId: 0000, result: success, encoding: 29, value: 0019' 
 5:38:31 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:31 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:31 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:38:31 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x06, 0x00, 0x42, 0x0a, 0x30, 0x36, 0x2d, 0x31, 0x39, 0x2d, 0x32, 0x30, 0x32, 0x30], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:31 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0600420A30362D31392D32303230' 
 5:38:31 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:31 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:31 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x03, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:31 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 03 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:38:31 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:31 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:31 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5903FCC00800022001, dni: 6F59, endpoint: 03, cluster: FCC0, size: 8, attrId: 0200, result: success, encoding: 20, value: 01' 
 5:38:28 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:28 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:28 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:28 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:38:28 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:28 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:28 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:38:28 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00AF6002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:38:24 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:24 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:24 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:38:24 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100020C000000291900, dni: 6F59, endpoint: 01, cluster: 0002, size: 12, attrId: 0000, result: success, encoding: 29, value: 0019' 
 5:38:24 PM: debug Shower Light QBKG25LM CatchAll ignored. 
 5:38:24 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x06, 0x00, 0x42, 0x0a, 0x30, 0x36, 0x2d, 0x31, 0x39, 0x2d, 0x32, 0x30, 0x32, 0x30], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x0a, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:24 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0000 01 01 0000 00 6F59 00 01 115F 0A 01 0600420A30362D31392D32303230' 
 5:38:23 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:23 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:23 PM: debug Shower Light QBKG25LM Device Type: lumi.switch.l3acn3 
 5:38:23 PM: debug Shower Light QBKG25LM Basic Cluster: [raw:6F590100002E05000042126C756D692E7377697463682E6C3361636E33, dni:6F59, endpoint:01, cluster:0000, size:46, attrId:0005, result:success, encoding:42, value:6C756D692E7377697463682E6C3361636E33] 
 5:38:23 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100002E05000042126C756D692E7377697463682E6C3361636E33, dni: 6F59, endpoint: 01, cluster: 0000, size: 46, attrId: 0005, result: success, encoding: 42, value: 6C756D692E7377697463682E6C3361636E33' 
 5:38:21 PM: debug Shower Light QBKG25LM State: [unwiredSwitches:[false, false, false], decoupled:[false, true, false], tempNow:25, tempNow2:27, lastTempTime:1637833101425, tempOffset:2, oldOnOff:false, hasFCC0:true, hasFF22:false, numSwitches:3, numButtons:4, endpoints:[1, 2, 3, 41, 42, 43, 246, 51, 52, 53], childDevices:[6F59-1, 6F59-2], refreshOn:false] 
 5:38:21 PM: debug Shower Light QBKG25LM Setting OPPLE Mode 
 5:38:21 PM: debug Shower Light QBKG25LM Devices: [6F59-1, 6F59-2] 
 5:38:21 PM: debug Shower Light QBKG25LM Sink Light QBKG25LM-(1) 6F59-1 
 5:38:21 PM: debug Shower Light QBKG25LM Children(b): [6F59-1, 6F59-2] 
 5:38:21 PM: debug Shower Light QBKG25LM Children: [Sink Light QBKG25LM-(1), Exhaust Fan QBKG25LM-(2)]: 2 
 5:38:21 PM: debug Shower Light QBKG25LM Decoupled: [false, true, false] 
 5:38:21 PM: debug Shower Light QBKG25LM [unwired:false, decoupled:false, tempOffset:2, infoLogging:true, debugLogging:true] 
 5:38:21 PM: debug Shower Light QBKG25LM [st rattr 0x6F59 0x01 0x0000 0x0001, delay 2000, st rattr 0x6F59 0x01 0x0000 0x0005, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0009 0x20 {01}, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x00F6 0x21 {03E8}, delay 200, send 0x6F59 0x01 0x01, delay 2000, st rattr 0x6F59 0x01 0x0001 0x0000, delay 2000, st rattr 0x6F59 0x01 0x0002 0x0000, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {00}, delay 200, send 0x6F59 0x01 0x02, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x03, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0009, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x00F6, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x00F7, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0x0000 0xFF22, delay 200, send 0x6F59 0x01 0x01, delay 2000] 
 5:38:21 PM: debug Shower Light QBKG25LM Decoupled: [false, true, false] false 
 5:38:21 PM: debug Shower Light QBKG25LM Unwired Switches: [false, false, false] 
 5:38:21 PM: debug Shower Light QBKG25LM Setting Number of Buttons to 4 
 5:38:21 PM: debug Shower Light QBKG25LM endpoints: [1, 2, 3, 41, 42, 43, 246, 51, 52, 53] 
 5:38:21 PM: debug Shower Light QBKG25LM Unwired: [false, false, false] 
 5:38:21 PM: info Shower Light QBKG25LM Child Refresh: 6F59-1 [6F59-1, 6F59-2] [unwired:false, decoupled:true] 
 5:38:20 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:20 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:20 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x00], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:20 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 FCC0 01 01 0000 00 6F59 00 01 115F 04 01 00' 
 5:38:20 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:20 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:20 PM: debug Shower Light QBKG25LM 0x00F6 meaning: 1000 
 5:38:20 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC00AF6002103E8, dni: 6F59, endpoint: 01, cluster: FCC0, size: 10, attrId: 00f6, result: success, encoding: 21, value: e803' 
 5:38:20 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:20 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:20 PM: debug Shower Light QBKG25LM setTemp: [] 
 5:38:20 PM: debug Shower Light QBKG25LM FCC07 Map: [100:false, 101:false, 102:false, 3:25, 5:138, 154:16, 8:283, 10:0, 11:0] 
 5:38:20 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E64100065100066100003281905218A009A201008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210810209a008a21051928030010660010650010641e' 
 5:38:20 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F5901FCC044F700411E64100065100066100003281905218A009A201008211B010A2100000B2000, dni: 6F59, endpoint: 01, cluster: FCC0, size: 68, attrId: 00f7, result: success, encoding: 41, value: 00200b0000210a011b210810209a008a21051928030010660010650010641e' 
 5:38:16 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:16 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:false]] 
 5:38:16 PM: debug Shower Light QBKG25LM {Child 1 [name:switch, value:off, isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) switch is off, displayed:true, description:] 
 5:38:16 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590200061600001000F5002363000007, dni: 6F59, endpoint: 02, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 070000632300f500' 
 5:38:16 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:16 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:16 PM: debug Shower Light QBKG25LM {Child 1 [name:switch, value:off, isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) switch is off, displayed:true, description:] 
 5:38:16 PM: debug Shower Light QBKG25LM SmartShield(text: null, manufacturerId: 0x0000, direction: 0x01, data: [0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x6f59, isClusterSpecific: false, sourceEndpoint: 0x02, profileId: 0x0104, command: 0x0b, clusterId: 0x0006, destinationEndpoint: 0x01, options: 0x0000) 
 5:38:16 PM: debug Shower Light QBKG25LM Parsing 'catchall: 0104 0006 02 01 0000 00 6F59 00 00 0000 0B 01 0000' 
 5:38:16 PM: debug Shower Light QBKG25LM ChildOff 6F59-1 1 [st cmd 0x6F59 0x02 0x0006 0x00 {}, delay 2000] 
 5:38:15 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:15 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:15 PM: debug Shower Light QBKG25LM Device Type: lumi.switch.l3acn3 
 5:38:15 PM: debug Shower Light QBKG25LM Basic Cluster: [raw:6F590100002E05000042126C756D692E7377697463682E6C3361636E33, dni:6F59, endpoint:01, cluster:0000, size:46, attrId:0005, result:success, encoding:42, value:6C756D692E7377697463682E6C3361636E33] 
 5:38:15 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100002E05000042126C756D692E7377697463682E6C3361636E33, dni: 6F59, endpoint: 01, cluster: 0000, size: 46, attrId: 0005, result: success, encoding: 42, value: 6C756D692E7377697463682E6C3361636E33' 
 5:38:13 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:38:13 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]] 
 5:38:13 PM: debug Shower Light QBKG25LM Basic Cluster: [raw:6F590100000A010000201B, dni:6F59, endpoint:01, cluster:0000, size:10, attrId:0001, result:success, encoding:20, value:1b] 
 5:38:13 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F590100000A010000201B, dni: 6F59, endpoint: 01, cluster: 0000, size: 10, attrId: 0001, result: success, encoding: 20, value: 1b' 
 5:38:13 PM: debug Shower Light QBKG25LM State: [unwiredSwitches:[false, false, false], decoupled:[false, false, false], tempNow:25, tempNow2:27, lastTempTime:1637833092989, tempOffset:2, oldOnOff:false, hasFCC0:true, hasFF22:false, numSwitches:3, numButtons:4, endpoints:[1, 2, 3, 41, 42, 43, 246, 51, 52, 53], childDevices:[6F59-1, 6F59-2], refreshOn:false] 
 5:38:13 PM: debug Shower Light QBKG25LM Unwired Switches: [false, false, false] 
 5:38:13 PM: debug Shower Light QBKG25LM Devices: [6F59-1, 6F59-2] 
 5:38:13 PM: debug Shower Light QBKG25LM Sink Light QBKG25LM-(1) 6F59-1 
 5:38:13 PM: debug Shower Light QBKG25LM Unwired Switches: [false, false, false] 
 5:38:13 PM: debug Shower Light QBKG25LM Setting Number of Buttons to 4 
 5:38:12 PM: debug Shower Light QBKG25LM [childDevices:[6F59-1, 6F59-2], refreshOn:false, tempOffset:2, lastCheckTime:1637833048447, tempNow2:27, decoupled:[false, false, false], lastEndpcode:4, flag:double, hasFCC0:true, endpoints:[1, 2, 3, 41, 42, 43, 246, 51, 52, 53], numButtons:4, hasFF22:false, numSwitches:3, tempNow:25, unwiredSwitches:[false, false, false], lastTempTime:1637832963945, oldOnOff:false] 
 5:38:12 PM: info Shower Light QBKG25LM Child Refresh: 6F59-1 [6F59-1, 6F59-2] [unwired:false, decoupled:false] 
 5:38:13 PM: debug Shower Light QBKG25LM [st rattr 0x6F59 0x01 0x0000 0x0001, delay 2000, st rattr 0x6F59 0x01 0x0000 0x0005, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0009 0x20 {01}, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x00F6 0x21 {03E8}, delay 200, send 0x6F59 0x01 0x01, delay 2000, st rattr 0x6F59 0x01 0x0001 0x0000, delay 2000, st rattr 0x6F59 0x01 0x0002 0x0000, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x02, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global write 0xFCC0 0x0200 0x20 {01}, delay 200, send 0x6F59 0x01 0x03, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0009, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x0200, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x00F6, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0xFCC0 0x00F7, delay 200, send 0x6F59 0x01 0x01, delay 2000, zcl mfg-code 0x115F, delay 200, zcl global read 0x0000 0xFF22, delay 200, send 0x6F59 0x01 0x01, delay 2000] 
 5:38:13 PM: debug Shower Light QBKG25LM Decoupled: [false, false, false] false 
 5:38:13 PM: debug Shower Light QBKG25LM Setting OPPLE Mode 
 5:38:13 PM: debug Shower Light QBKG25LM Exhaust Fan QBKG25LM-(2) 6F59-2 
 5:38:13 PM: debug Shower Light QBKG25LM Children(b): [6F59-1, 6F59-2] 
 5:38:13 PM: debug Shower Light QBKG25LM Children: [Sink Light QBKG25LM-(1), Exhaust Fan QBKG25LM-(2)]: 2 
 5:38:12 PM: debug Shower Light QBKG25LM endpoints: [1, 2, 3, 41, 42, 43, 246, 51, 52, 53] 
 5:38:12 PM: info Shower Light QBKG25LM refreshing 
 5:38:12 PM: debug Shower Light QBKG25LM Child Refresh: 1 6F59-1 [false, false, false] [false, false, false] 
 5:38:12 PM: info Shower Light QBKG25LM Child Refresh: 6F59-1 [6F59-1, 6F59-2] [unwired:false, decoupled:false] 
  1. Double press child switch in Decoupled = TRUE.
 5:40:20 PM: debug Shower Light QBKG25LM Parse returned: [[name:lastCheckin, value:17:40:20 Thu 25 Nov (SGT), descriptionText:Check-In, displayed:true, linkText:Shower Light QBKG25LM, isStateChange:true]]
 5:40:20 PM: debug Shower Light QBKG25LM Child 1 [name:button, value:double, data:[buttonNumber:1], isStateChange:true, linkText:Sink Light QBKG25LM-(1), descriptionText:Sink Light QBKG25LM-(1) button is double, displayed:true, description:]
 5:40:20 PM: debug Shower Light QBKG25LM Parsing 'read attr - raw: 6F592A00120A5500210200, dni: 6F59, endpoint: 2A, cluster: 0012, size: 10, attrId: 0055, result: success, encoding: 21, value: 0002' 

In all cases, the decoupled setting is correctly working in terms of whether the connected device turns on or not. One minor issue is that double press sometimes doesn’t update properly in the App status when decoupled = FALSE, probably because of the quick sequential presses.

Also, how do i create these automations in Smartthings that rely on double presses or press and hold? Online searches show that i need Smartthings labs function which isn’t available on my app.

Thanks! That’s as I expected. So the code to cope with double presses and press & hold is already in the latest version.

When you try to create an automation in the latest version of the App, you will come to a screen headed ‘add routine’.
In the box after ‘if’ click the + then ‘Device Status’, then click on your device. You should get a list of options, which includes ‘Pressed’, ‘Double Pressed’ and ‘Held’.

In the box after ‘then’ you get ‘Control Device’ then click on your device. This time you have to click ‘next’ (top right) before you get a different list of options, which does not include the button options.

As I mentioned before, there is a possible issue with double presses and decoupled=false. I notice in your logs that it has registered an ‘on’ followed by an ‘off’ when you double clicked the main (left hand) switch, but has registered two 'on’s when you did the same thing with the child switch. Could be a bug, but I suspect it’s a question of how quickly the 2 presses are done. There is an obvious question as to what you really expect to happen when you do double presses with decoupled=false, as I would expect it to simply flash the light.

Hmmm…I did not pay attention about the status of the blue lights when I was in Aqara showroom. But I don’t care that much for the physical blue lights status, but I do care for statuses inside the app.

For the rest you are correct, the physical buttons should control other devices by sending only statuses or messages to the hub, where you can employ various automations.

My individual case, is to use smart switches with smart bulbs for example, and I think you understand what happens if the switch cuts the power. Many people searched for a solution like this, due to the fact anyone can turn the physical switch off, and the bulbs will be offline. Due to this requirement Aqara and Inovelli I think, create this kind of functionality. But as you all now Samsung’s hub needs third party DTH. I’m worried with the new LUA language, no DTH will work anymore.

This will appear in the logs:

 998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:11 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:11 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:11 PM: debug Aqara Switch EU-Main SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0x22, 0xff, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x8892, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0x0000, destinationEndpoint: 0x01, options: 0x0000)
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:11 PM: debug Aqara Switch EU-Main Parsing 'catchall: 0104 0000 01 01 0000 00 8892 00 01 115F 01 01 22FF86'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:09 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:09 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:09 PM: debug Aqara Switch EU-Main SmartShield(text: null, manufacturerId: 0x115f, direction: 0x01, data: [0xf7, 0x00, 0x86], number: null, isManufacturerSpecific: true, messageType: 0x00, senderShortId: 0x8892, isClusterSpecific: false, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x01, clusterId: 0xfcc0, destinationEndpoint: 0x01, options: 0x0000)
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:09 PM: debug Aqara Switch EU-Main Parsing 'catchall: 0104 FCC0 01 01 0000 00 8892 00 01 115F 01 01 F70086'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:07 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:07 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:07 PM: debug Aqara Switch EU-Main 0x00F6 meaning: 1000
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:07 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 889201FCC00CF600002103E8, dni: 8892, endpoint: 01, cluster: FCC0, size: 12, attrId: 00f6, result: success, encoding: 21, value: e803'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:04 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:04 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:false]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:04 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 889201FCC00A0002002001, dni: 8892, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:04 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:04 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:04 PM: debug Aqara Switch EU-Main Child 1 [name:button, value:pushed, data:[buttonNumber:1], isStateChange:true, linkText:Aqara Switch EU-02-Child, descriptionText:Aqara Switch EU-02-Child button is pushed, displayed:true, description:]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:04 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 88922A00120A5500210100, dni: 8892, endpoint: 2A, cluster: 0012, size: 10, attrId: 0055, result: success, encoding: 21, value: 0001'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:02 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:02 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:false]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:02 PM: debug Aqara Switch EU-Main {Child 1 [name:switch, value:off, isStateChange:true, linkText:Aqara Switch EU-02-Child, descriptionText:Aqara Switch EU-02-Child switch is off, displayed:true, description:]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:02 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 88920200061600001000F5002300928802, dni: 8892, endpoint: 02, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 028892002300f500'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:02 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:39:02 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:02 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 889201FCC00A0002002001, dni: 8892, endpoint: 01, cluster: FCC0, size: 10, attrId: 0200, result: success, encoding: 20, value: 01'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:01 PM: debug Aqara Switch EU-Main Parse returned: [[name:switch, value:off, isStateChange:true, linkText:Aqara Switch EU-Main, descriptionText:Aqara Switch EU-Main switch is off, displayed:true], [name:lastCheckin, value:20:39:01 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:01 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 88920100061600001000F5002300928802, dni: 8892, endpoint: 01, cluster: 0006, size: 22, attrId: 0000, result: success, encoding: 10, value: 028892002300f500'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:00 PM: debug Aqara Switch EU-Main Parse returned: [[name:temperature, value:30, unit:C, linkText:Aqara Switch EU-Main, descriptionText:Aqara Switch EU-Main temperature is 30°C, isStateChange:false, displayed:false], [name:lastCheckin, value:20:39:00 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:true]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:00 PM: debug Aqara Switch EU-Main setTemp: [[name:temperature, value:30, unit:C, linkText:Aqara Switch EU-Main, descriptionText:Aqara Switch EU-Main temperature is 30°C, isStateChange:false, displayed:false]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:00 PM: debug Aqara Switch EU-Main Temperature is now 30°
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:00 PM: debug Aqara Switch EU-Main FCC07 Map: [100:false, 101:false, 3:30, 5:33, 154:0, 10:0, 11:0, 13:3595, 14:0]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:39:00 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 889201FCC04EF700412364100065100003281E052121009A20000A2100000B20000D230B0E00000E2300000000, dni: 8892, endpoint: 01, cluster: FCC0, size: 78, attrId: 00f7, result: success, encoding: 41, value: 00000000230e00000e0b230d00200b0000210a00209a002121051e280300106500106423'
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:38:59 PM: debug Aqara Switch EU-Main Parse returned: [[name:lastCheckin, value:20:38:59 Thu 25 Nov (EET), descriptionText:Check-In, displayed:true, linkText:Aqara Switch EU-Main, isStateChange:false]]
998f9e58-249d-4f14-a39d-9e9f3a953ed4 8:38:59 PM: debug Aqara Switch EU-Main Parsing 'read attr - raw: 889201FCC00A0900002001, dni: 8892, endpoint: 01, cluster: FCC0, size: 10, attrId: 0009, result: success, encoding: 20, value: 01' 

The above is with the latest code for the child device.

One last thing, you finally did it for the child device also.
So now I can switch off two zigbee smart bulbs without cutting off the power.
The actions that show up and are available for a Routine(automation) are:

  • On or Off
  • On
  • Off
  • Pressed
  • Held
  • Double pressed

I went with pressed.

The only thing that remained is the status in the app, which is not synced, but it was previously with those the lines you told me to uncomment.

But the functionality for both physical switches are there. Good work.

If we can resolve the status also we can close this.

But I’m impressed with the functionality.

Can I donate to you somehow? Please let me know
I mean I was aware when I bought this thing that it will not work as intended, but I was sure that the community will help. It took sometime but in the end you did it

A big thanks to you

Ah got it! Not sure why I didn’t see those additional options previously in the automation page, just on, off and “on or off”.

Regarding expanding the functionality of the 3gang, I meant that I could theoretically wire up 3 devices to the 3 physical switches, but set all to decoupled=true. Then I can use those 3 physical buttons to control up to 9 other devices instead, using pressed, double pressed, and held. Of course, that would be mightily confusing to remember!

Would it be helpful to have a ‘presentation’ in the app which contained both the switch and the button option? At the moment you have either one or the other, depending on the lines at the top.

I’m a little confused about your reference to the status in the app not syncing. I assume you have the switch option in the presentation rather than the button. Are you referring to the main DH or the child, or both?

I changed something a few days ago, which increased the number of options which appear when you try to define an automation.

The way I use the 3 button options is to make them refer to different actions on a smart bulb. For example, pressed → 40% brightness, held → 100% brightness. That way is less likely to lead to confusion.

Actually 9 is an underestimate. In principle you could use all these options combined with pressing more than one button simultaneously. In addition I’m not sure whether these switches will also register triple and quadruple presses, etc. as distinct actions.

My short answer is Yes, I would like a presentation. The longer one is as follows:

Both Main and Child are displayed the same the way they are now. The icons are displayed as switches, and when I press the physical switches no feedback will be seen in the app, although the automations will work.

Previously, with the lines you told me to uncomment, only the Main Icon was displayed as a Button tile and when I pressed the physical switches a feedback could be seen, like Pressed or Waiting. Also a lot of options like:
On or Off
On
Off
Pressed
Held
Double pressed

were displayed when I entered the Main (displayed as a) button tile, and they were configurable, like in those zigbee buttons remote. I can attach a picture if that helps

By presentation you mean a toggle, in order for the user to choose one or another tile icon(switch or Button type), or do you think you can include both ?

AFAIK only one kind of device can be declared in a DTH, but you are the expert.

If it’s a toggle like DECOUPLED, WIRED, DEBUG, etc. we can try that for both Main and Child, but I think the user must re-open the app to refresh the type of the tile

I’m here for more testing, if you need me
Thank you

“Presentation” is what smartthings calls the set of icons which appear in the App. This also includes a list of items which can appear as conditions in automations and another list of actions which can be triggered by an automation or scene.

I’ll get back to you about the issue of feedback in the app.

I’ve posted a new ‘testcode’. This includes a few changes, which should improve the behaviour in decoupled mode. It also includes both switch and button in the so-called presentation.

Is this what you expected?

For information I put the switch into decoupled mode, then wrote an automation which toggled the switch on or off when the button was pressed. This should have made it look like non-decoupled mode, but didn’t. This new version behaves as expected in this case.