Chromecast Feature Enhacements

Is a Finisher Rule something special? Or just a regular rule that your primary rule executes after a Chromecast TTS? Or something else altogether?

Somebody smart pointed out of you select actuators the cast devices will show up.
I will make a video tonight because it's a little hard to explain.

2 Likes

It's an action with a delay that executes my custom command to lower the volume and stop after 1 min.
This is triggered by the initial TTS rule.

+1 to see what @keithcroshaw has created. :+1:t2:

Here's a sneak peak. I won't be able to record the process and edit in some text. Really thinking about making a YouTube channel. Wish I had supplies to duplicate everything in SmartThings for people interested in that.

Edit: just realized my kids funny reminder is in there. Oh well not worth blurring out. It's pretty funny when they react to it like😮

@halfrican.ak and @njanda
Here's an example of me creating a Custom Command using Rule Machine.
Thanks to @destructure00 for the tip about selecting the device type as Actuator.

So I have a Rule run a custom command to set the volume to 80 (video shows 90)
then another to speak the message
I link to my TTS Finisher Actions which set the volume back to 60 and issues Stop() to get the silly remote icon off of my Home Hub.

Enjoy let me know if I'm doing something wrong.
I'd love to make some demo videos and things like that.

2 Likes

Hey nice one Keith. Thanks.

It looks like I'm going to have to construct commands to 'refresh' my Google Home Mini before I get her to 'Speak' anything. :frowning:
I'm also wondering if I've created the problem by turning off her mic and anything else 'assistant-like'.

1 Like

Interesting thought. I saw the behavior for the first time tonight.
It's probably a bug that will be fixed soon.
I might have hit the refresh button before I reported that my problems fixed themselves, can't quite remember.
I'll have to see what happens when TTS should naturally occur tomorrow.

Thanks for the process video. Sorry the very dumb question, how I use the created command ?

I'm trying to use them to wake up to my Google Home Mini (sending 'refresh'), then set volume, then send a 'speak' command.
It's all trial and error, but something like this...

1 Like

Nice trick! Thanks

Most of my messages are through HSM or Message Central, not sure if I can use the command there, probably not.

@vjv it's thx to @keithcroshaw for the tip, and so far it appears to have overcome my Chromecast issue. Yay.

2 Likes

You could trigger yet another virtual switch.
They even have a toggle for self resetting after X seconds.
That virtual switch would trigger the rules to speak, which trigger actions to stop after however many seconds you think it takes to say your phrase. I do a minute because I can look at the ugly remote icon for a min if I have to.
If I get that annoyed by it I say "Hey Google, stop."

Have you had a message cut off yet by the Stop command? If your message is long enough, it won't have time to complete until the stop command is issued to the device. HE doesn't know how long the message is to play, so it won't actually know when it's done. I rote a "rule" using WATO, when the device status goes back to Idle, that's when the stop command is issued. That way nothing is ever cut off. Seems to be working like a charm so far.
As far as the refresh, you shouldn't need to do that except to grab a level change. I have a rule running that refreshes all of my speakers every 15 mins or so. Otherwise their volume levels won't be accurately reflected in HE. But doing one in a custom command is kind of pointless, it happens after the speak command.

Also, your setVolume custom command is going to be send AFTER the speak command. Check out the order of operations. Custom commands are last. So the only way to get this to work is to make the speak also a custom, which you really don't have to, or to have it delayed by a few seconds by putting it in a separate action.

2 Likes

Stacking timed commands is tough to do in RM (can you tell I'm used to webCoRE?). At least, for me.

AFAIK, the only way is to cascade rules, with each rule having a delay or other event (like @Ryan780 uses WATO).

For instance, to raise the volume to 100, speak a message and lower the volume to 50, then I have to use 3 rules (maybe 2 if the last 2 commands can be in one rule and execute correctly). Any tips on how to do this in one?

1 Like

Maybe using delay for the stop in the same rule?

If you know the massage is long then add 10 secs to the stop?

You can't add individual delays to custom commands. You would have to invoke a separate action in the rule that had a delay of it's own. Of you could just use the other solution that I've posted about that doesn't rely on a rule at all. :slight_smile:

I think it's possible, the rule

And add a second rule with this

Is not what they are looking for?

You don't need a second rule, just an action you can invoke. Plus, you are running this based on a different rule's truth? Why are you making it more complicated? Do you know to just run an action?

Here's the rule:

31-14-30-57

And here's the action.
31-14-29-50

There's no need for a 2nd rule. In fact, I'm accomplishing the exact same things with ZERO rules.

Thanks, actually you are helping me! :wink: