Is there any way to create child devices with Direct-connected Devices with STDK + DevWS?

I’m interested in using STDK+DevWS for Direct-connected Devices.
I successfully made it work with the 1-gang-switch example to my ESP8266 board using STDK.

I’m interested in making ESP8266 firmware for 2~3 gang wall switches, like Zemismart 3gang wifi switch with ESP WiFi chipset.

I want to create ESP wifi equivalant to “zigbee-multi-switch.dth” using STDK+DevWS, and flash it to the wall switch.

Just like flasing tasmota or ESPhome to Tuya switches, I want to flash a custom firmware made with STDK+DevWS.

But I can’t find a way to create a child device which is not just a component in DevWS.
There’s only way to add ‘component’ in DevWS.

I wan to make child switches with separate device cards, like addChildDevice(~~~, [isComponent : false]) in “zigbee-multi-switch.groovy”

Is there any way to create a child device with separate device card using STDK+DevWS?


Tagging @erickv @jody.albritton

Can you describe the use case for child devices? You will still be able to address each component individually.

1 Like


the use case is exacly same with “zigbee multi switch” compatible devices, such as EZEX, Orvibo, DawonDNS.

Instead of using multiple 1-gang switches, I can use one multi-gang switch.
When using multi-gang switch, It is not convinient to have 1 device card for multiple switches. Therefore, in “zigbee multi switch” dth, it is implemented as individual child switches, not just components.

If it was implemented in one device card, we cannot turn on/off the individual child switch from the device card view.

complete list of WWST zigbee multi switches can be found in Line30~50(fingerprint part) of the DTH.

Zemismart also makes zigbee 3.0 multi switch (exactly same appearance with the ESP wifi version, which I provided the URL above) but it’ not yet WWST certified.

Child devices are needed for zigbee and zwave devices because of the use of an “endpoint“ structure.

That’s not typically how a comparable multi button Wi-Fi switch is designed, even if it has a physically identical case.

I see why it is not implemented in STDK.

But as I described above, it is very inconvinient to turn on/off individual switches.
And in classic groovy environment, LAN connected devices could also have child devices.

Another case is Samsung multi air conditioners.

Samsung multi Air conditioners before 2018, there is one wifi module, but there are multiple child units which can be controlled with smartthings.

But because there is only one device card, it is very hard to turn on/off child devices, and put them into the automations.

These are the use cases for individual child devices of wifi connected devices.

If it could not be implemented in STDK, I should implement it with flashing tasmota and via LAN-connected device in groovy (tasmota provides HTTP control, which can be invoked by sendHubCommand() of groovy)