Use echo speaks
While I am going to continue to investigate alternatives I am happy to say my crude workaround of doing initialize()
plus playTrack(silent mp3)
every 4 minutes is working tolerably well. I may yet have a connectivity failure and Hub meltdown as @Jost has described but it has not happened yet.
I have never heard bloop before playback starts.
A couple of times, days apart, I heard a bloop for no reason. I didn't check the logs but that must mean that somehow, the message didn't get through and the speaker fell asleep. Maybe the keep-alive needs a timing adjustment or added delay.
I'll also refine the rules so the keep-alive action plays at minimal volume in case a bloop gets through somehow, and explicitly set volume in notifications.
This is ridiculous, but at least it's working.
I also updated the title of this thread to reflect where it went, not how it started.
Following exactly the documentation (App Configuration - Echo Speaks Documentation),,,
Everytime I try "Step 7" of the "Server Configuration" I just get a "404" Page,
As I already said:
"Alexa TTS by Hubitat is very ... cumbersome"
Months later, here's another update.
Over time I found the Google device to be less reliable than I would like, even with the keep-alive hack. Several times a week I would miss notifications, or the device might just fall silent until I rebooted the hub.
Fortunately a friend sent me an old disused Sonos speaker and as others said, it works very well for this purpose.
Had to scroll back to see if I already commented here. I might have posted this in another thread a while ago...
If you're have a machine where you can run Node Red, I've had good luck with the cast integration in Node Red.
I threw together a device driver that lets me send notification messages to Node Red via HTTP requests. It then sends the messages to the speakers. I don't use TTS much now because the Google lady's voice freaks the dog out, but when I was using it, it was reliable.
I have it set up to capture the volume of each speaker, send the TTS at the volume specified in the request, then reset the volume to its prior value afterwards. I never attempted to keep the connections alive to prevent the 'bloop' at the beginning.
I still use it daily to play a doorbell sound when someone approaches the front door. It can play any sound from any URL the speakers can reach. I have the doorbell mp3 stored on the Raspberry Pi that hosts Node Red.
The connection to each device is constantly monitored and I get notified if one drops. That doesn't happen often, but I've sometimes had to unplug and re-plug some of the speakers to reset them.
In my case, avoiding the bloop was the impetus for the whole project, haha.