SmartThings Group Switch Status + Link to Dashboard

I am trying to figure out how to accomplish this as well, but I am on Smartthings. I would like to set up a “basement” group of lights, but I want the main tile to illuminate if a light is on, so I can visually see something must have been left on. Then I can click the tile and figure out which light is on. Thanks for your time and help!!

There used to be some really cool apps before SmartThings shut down Groovy that easily accomplied this (Trend Setter, Dim with Me, Color Coordinator, etc). I don’t think I’ve seen any single solution come out as the defacto recommended approach by the community for Edge.

From a quick search, here’s a few things I found:

  • Use Zigbee Light Multifunction Mc to create lighting groups for Zigbee devices.
  • Use the Smart Lighting SmartApp within SmartThings (Labs) for syncing on/off state from a switch if it’s available within your country
  • Use SharpTools Rules along with a virtual device or a true/false variable to sync light states
    • Here’s an old example by James that could be updated to use some of the new features like Multi Device Triggers, Multi Device Actions, and Multi Device conditions to greatly simplify the rule configuration.

Using SharpTools rules is probably the most flexible. And for your particular use-case, if you primarily just wanted to see if any of the lights within your group was on with the option to click it to see which lights are on, it would be a really good fit.

A rule like the following would trigger when any of the monitored lights change* and then if any of the lights are on, it would set your true/false variable to true… otherwise it would set it to false.

*The generic ‘change’ trigger is available in beta. You could also just use a trigger for when any of the lights change to on and another for when any of the lights change to off for the same effect if you prefer.

Then you could add that Variable to your dashboard and customize it with a light icon and change the background color when it’s “on” (true). And you could configure the click action on the tile to open another dashboard showing all the lights within that area.

Thanks for the response Josh. Could you get me access to the beta so I could give that a try? When I click on the link, it tells me I don’t have access. Thanks again for all your help!

1 Like

Hey Josh, I went ahead and tried to set up a rule with some triggers. I got everything set up and running however, when I toggle a light on, the background on my tile flashes yellow and then goes back to normal instead of staying yellow while the switch is on. Here is a screenshot of how I set up the triggers.

I also set up a virtual switch in Smartthings that seems be working correctly with a different set of triggers, but when I add that tile to my dashboard, I cannot set it to open a different dashboard. The tap action is either toggle on/off or display color picker.

Any additional thoughts you might have on getting this main tile on my dashboard to show if a light in a group of lights is on and then the tap action is to open a different dashboard to see which light is on?

Two things that look off here:

  • You would need the trigger to either be:
    • The new beta changes trigger (without a ‘on’ or ‘off’ specified)
    • Two separate trigger blocks for ‘changes and is on’ and ‘changes and is off’
  • The IF Condition would need to be set for any of the lights being on
    (I had a bug in my screenshot above where it should ‘all’, so I’ve fixed it to ‘any’)

That being said, if you already have a Virtual Switch which aggregates the status as you want, it would probably be easier to just map that switches status to a variable.

As with most rules, there’s multiple ways you could accomplish this. In this example, I’ve used the beta changes trigger (no target status specified) so the rule is triggered anytime my Virtual Aggregation Switch from SmartThings changes… then in Flow, I’ve used a single action for Set Variable along with an expression that sets the variable to true if the triggering value is ‘on’, otherwise it sets it to false.

Again, if you prefer a more verbose version you could do it like the following:

Keep in mind that this version is not only more clicks to setup, but is also less efficient than shorter version just above. When the flow runs, this version has to query SmartThings and ask for the status of the switch. Using a context variable for the event value shown in my prior example is much more efficient as it directly uses the event value that triggered the rule and it does not need to query SmartThings.