Multi endpoint DTHs, such as “zigbee multi switch”, uses parent & child system.
Let’s say, for 2 gang switch,
when parent dni(device network id) is A123,
child dni is named as A123:02
But in some situations, such as instability in zigbee network, parent device gets rejoined, and dni of the parent gets changed, let’s say to B456
However, in this situation, dni of the child device remains with old dni prefix, A123:02,
so this makes the problem of child device being offline.
Child dni should be changed to B456:02, when parent dni gets changed to B456.
I have heard from lots of people that are suffering from this problem in Korean Smartthings community, especially in “DAWOS DNS In-Wall Switch”, a Korean WWST product.
(Unlike in United States, where most wall switches are 1 gang switches, almost all wall switches in Korea are multi gang switches. cultural difference.)
So I suggest that it would be better to change child dni of the multi switch, when parent dni gets changed.
One solution would be adding following code to configure() function or updated() function in “zigbee-multi-switch.dth”
childDevices.each {
def childEndpoint = getChildEndpoint(it.deviceNetworkId)
if (it.deviceNetworkId != “$device.deviceNetworkId:$childEndpoint”) {
it.setDeviceNetworkId("$device.deviceNetworkId:$childEndpoint")
}
}
Thank you.