I have TTS notifications using Android phones and tablets around the house, connected to speakers, running the VeraAlerts app, but this isn’t a very stable solution.
I would like AirPlay connected speakers so I also can use them to stream music from my familys iOS devices.
In the discussion you referred to, it was thought that a possible route to a solution was to have Vera send commands to a Mac (running the AirFoil app) which in turn would transmit any sound you wanted to play to the AirPlay speakers on the network. That likely isn’t the elegant solution you would be hoping for.
I don’t have the knowledge to build apps myself but surely this should be interesting for a great deal of people? The Sonos app seems to be the best way for Vera to use spoken notifications through speakers, and many people have AirPlay compatible speakers instead of Sonos. It also seems that the AirPlay protocol isn’t as “secret” now as before. You can get no-name AirPlay speakers very cheap from e.g. Aliexpress and Ebay. I assumed this meant the protocol was more open now?
I have always had this goal of having our smart home communicating with my family through voice. It’s much more intuitive than having text notifications on your phone, especially for children.
If someone more tech savvy reads this, please make another attempt!
It seems they were able to make it work because HomeSeer is running on a PC that has iTunes and the Bonjour protocol already installed on it. Vera of course does not have these software resources available to enable such an application.
Although there are many more Airplay-compatible peripherals now available, the protocol is complicated and is licensed by Apple. The protocol has been reverse-engineered, but I suspect Vera isn’t up to the task of running the software required to implement on it.
Just because I’m interested… WHY can Vera handle Sonos protocol but not AirPlay? Is Sonos communication better compressed? Less encrypted?
Also, what would be the easiest way to get a existing speaker to be able to receive TTS from the Sonos app? Sonos Connect? If I buy one of Sonos cheaper speakers instead (like the Sonos Play 1 which seems to cost less then the Connect), would this be enough or do you need the Sonos Bridge as well?
It’s not about compression or encryption but more about lines of code and API stability.
Sonos devices speak UPnP, which is a relatively thin layer on top of HTTP. Sending HTTP is easy for Vera to do because there already exist Lua libraries for that (specifically, LuaSocket). So there aren’t many more lines of code to write to make a UPnP client.
AirPlay is built on top of multicast DNS aka Bonjour aka Zeroconf. No one has supplied a mDNS library that will run on the Vera backend. So that would need to be written first. Then maybe you could start work on an AirPlay implementation, which, as has already been mentioned, isn’t a published standard and so would require reverse-engineering to get bug-for-bug compatibility. And which Apple could break at any time with an update. Most developers avoid working in such terrain. It’s a support nightmare.
Also, what would be the easiest way to get a existing speaker to be able to receive TTS from the Sonos app? Sonos Connect? If I buy one of Sonos cheaper speakers instead (like the Sonos Play 1 which seems to cost less then the Connect), would this be enough or do you need the Sonos Bridge as well?
Anything that acts like a Sonos speaker will do. The Connect is, oddly, more expensive than the Play:1, even though it would seem to have less inside it. All Sonos speakers are now also bridges, and all now speak Wi-Fi, so you no longer need a bridge unless you can’t wire the Sonos to your network and don’t want to connect it over Wi-Fi.
Maybe a non-Sonos UPnP renderer can be gotten for less money but that’s outside my area of experience.
I use Jongo S3 and A2’s with Vera, the Upnp plug in detects them fine and I have also setup direct streams for radio ect. as scenes as does the Sonos. The one thing I like is every device has Bluetooth as well which I pair with my stationary devices. I did try a couple of direct Android to Dlna packages which seemed to work better as a permanent solution. I believe BubbleUpnp will also act as an airplay to Dlna bridge on the android platform. So I guess it can be done. Only down side I have found it the port changes erratically every few days but I have a scene which re-detects. I also use TTS all the time in nearly every scene.
Definitely not plug and play but possible.
Hope this helps.
Johnny.
Best Home Automation shopping experience. Shop at Ezlo!