Ok got it for the settings. I didn’t know that. I have the backlights back. Thanks.
I should have added those instructions to the readme in the repo.
I will try to do it next week.
Sorry for confusion.
Are you able to control each channel separately?
So there’s no way to control each gang separately?
Gang1 - turn on/off light 1
Gang2 - turn on/off light 2
Gang3 - turn on/off light 3
This is by design? Or some limitation?
So for a 3-gang switch I can only turn on/off 2 lights?
For 3 gang switch you should set 3 gangs in the settings.
Then you will have 3 child devices for each gang and an additional parent device that controls all gangs.
You should be able to control each gang with its child device. Any combination should be supported.
Oh I get it now.
The device handler creates a Parent - but it’s just sort of a virtual switch in the ST App that can turn on/off all the Child devices - 3 channels in the case of a 3 gang.
I was confused by that ‘virtual switch’. I thought it was supposed to control one of the gangs (as this was the case for another device handler for another type of switch - where the parent was controlling 1 gang, and the 2 children were controlling the other 2 gangs).
Then there’s an additional 3 switches now in the app that controls the 3 gangs / channels.
It’s all working now, thank you so much!
Actually, the parent do all the work, communicating with the physical device and updating the state of the children.
Children are more like virtual switches, they just notify the parent about button pressed.
Parent behaves as a light group, controlling all children with a single push. It is very useful for devices that support single command to all gangs, since it reduces zigbee traffic and latency.
There is a request to implement it as you say, i.e parent controls the first gang, first child-the second gang, etc. I will be looking at this change, but can’t promise anything. It is highly challenging to make changes without the device to test against.
Thanks for the additional info.
And thanks for the great work! Really appreciated.
I don’t think there’s a need for the other implementation (parent controls 1st gang, etc).
This device handler works great as it is!
Fibaro is Z-wave and using different approach. for Zigbee - No wire → act like sensor → sleepy device and NOT Router
I have problem after one Day of pairing the switch I have try many times the app stop shows if gang 1 and 2 is on or off or not working ust loading… Gang 3 and parent work perfect, Propably is problem because work as sleepy device?
@b16b I really doubt that 2 of 3 gangs stopped working because you don’t have neutral wire.
My guess is that your switch rejoined, but 2 of 3 children failed to update the new DNI.
I think I have the code to update all children, but it wasn’t tested as I don’t have the physical device.
Could you please provide logs for the following scenario:
- Start live logging
- Toggle (either on or off, depending on the current state) child 1
- Toggle child 2
- Toggle child 3
- Toggle parent
- Toggle child that is working
- Toggle child that is not working
- Toggle child that is working
Please wait at least 4 sec between each step
Turn on Parrent
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:24:37 μ.μ.: debug handleSwitchEvent(): EP=3 value=1 children=[1, 1, 1, 0, 0, 0] main=3
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:24:37 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00690301000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00690301000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 69, 03, 01, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:24:37 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:24:31 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
Turn off parent
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:42 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:39 μ.μ.: debug handleSwitchEvent(): EP=2 value=0 children=[0, 0, 1, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:39 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 006B0201000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 006B0201000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 6B, 02, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:39 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug handleSwitchEvent(): EP=1 value=0 children=[0, 1, 1, 0, 0, 0] main=2
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 006A0101000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 006A0101000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 6A, 01, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug sendCommandsToDevice(): delay=500 cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {006a0101000100}, delay 2000, st cmd 0x041D 0x01 0xEF00 0x00 {006b0201000100}, delay 2000, st cmd 0x041D 0x01 0xEF00 0x00 {006c0301000100}, delay 2000] actions=[st cmd 0x041D 0x01 0xEF00 0x00 {006a0101000100}, delay 2000, st cmd 0x041D 0x01 0xEF00 0x00 {006b0201000100}, delay 2000, st cmd 0x041D 0x01 0xEF00 0x00 {006c0301000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug createTuyaCommand(): dp=03 type=01 len=0001 value=00 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {006c0301000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug createTuyaCommand(): dp=02 type=01 len=0001 value=00 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {006b0201000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug createTuyaCommand(): dp=01 type=01 len=0001 value=00 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {006a0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug on()…
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:25:36 μ.μ.: debug off()…
Child 3 (no wires) “turn on” the switch turn on but still off on the app
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:29:37 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:29:36 μ.μ.: debug sendCommandsToDevice(): delay=300 cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {006d0301000101}, delay 2000] actions=[st cmd 0x041D 0x01 0xEF00 0x00 {006d0301000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:29:36 μ.μ.: debug childOnOff(): endPoint=3 turnOn=true cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {006d0301000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:29:36 μ.μ.: debug createTuyaCommand(): dp=03 type=01 len=0001 value=01 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {006d0301000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:29:36 μ.μ.: debug child on: [label:Moes switch-SW3, deviceNetworkId:4BF6-SW3] parent=[name:Moes multi gang switch]
gang 3 try to turn off 1st try (app shows off - reality is on)
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: debug handleSwitchEvent(): EP=3 value=1 children=[0, 0, 1, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00780301000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00780301000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 78, 03, 01, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: debug sendCommandsToDevice(): delay=300 cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {00780301000101}, delay 2000] actions=[st cmd 0x041D 0x01 0xEF00 0x00 {00780301000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: debug childOnOff(): endPoint=3 turnOn=true cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {00780301000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: debug createTuyaCommand(): dp=03 type=01 len=0001 value=01 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {00780301000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:34:00 μ.μ.: debug child on: [label:Moes switch-SW3, deviceNetworkId:4BF6-SW3] parent=[name:Moes multi gang switch]
2nd try to off the 3rd gang
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:35:43 μ.μ.: debug handleSwitchEvent(): EP=3 value=1 children=[0, 0, 1, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:35:43 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00790301000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00790301000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 79, 03, 01, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:35:43 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:35:43 μ.μ.: debug child on: [label:Moes switch-SW3, deviceNetworkId:4BF6-SW3] parent=[name:Moes multi gang switch]
turn off the 3rd gang by wall
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:33 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0F04000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0F04000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7D, 0F, 04, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0E04000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0E04000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7C, 0E, 04, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: debug handleSwitchEvent(): EP=3 value=0 children=[0, 0, 0, 0, 0, 0] main=0
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007B0301000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007B0301000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7B, 03, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: debug handleSwitchEvent(): EP=2 value=0 children=[0, 0, 1, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007A0201000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007A0201000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7A, 02, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: debug handleSwitchEvent(): EP=1 value=0 children=[0, 0, 1, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:36:32 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00790101000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00790101000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 79, 01, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
turn on gang2 with wire (on app stays off - reality turn on)
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: debug handleSwitchEvent(): EP=2 value=1 children=[0, 1, 0, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007A0201000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007A0201000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7A, 02, 01, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: debug sendCommandsToDevice(): delay=300 cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {007a0201000101}, delay 2000] actions=[st cmd 0x041D 0x01 0xEF00 0x00 {007a0201000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: debug childOnOff(): endPoint=2 turnOn=true cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {007a0201000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: debug createTuyaCommand(): dp=02 type=01 len=0001 value=01 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {007a0201000101}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:37:06 μ.μ.: debug child on: [label:Moes switch-SW2, deviceNetworkId:4BF6-SW2] parent=[name:Moes multi gang switch]
turn off gang 2 (in app is off anyway-reallity stays on does not turn off)
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:38:25 μ.μ.: debug handleSwitchEvent(): EP=2 value=1 children=[0, 1, 0, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:38:25 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007B0201000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007B0201000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7B, 02, 01, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:38:24 μ.μ.: debug child on: [label:Moes switch-SW2, deviceNetworkId:4BF6-SW2] parent=[name:Moes multi gang switch]
turn off gang 2 by the wall
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007F0F04000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007F0F04000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7F, 0F, 04, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007E0E04000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007E0E04000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7E, 0E, 04, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: debug handleSwitchEvent(): EP=3 value=0 children=[0, 0, 0, 0, 0, 0] main=0
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0301000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0301000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7D, 03, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: debug handleSwitchEvent(): EP=2 value=0 children=[0, 0, 0, 0, 0, 0] main=0
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0201000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0201000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7C, 02, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: debug handleSwitchEvent(): EP=1 value=0 children=[0, 1, 0, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:39:58 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007B0101000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007B0101000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7B, 01, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
try to turn on gang 1 with wire app have stock to on - reality is off (after tap stays on on app -reality stays off)
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:06 μ.μ.: debug handleSwitchEvent(): EP=1 value=0 children=[0, 0, 0, 0, 0, 0] main=0
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:06 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0101000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0101000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7C, 01, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: debug handleSwitchEvent(): EP=1 value=0 children=[0, 0, 0, 0, 0, 0] main=0
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0101000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0101000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7C, 01, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: debug sendCommandsToDevice(): delay=300 cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {007c0101000100}, delay 2000] actions=[st cmd 0x041D 0x01 0xEF00 0x00 {007c0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: debug childOnOff(): endPoint=1 turnOn=false cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {007c0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: debug createTuyaCommand(): dp=01 type=01 len=0001 value=00 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {007c0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:41:04 μ.μ.: debug child off: [label:Moes switch-SW1, deviceNetworkId:4BF6-SW1] parent=[name:Moes multi gang switch]
turn on gang 1 by the wall (app have stack to on)
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00800F04000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 00800F04000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 80, 0F, 04, 00, 01, 01], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007F0E04000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007F0E04000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7F, 0E, 04, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: debug handleSwitchEvent(): EP=3 value=0 children=[1, 0, 0, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007E0301000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007E0301000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7E, 03, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: debug handleSwitchEvent(): EP=2 value=0 children=[1, 0, 0, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0201000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0201000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7D, 02, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: debug handleSwitchEvent(): EP=1 value=1 children=[1, 0, 0, 0, 0, 0] main=1
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:42:40 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0101000101’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007C0101000101, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7C, 01, 01, 00, 01, 01], clusterInt:61184, commandInt:1]
turn off gang 1 from the app and turned off in reality but app still shows on
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: debug handleSwitchEvent(): EP=1 value=0 children=[0, 0, 0, 0, 0, 0] main=0
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0101000100’ descMap is [raw:0104 EF00 01 01 0000 00 041D 01 00 0000 01 01 007D0101000100, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 7D, 01, 01, 00, 01, 00], clusterInt:61184, commandInt:1]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: info parse(): description is ‘catchall: 0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000’ descMap is [raw:0104 EF00 01 01 0000 00 041D 00 00 0000 0B 01 0000, profileId:0104, clusterId:EF00, sourceEndpoint:01, destinationEndpoint:01, options:0000, messageType:00, dni:041D, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[00, 00], clusterInt:61184, commandInt:11]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: debug sendCommandsToDevice(): delay=300 cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {007d0101000100}, delay 2000] actions=[st cmd 0x041D 0x01 0xEF00 0x00 {007d0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: debug childOnOff(): endPoint=1 turnOn=false cmds=[st cmd 0x041D 0x01 0xEF00 0x00 {007d0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: debug createTuyaCommand(): dp=01 type=01 len=0001 value=00 → cmd=[st cmd 0x041D 0x01 0xEF00 0x00 {007d0101000100}, delay 2000]
61d8e362-b1df-46a8-ac6b-4c7bb9a963ef 3:43:33 μ.μ.: debug child off: [label:Moes switch-SW1, deviceNetworkId:4BF6-SW1] parent=[name:Moes multi gang switch]
i have set the backlight to on this mean when the light is on the backlight is on on this gang
normally is opposite
PS. CHANGE THE NAME “Moes multi gang switch” to “Moes switch” BECAUSE IS TOO LONG AND DOES NOT SHOWING IN THE APP
OK, as expected, I see the issue with children DNIs not being updated. The strange thing is that it seems there is an issue with all 3 children.
As a temporary workaround, I suggest to configure your switch to 1 gang and then configure it back to 3. This should recreate children with the correct network address
so the problem comes because no natural and not cause the cide is that correct?
@b16b I’m not sure what is the root cause. It could be zigbee network issue. However, sleepy devices are known to loose connection more frequently.
Regardless, the code makes an attempt to detect and fix this situation. Apparently, it is not sufficient and without the logs that cover the time frame when the device rejoins it is hard to tell why.
I need to think how this can be improved. Theoretically, it is possible to scan each child device on each zigbee message. However, this approach would introduce a significant overhead that seems unjustified.
I will be looking for a more balanced solution that would minimize the timeframe in which devices loose control without imposing too much overhead.
Cheers,
Yakov
P.S Did the workaround help?
I was thinking, perhaps just refreshing from settings should be sufficient
No still after re-add the gangs with number 3 still have stuck this time on because add it in for first time also if you have automation with 3rd gang the disappeard
I have create an automation with 1st gang every sunset and sunrise
That is only for 1st gang this working normally turn on and turn off at sunrise
So working as automation and as I told you parent turn all on and all off so no problem about connect Jon the app does stuck only
@b16b
Your Yagusmart switch has 006 cluster support.
It should be working with generic zigbee switch DHT.
If it works with standard zigbee switch driver, it can probably work locally on the hub and not in the cloud.
If it doesn’t work with my DHT I would guess Tuya specific cluster is used for other things in this switch.
you are right as always i add my device to woobooung handler (forYagusmart switch) and work coorect thank you again
what about moes switch any idea… because as i told you the problem is not update the apperance on the app
because i have autmatition that turn on and off the gangs that have problems and also parrent turn on turn off all gangs
@b16b I think the problem you see is caused by a combination of multiple factors.
If setting the number of gangs to 1 and then back to 3 did not help, that is probably because your switch is used in automation and DHT wasn’t able to remove child devices and recreate them.
Try to remove the parent and all its children and rejoin again
i remove it all re-added again everything work again i will reply if broke again