My brain is running in circles here. I’m creating Routines with Manually Run as the condition, so that I can use Alexa to run them. Example: Alexa, turn on Golf Channel (on cable box, controlled by Bravia’s IR blaster). The command currently works fine for changing the channel.
What I want is for the Routine to also turn on the Bravia TV. So that if the TV is off and I say “Alexa, turn on Golf Channel” it will
A) turn on Bravia
B) wait 5 seconds for Bravia to boot
C) change to the correct Input
D) send the Channel change via the IR blaster.
I’ve tried using a virtual contact sensor for step B, but with Manually Run routines that option (Delay for X time) vanishes. I’ve tried utilizing multiple Routines, with step A being sort of a subroutine, to no avail.
It seems a simple use case.
What am I missing here?
Put the delay on the smartthings side. Use two Alexa routines and two ST routines. Fire the first one to turn on the TV and turn on a virtual ST switch.
Have the second ST routine (not an Alexa routine) trigger when the virtual switch comes on, wait five seconds, then trigger the second Alexa routine. Have it do all the TV stuff you wanted to do plus turn the virtual ST switch off again.
I want the delay on the Smartthings side. Your solution crossed my mind, but it’s four routines for a single channel start/change.
Currently, there’s not even a single Alexa routine for this. Alexa sees the ST routine as a Scene, which it can handle with a simple voice command. I’m seeking simplicity here, to whatever degree possible.
Edit: I’ve tried every other way to get the ‘IF’ exposed to Alexa. None of them do it.
Bottom line is that the Routines function in ST is lacking. It’s something other than smart. It needs to either have a Wait function, or the ability to call other routines as subroutines, or both.
If we’re talking about the old “Scenes”, what are now called “manually run routines”, then I’d have to respectfully disagree. Throughout the home automation industry, scenes are handled pretty much the same way: they don’t have triggers, they don’t have delays, they don’t call other routines. They are just a snapshot in time of a set of device states. That’s their function, and it’s a useful one.
All of those other features would be handled in what are now called “automatically run routines”, which other platforms just call Routines. Those can use a scene. Calling another routine is trickier, it usually involves turning on the equivalent of a virtual switch, which then is the trigger for the next routine.
But in any case, manually run routines don’t have if/then structures or filters. Just that snapshot.
But this is forcing me to look at the Rules API. Am I understanding correctly that I could design a Rule where
vEdge Bravia switch in a (any) Routine changes from Off to On
wait 5 seconds before executing the change
Or would the routine ignore the rule?
EDIT;: I just saw your reply. I’m not saying there are no Alexa routines that wait. I’m using them in other use cases.
What I meant is that right now, for my channel change routines, I’ve had to create zero Alexa routines. Alexa sees a ST routine as a Scene, and requires the creation of no Alexa Routine in order to command it by voice.
So in the scenario you presented, there would be four Routines. Two on the ST side, and two on the Alexa side.
Right now there is only one routine, and that’s on the ST side. If a ‘Wait’ function existed in ST Routines, it could stay that way.