Chromecast?

Sorry if I appeared to push. Didn't mean to.

No problem. Do you have it set up now though? I couldn't discern from the thread where you were in getting it working.

I have the inegration installed and it found all three of my Minis. I have then announcing over TTS for a doorbell function for two doors. "Someone at the front door" kinda thng. I can go to one of the Mini/device and put in the url for the audio I want to play and click on play track and it works. What I can't or haven't figured out yet is how to play the url on all three devices when a confition is met. In this case when a smoke detector in another area of the house goes off and we can't hear it, I want the all the minis to play the url. I have RM3 but I see no means to play a track just the TTS

1 Like

Have you taken a look at the app BigTalker2 ??
BigTalker2

1 Like

In RM 3.0, you could use a ‘Custom Action’ to call the Child Chromecast Device’s “playTrack()” command, passing in the text url of the mp3 file to be played.

Thanks I will try that. I installed BigTalker2 but I think I woul djust as soon use RM if I can.

Also, so that it plays on all 3 minis at the same time, I would create a speaker group of your 3 minis. Then re-discover in the Chromecast integration. You should see the speaker group show up as well. This will allow you to play to all 3 devices at the same time and have the sound synchronized.

2 Likes

That sounds like just what I was hoping for. Thanks!

Hi,

Chromecast devices are working great on my Hubitat and I would like to request a new feature. I live in a bilingual house (french and english) and I would like to tell the mini which language the text should be said in. Google itself can handle two languages and "ok google" will reply in french if asked a question in french or english if asked in english. However, the text sent from the Hubitat is always presumed to be English when sometimes french is required. Could the device driver be modified to have a "language" preference which can be changed on the fly please?

I have seen how to built the TTS in multiple languages at Text-to-Speech (TTS) - Home Assistant

service: tts.google_translate_say
entity_id: media_player.floor
data:
  message: 'Que la force soit avec toi.'
  language: 'fr'

I presume that the sting sent by hubitat is sent to TTS as "message:'${string}'" and I would like to add "language:'${language}' to the device driver with english as default unless stated otherwise

I've also made the same request, but was told by HE that is not currently on the radar. As a workaround you can use excellent Follow Me app by Bryan @bptworld. He had recently implemented switching voices/languages using priorities for TTS messages.

2 Likes

Let me give you a little breakdown of how the TTS announcements get made to the Google Home devices using the Chromecast Beta app. Hubitat requests a TTS translation of your text from the Amazon Poly service. This service provides an MP3 file to Hubitat via an HTTP link (not by downloading the file). HE then "casts" that link to the Google home device you have requested. Basically, it tells the GH device where the file is that it has to go retrieve and play itself. So, what would need to be changed is a way to change your global TTS settings one the fly.

image

While that would certainly be a wonderful feature to have, I can't see that being very easy to add, since it is not something that is being set in the device but in the hub settings itself. The function of generating the link for the TTS announcement is a core HE function. That function would have to be totally re-written to allow the device itself to declare what voice it wanted to use for that message. I can see that being very, VERY messy.

Also, how would you determine what announcements were in one language and what announcements were in the other?

Simple, use a prefix in the message and a top notch app, Follow Me. Piece of cake!

Of course, the message needs to be typed in the 'other' language but if it's your second language that shouldn't be a problem.

:grin:

The encoding for the message language is defined in the hub settings, not in the app.

And what I meant was, why would you be able to have some messages in one language and some in another. What, you want to dynamically determine based on who's home what language the announcement is in? I mean, yeah, sounds great, but I think that is a little far off from the capability we should expect from a $100 hub.

Point of clarification, if I may...

I believe Hubitat’s TTS implementation does actually download the mp3 file and cache it locally on the hub, the first time a phrase is requested. This way the hub does not have to make a new hop back to Amazon’s Poly service each and every time. @mike.maxwell could answer this question for certain...:thinking:

You're no fun! :wink:

You could figure it out if you knew the link that was sent to the chromecast. If it was a local link, then it's downloading. If it's an AWS link, then it's definitely not local. I wouldn't think that the hub would want to take the time to download it and then broadcast it to the hub...it just an extra step in the process. I believe that it caches the links to the files since they don't expire immediately.

Correct, all urls generated are local to the hub, if the requested file (which is a hash of the text and the voice id), doesnt exist in the cache, it is fetched from the poly service, added to the cache, then delivered...

1 Like

Are these cached files cleaned up after some time or when a size limit is reached? I know that the hub has 8gb if memory so it would take quite a lot of files to fill that up but just wondering. I'm sure I have quite a number of unused files from testing over the time I've had the hub.

I think we allocated a gig to that directory...

The google mini at only $50 already has this feature. If my daughter asks it a question in french it replies in french, If I ask in english it replies in english, google limits this functionality to only 2 languages but that is better than being stuck in an english only world. For my purpose I was not going to try and work out which language to use but just send each message twice (both languages). In Europe it is not uncommon to have at least 2 languages spoken in a household if not more and not every member of the home can speak all of them