Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MiddKid

macrumors member
Original poster
Dec 10, 2012
37
8
OK, I can't figure this one out.

In my Home Theater: AppleTV 4K running through a receiver/projector.
Throughout my House: Various Sonos speakers

I've had this home theater set up for years with no issues. A few weeks ago I started to get an odd issue. I'd boot up and everything is normal. The sound the AppleTV makes to move from icon to icon plays through my receiver. Even hear app start-up sounds and such. As soon as I select and play a video (have had this happen on Netflix, Dis+, Prime, and even the Trailers app) the video plays and there is no audio. I go back to the menu and the icon movement sounds are there again. Play the video, no audio. Rebooting the AppleTV is the only way to fix it. After a reboot, all works fine.

Then, two nights ago, it happens again. At that very moment my wife texts me that our daughter said "Dad's stuff is coming out of my Sonos." OK, this is very interesting. This one daughter has a HomeKit Automation set up for her room. We say "<Kid's name> Bedtime" and it turns off her lights and turns on a goodnight Apple Music playlist on her Sonos One. I'm triggering this automation from my phone, not a HomePod.

So, for some reason, I run her goodnight automation from my phone, her music plays. I go down to the home theater, boot up, and all menu sounds on the AppleTV work fine. As soon as I play a video, that audio plays through her Sonos upstairs. This is so strange. Any thoughts? Thank you!
 
when you play music through an automation or scene it has to come from somewhere.

If you're playing it on a HomePod, it plays on that homepod

If you're playing on an airplay speaker (like sonos), it plays on an appleTV and airplays itself, I've seen other reports of the actual TV being powered on when it happens, although that might be a previous TVos version. (they were using the HDMI control of the TV, not sure what you're doing) I don't know of anyway to specify which appleTV is playing.

-- now for some possible solutions

1 - if her bedtime is constant, you could make an alarm in sonos that starts playing that list at the same time every night.

2 - there Is a program that makes a web remote for sonos. you can find it here

you do need a bit of computer skills and to be slightly comfortable in terminal.
you also need a computer running, Doesn't need much power, and can run in the background without you noticing. or could run on a raspberry pi if you wanted.

once it's installed, you can make preset files, that specify what and where to play, and what volumes.
you can also set the sleep timer, and change volumes and grouping
all of that is done though web calls
To play the preset you just need to open "<ip of comp>:5005/preset/daughtersbedtimemusic"

you can also use "<ip of comp>:5005/daughtersroom/sleep/300" to sleep in 300 seconds (5 minutes) or "daughtersroom/sleep/21:00:00" to sleep at 9pm

other things you can do
"daughtersroom/join/kitchen"
"kitchen/volume/+5" or "kitchen/volume/50"
you can also turn on/off night mode, speech enhancement, or your sub if you have one

and it can also talk
"daughtersroom/say/dinners ready"
"sayall/dinners ready"
these try to restart the music after they speak, it's about 90% successful. I have a countdown timer in the morning to leave, most of the time that one speaker will disconnect from the group music, say "5 minutes" and then rejoin the rest of the group.

you can do open these pages from any web browser, or using the shortcuts app, the only thing on the actual page says is "success" so you don't really need to see it.
Using shortcuts will allow you to trigger it via siri. you could also use the same shortcut to play her lighting scene.
 
when you play music through an automation or scene it has to come from somewhere.

If you're playing it on a HomePod, it plays on that homepod

If you're playing on an airplay speaker (like sonos), it plays on an appleTV and airplays itself, I've seen other reports of the actual TV being powered on when it happens, although that might be a previous TVos version. (they were using the HDMI control of the TV, not sure what you're doing) I don't know of anyway to specify which appleTV is playing.

-- now for some possible solutions

1 - if her bedtime is constant, you could make an alarm in sonos that starts playing that list at the same time every night.

2 - there Is a program that makes a web remote for sonos. you can find it here

you do need a bit of computer skills and to be slightly comfortable in terminal.
you also need a computer running, Doesn't need much power, and can run in the background without you noticing. or could run on a raspberry pi if you wanted.

once it's installed, you can make preset files, that specify what and where to play, and what volumes.
you can also set the sleep timer, and change volumes and grouping
all of that is done though web calls
To play the preset you just need to open "<ip of comp>:5005/preset/daughtersbedtimemusic"

you can also use "<ip of comp>:5005/daughtersroom/sleep/300" to sleep in 300 seconds (5 minutes) or "daughtersroom/sleep/21:00:00" to sleep at 9pm

other things you can do
"daughtersroom/join/kitchen"
"kitchen/volume/+5" or "kitchen/volume/50"
you can also turn on/off night mode, speech enhancement, or your sub if you have one

and it can also talk
"daughtersroom/say/dinners ready"
"sayall/dinners ready"
these try to restart the music after they speak, it's about 90% successful. I have a countdown timer in the morning to leave, most of the time that one speaker will disconnect from the group music, say "5 minutes" and then rejoin the rest of the group.

you can do open these pages from any web browser, or using the shortcuts app, the only thing on the actual page says is "success" so you don't really need to see it.
Using shortcuts will allow you to trigger it via siri. you could also use the same shortcut to play her lighting scene.
Thank you. This is an interesting theory. I just recently added the music playlist to the automation and assumed that since I was triggering it from my phone it would play from my phone. But now it does make sense that it may be using the AppleTV as a hub to play that. That also must mean that the AppleTV treats the system sounds different from content audio as the system sounds play in the theater and then the content audio streams to the Sonos.

I'll play around with the options you outlined. I'm also going to go back and look at some previous set-up I had. I have Lutron Lights and they integrate with Sonos. Previously I would run a Lutron scene that turned off the lights and played the music and I had no issues. It was when I switched over to the HomeKit Automation that it popped up. Hmmm...
 
tvOS 14 and Homepod OS 14 (?latest) seem to have fixed some audio issues, like having Homepods as default output for AppleTV 4K but broken other setups that were working well. It sounds (!) like you were one of the unlucky ones.
Separately to this, With Homekit Automations I have found that from time to time I have to delete an automation and recreate it to get it to work again. Ikea Homekit products have been my worst experience.
 
As an update, @waw74 was correct. When I trigger a HomeKit automation to play a playlist in my daughter's bedroom it plays the playlist from my Home Theater AppleTV.

I went back to my previous solution before the automation which was that my Lutron Caseta lights work with Sonos. So I had a scene set up in the Lutron app that it would turn off her lights and start the same playlist. When I trigger this scene the playlist does not play from the AppleTV...in fact, I'm not sure where it plays from. I'm assuming it's either playing from my phone or from the Lutron hub?

I'd prefer to use the HomeKit automation (can't use "Hey Siri" with the Lutron scene) so I went in and deleted it and re-programmed it. Same thing is still happening though...the audio playlist is playing from the Home Theater AppleTV. Frustrating. Not sure why a third party device (Lutron) plays it fine yet the native HomeKit automation creates this conflict. I can't figure out a way to force the playlist to play from a different device in the house (we have a second AppleTV, HomePod Mini, and any number of phones to play it from).
 
I'm not sure where it plays from. I'm assuming it's either playing from my phone or from the Lutron hub?
it's probably playing on the sonos speaker directly, the same as if you played from the sonos app.


if you're tech minded, there is a web remote for sonos, and it will let you control pretty much all aspects of your sonos system with simple web calls. It also allows you to create presets using text files, that will specify rooms, volumes, and what to play. and the you simply go to the server and open "/preset/bedtime", you can also include a sleep timer in a preset, or set it manually using "bedroom/sleep/600" (time is in seconds)
Once it's working, You can make a shortcut that will open the appropriate webpages, and play homekit scenes.
it will require an always on computer (even the base model raspberry pi will work)
 
it's probably playing on the sonos speaker directly, the same as if you played from the sonos app.


if you're tech minded, there is a web remote for sonos, and it will let you control pretty much all aspects of your sonos system with simple web calls. It also allows you to create presets using text files, that will specify rooms, volumes, and what to play. and the you simply go to the server and open "/preset/bedtime", you can also include a sleep timer in a preset, or set it manually using "bedroom/sleep/600" (time is in seconds)
Once it's working, You can make a shortcut that will open the appropriate webpages, and play homekit scenes.
it will require an always on computer (even the base model raspberry pi will work)
While I have a Raspberry Pi running HomeBridge already, there is a nuance to this issue that I'm trying to figure out. I just created two new Scenes in my home office to replicate the behavior. The two calls are being handled differently...

HomeKit Scene:
  • Created a scene to turn on the lights and play an AppleMusic playlist in HomeKit
  • Music starts playing
  • If I pull up my AirPlay list on my phone it says "Office + Theater." To our original conversation, this suggests that the HomeKit automation plays on the Theater AppleTV and AirPlays it to the Office.
  • This is confirmed if I launch the Sonos app and the Office speaker says "AirPlay."
Lutron Scene:
  • My Lutron lighting system is HomeKit and Sonos compatible and has it's own Scene building ability outside of HomeKit.
  • I replicated the scene above. Same light, same playlist.
  • Upon playing music if I pull up my AirPlay list it doesn't show anything as playing
  • If I pull up the Sonos app it shows the song playing natively in the Sonos app to that speaker. Totally isolated from the rest of my AirPlay devices.
Using more HomePod Mini's in the house we like the convenience of "Hey Siri" and I can't control my Lutron Scene with "Hey Siri." This is why I'd prefer to run the scene from HomeKit but this idea that every time I do it that it ties up my AppleTV is really annoying. The ideal solution here is for HomeKit to play the playlist on the Sonos natively like the Lutron does and not via AirPlay.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.