I’ve had an Apple TV (ATV) integrated into my HA for many years. My setup is ATV → AV Processor → TV. I do not use ARC for two reasons. First, my TV doesn’t always pass through everything, and I have a very high end ATMOS processor that I want to use directly. Second, I have multiple sources and TV is not near my audio gear. Using the processor as the HDMI switcher means shorter wires.
Rather than a universal remote, I used HA to notice state changes and control my whole system with only the ATV remote. Simply watch for the ATV to change from Off → Idle or On. Then turn on the processor and the TV. When ATV goes to Off, turn off the TV and the processor. Unfortunately, Apple changed the behavior so the ATV never turns off. It stays Idle.
I then switched to using CEC to turn everything on since I now had no state change. For off, I had to add some automation to watch for the TV going off to shut off the processor. For some reason, the ATV would turn on the processor with CEC, but it would not turn it off. CEC is flaky, and this setup was nowhere near as stable as my previous method.
A couple of weeks back, Apple made another change. The ATV now declares “I am the Captain now!”, and it changes the audio settings on the TV whenever I turn it on. This results in the TV speakers being active along with the processor. They are not synced, so it sounds horrible. Groan…
Anyone know a way I can figure out that the power button on the ATV remote is pressed? I’d rather not get a universal remote. The family and I prefer the simple Apple Remote. My backup plan it to get a Shelly button just for power. Right now, the family doesn’t like having to break out their phones just to turn on the system.
Note, when I setup the ATV integration, I get two devices: media_player.basement_atv and remote.basement_atv. Remote is only on or off. Unfortunately, it now stays “On” all the time since the ATV just goes idle.
I’m very technical, so I’m not against writing some code if necessary.



