I really love the Hello Home actions as they easily let me chain together a bunch of actions into one. However, what I would really love to be able to do is call apps from such as the “Sonos mood control app”. So when I run a hello home action I can also play a song on the sonos.
You cannot “call apps” directly because apps don’t have public entry points. What you can do is to use “On/Off Button Tile” device to send events to another app. It’s kind of limited in what you can accomplish, but this is the only way I know of.
Alternatively, write your app so that it is triggered by the mode change events done by the Hello Home Actions. You can then easily extend the Actions taken by Hello Home.
I use this to set my Ecobee thermostats to a target Climate instead of the specific temperatures provided for in the Hello Home actions. This way, I control the actual temperature settings in one place (in the Thermostat), while allowing ST to change modes based on my presence instead of just the pre-set times that the thermostat uses. E.g., if I leave home before the pre-set Away time on the Ecobees, the app sets the Climate to “Away” when location.mode changes to “Away”.
@storageanarchy, not all actions change the mode. E.g., in my house, Good Night makes sure that the appropriate lights are on/off, the doors are locked, thermostat set, etc. But the house is typically already in Night mode which triggers at sunset. Executing Apps from Actions would make a lot of use cases possible without writing new code. And it’s also intuitive, so I don’t think it’ll introduce any additional complexity. If anything, it might reduce it.
Yep, there are lots of ways to use the Hello Home modes.
I would respectfully suggest that where you to differentiate “Night” from “Sleep” by adding the “Sleep” mode, you could readily implement what you are asking for. The location.mode really exists for the sole purpose that other SmartApps can figure out what state the house is supposed to be in and behave accordingly. As they are the ONLY globally visible variable in ST programming, they are pretty much the only way to coordinate things across the board.
Or not, your choice…just suggesting a means to implement what you ask for without waiting for ST.
Just curious, how will your approach for “sundown = Night mode” work during the deep dark winter, where the sun sets before you even leave work (for some part of North America anyway)?
Mode is not state, it’s too limited for that. True state will require multiple variables. Mode is sort of an aggregate of various states. But not a very convenient one. To make it a true aggregate, you’d have to have a limitless combination of things like away-day, away-night, etc. I’ve seen people do it and I don’t wanna go down that path.
Therefore, I prefer to have only a few modes that are easy to reason about - Night is when it’s dark so the lights need to turn on, etc., Away is when everybody’s gone, Home is when it’s light out and at least one person is home. The rest of the transitions are not based on mode and are implemented by Actions and Apps. They take the actual (albeit implied) state into account (time, sensor readings, etc.)
But you’re right, there’s more than one way to skin the cat. That’s just what I prefer.
Is the only way to do this with a virtual button still? I’d like to have a Hello Home phrase turn my sonos on.
I’d be interested in making a custom smart app, but I don’t know if there is an event that I can listen to when a Hello Home phrase is called. Anybody know of an app that does something similar?
One solution could be to change mode with the Hello Home phrase you are executing, as the mode change can trigger various actions on your Sonos…
I also build a smartapp that can trigger your Sonos and many different other things based on the state of a specific switch. Let me know if you would like me to modify it so when you turn ON or OFF a switch you can start playing a song (only for specific modes and only during certain time etc…).
I am up for the challenge let me know we could make things work for you my friend!