Don't know if anyone saw this (I didn't see any posts on the topic) but if there is I apologize for the duplication. You can now broadcast to individual Google Home speakers/displays rather than issuing broadcasts to all of the speakers/displays tied to your system. So, you no longer are required to issue system wide announcement messages. For those who don't know, broadcasts vs regular TTS is the preferred method for issuing announcements to Google Home speakers/displays if you also use that display to listen/watch any media since you cannot resume previous playing media except by voice control or through the original app that was casting to the device. One of the big drawbacks to using the broadcast method was having no control over what speakers the message played on. This feature has been officially announced by Google and is in full distribution (at least to English speaking countries. US, Canada, and the UK for sure).
For anyone using Google Assistant Relay, you can already use this feature. Instead of issuing a regular broadcast request, you can issue a request with the speaker name (or room name if you only have one device per room). So, if you wanted to issue a broadcast of "the wash is done" but only to the device named "Bedroom speaker" in the Google Home app, you would issue the command: Broadcast to Bedroom speaker the wash is done.
Using @ogiewon's driver, you would have to issue a Device Notification command with the preface
"[CC]" and then the text listed above. The ability to select the speaker/room through the JSON content of the message will be part of the upcoming 4.0 release of AR which is in development.
Hmmm... This is interesting, even though I haven't run GAR in quite some time. I wonder if there is any way to get a list of Google Home devices associated with one's account automatically? If so, then it would be fairly easy to create a child device for each one, and use those devices in automations. When one of these devices receives a speak() command, it could prepend the "[CC] Broadcast to DeviceName " to the string sent to it...
Sort of like the way my Alexa TTS integration or Echo Speaks creates child devices for each Echo device...
Yes, there sure is. Look at GAR 3.4 or the new 4.0. It's used for the CATT functions but it's also going to be tied into the new 4.0. However, you cannot use speaker groups, only individual devices. And CATT will return a full list of all devices and groups. So, you would have to know to not select the groups or remove them.
Also, GAR can't handle getting HTTP requests for multiple speakers one right after another. There is no request buffer built into the system. It has to complete one request before you can issue the next one. Otherwise the 2nd will be dropped. So, I only use the individual speaker route if I only have to broadcast to 1 speaker/display. Otherwise, I broadcast to all still.
Also, just FYI, with CATT you can use device name or IP address. Either works correctly. With broadcasts, you have to use name.