HE TTS only partially working

I am trying to make all announcements related to HSM go through our control panel tablet. I have announcements working when something opens through Notifications. I was working on doing some things in RM and it isn't announcing. I did confirm that the rule is functioning correctly by changing the speech device to an Echo.

Any errors in Logs? What device and driver?

My guess: the Hubitat speak() command was updated in firmware 2.2.6 to allow new, optional parameters, and it's possible your driver doesn't like them. The Notifications app might use the "old" format, while it's possible RM uses the new one (perhaps providing null instead of literally nothing for the new/optional ones if you aren't using them).

3 Likes

I'll have to go in and check later today. I'm on 2.3.0.108 using fully kiosk controller. I just thought of an idea of using run custom action I will try that later.

That will work; just use the "classic" one-parameter speak() command. But check the logs and maybe play around on the device page first to see if this is really the issue--that was just my best guess with nothing else to go on. :slight_smile:

Something in HE changed in 2.2.9 causing errors with Fully Browser Controller app

1 Like

OK, yep, that's the problem I guessed at above. This actually changed back in 2.2.6, though not all apps began immediately using the full gamut of parameters in the new command specification (RM waited a release or two, from what I recall).

If the developer is still around, I would ask if they are able to update the command as specified here:

https://docs.hubitat.com/index.php?title=Driver_Capability_List#SpeechSynthesis

That being said, the minor edit posted above would cover some cases, as long as you don't actually care for the volume to get set as part of the same command. You'd actually want to add a third optional parameter, too, to cover all possibilities, though the number of apps that use all three is probably even less common. If you're not really using the "other" parameters, it won't really matter what you do:

def speak(String text, Number volume=null, String voice=null)

But the best way, of course, is to actually implement it so it behaves as expected. :smiley:

@arnb thank you for the info! Am I to understand that this will "lock" the volume at 50 for everything regardless of what is entered in a rule?

@bertabcd1234 is correct, the speak routine should be coded with text, volume, voice parameters

Currently the FKBC speak routine ignores the volume (and voice) parameters.

The default volume is set on the device page using the setVolume command.

If I remember correctly, when using FKBC the "voice" is set on the target device.

1 Like

Now that I think about it, yes it is. There was a whole to do about getting the automation of volume figured out

1 Like