Apple TV Integration - tvOS 15 Beta

I just pushed version 1.9.0, please install that and try again. Follow what @squirtbrnr wrote regarding ATV 3.

I love this screenshot man! I can’t wait for this AppleTV integration to come out of testing so I can create something similar!

@postlund heres an interesting one… one of my Ecobee SmartThermostat with Voice Control (which is basically a Ecobee 4 plus voice control) shows up as an AppleTV. That’s the name I gave to the thermostat and the “EB-“ makes sense if it’s an Ecobee. Looking on their website they do list Siri compatibility for this model thermostat which must be new because it didn’t have it when they released it a few years ago. However, only one of my two thermostats shows up and no amount of restarting HA will make the other one show up. Maybe I need to restart the thermostat. Second thermostat just needs a firmware update that’s being slowly pushed out by Ecobee.

Anyway, thought it was interesting your beta integration picked this up.

EDIT: I’m about a month too slow… New Software update from Ecobee enables Siri on the Smart Thermostat with Voice Control https://www.ecobee.com/en-us/newsroom/press-releases/ecobee-smartthermostat-with-voice-control-is-now-enabled-with-siri/

Thanks. Excited to have an Apple TV integration that enables this.

Any plans to add a source_list like the Sonos and Roku integrations? Does Apple expose this?

hello, i see this message in my log, but everything seems to be working fine.

Logger: homeassistant
Source: custom_components/apple_tv/config_flow.py:153 
Integration: Apple TV 
First occurred: 14:04:46 (3 occurrences) 
Last logged: 14:54:02

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/discovery_flow.py", line 74, in _async_process_pending_flows
    await gather_with_concurrency(
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 170, in gather_with_concurrency
    return await gather(
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 168, in sem_task
    return await task
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 197, in async_init
    flow, result = await task
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 224, in _async_init
    result = await self._async_handle_step(flow, flow.init_step, data, init_done)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 320, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/config/custom_components/apple_tv/config_flow.py", line 153, in async_step_zeroconf
    service_type = discovery_info[zeroconf.ATTR_TYPE][:-1]  # Remove leading .
AttributeError: module 'homeassistant.components.zeroconf' has no attribute 'ATTR_TYPE'

Does this mean that in HA 2021.11.0, AppleTV with tvOS 15 will work again?

Indeed.

Running TVOS 15.1 beta:

Hi! after setting Airplay to allow everyone if was finally able to add both appletvs and they are now working again. Thank you!!

1 Like

I had no issues adding my 2 ATVs (4K), but now I try to use them in scenes.
I made one script to put them to sleep and one to wake them up.
Calling these scripts directly in HA works quite reliable.
But using these scripts in a scene does not.
Waking up does not work or sometimes only on the second try.


wz_atv_wakeup:
  alias: "WZ ATV Wakeup"
  sequence:
    - service: remote.send_command
      target:
        entity_id: remote.wohnzimmer_apple_tv
      data:
        delay_secs: 1
        command:
          - top_menu
    - service: media_player.turn_on
      target:
          entity_id: media_player.wohnzimmer_apple_tv
            
wz_atv_standby:
  alias: "WZ ATV Standby"
  sequence:
    - service: remote.send_command
      target:
        entity_id: remote.wohnzimmer_apple_tv
      data:
        delay_secs: 1
        command:
          - home_hold
          - select
    - service: media_player.turn_off
      target:
          entity_id: media_player.wohnzimmer_apple_tv

Has anyone experience in getting this to work more reliable?

Have you tried sending the wakeup command?

alias: Turn on Apple TV
sequence:
  - service: remote.send_command
    data:
      command: wakeup
    target:
      entity_id:
        - remote.living_room_apple_tv

After updating the Apple TV integration today to 1.9.0 and the result was not so good:

Logger: homeassistant.config_entries
Source: config_entries.py:511
First occurred: 2:58:26 PM (1 occurrences)
Last logged: 2:58:26 PM

Migration handler not found for entry Apple TV for apple_tv

Apple TV is now unavailable.
Then, after deleting the integration and reloading again, it autodiscovers my ATV3 and upon connection, when I type the 4-digit code that appears on the Apple TV screen, this is what I get:

image

Any help is much appreciated.

reboot HA and reboot the AppleTV. I had the same issue and if the integration aborts during setup, you have to reboot to get it to re-discover and also complete setup. Also make sure you don’t have any other devices/entities for that AppleTV already registered. You might have to reboot HA twice in that case and delete any leftover entities in between.

Thank you for stepping in.
I did reboot HA several times and finally got one step further.
It now accepts the on screen PIN code, and in the next step instructs me to type a PIN code back into the Apple TV device.
image
But there is no dialog box on the Apple TV screen requesting a pin code! And if I just click SUBMIT I get this:
image

So, still stuck.

Read my post 14 replies ago for the DMAP protocol. Apple TV Integration - tvOS 15 Beta - #123 by squirtbrnr

Thank you so much @squirtbrnr - I would never have guessed that on my own.
I wonder what others are doing?
It would have been nice to see this kind of info also included in the integration doc.

@newmanzone
Thank you, I missed that one. I’ll test it. But it is not the cause of my problem. My script works, but enclosed in a scene it does not. I encountered that it seems to work, if I put a wait for 1 second before and after the call of my script.

@postlund Shouldn’t the power button in the Lovelace card bring the unit out of standby? It puts the unit to sleep when is on, but it does not tun it back on when it’s in standby mode. I can do that with remote.send_command wakeup through the remote entity…

I’m a bit confused as to the resolution of this issue. Is this the integration that is contained in plain HA Core? If so, will this work with HA Core out of the box again in the foreseeable future? any ETA?

(I’m asking cause I’d rather not install custom HACS repositories but I don’t have urgency to have this problem fixed either, just wondering.)

It’s because standby is not considered ass “off” by the frontend, thus not triggering a turn on action. I am aware of this problem and not entirely sure how to fix this properly yet. Power management is…no fun as it never gonna work properly. I will try to make some changes along the way to improve, but this is the current state. You can call the turn_on service explicitly as a work-around for now.

1 Like