Device components

Having 3 button switch, I have created

components:
  - id: main
    label: "Left"
    capabilities:
    - id: switch
      version: 1   
  - id: button 2
    label: "Middle"
    capabilities:
    - id: switch
      version: 1
  - button 3
    label: "Right"
    capabilities:
    - id: switch
      version: 1

but there is no toggle button on the tile.
and only the main component is controllable from Google Assistant

So I can command “turn off living room lamp” but not “turn off kitchen lights”

Based on other forum reports, only the main device being controllable from a voice assistant is a known problem with Edge drivers right now. :disappointed_relieved:

is there any plans roadmap to fix the issue.
because it’s rather major issue for me, I use the voice command on regular basis

1 Like

I tried to workaround this issue by using virtual switch (this is basically similar to child devices that are not available in edge, only in groovy)
However, there is an issue with condition view for multiswitch devices that does not allow unselecting the first switch. Please see [ST Edge] Issue with automation actions for multicomponent switches for details.

Not only child devices are not supported, but it is also not possible to simulate this behaviour with automation.
This is really unfortunate and frustrating

The problem with not being able to unselect the 1st gang of a multi gang device was fixed with the last android update.

1 Like

as far as I understand the virtual switch is a huge hack, as soon as it created as a separated “Lan” device and you have to link Zigbee and virtual device via (a good amount of) boilerplate code through the driver

@Paul_Oliver
Thank very much for pointing that out, I wasn’t aware of the update

@veonua

You’re right, it is a hack.

However you don’t need to write a code to achieve this. You can just install the virtual device from either available DTHs or edge drivers and connect your switch component to it with automation (or routine as it is called in the latest ST app).

In fact, currently there is no code you can write to achieve the same programmatically, as zigbee edge driver can not dynamically create devices and you can not access devices, created by different edge driver

2 Likes