Apple tv remote implementation

Of course not, someone needs to confuse the Russians. What do you think about the remote layout ?

Hello @ronwjr1973, have you ever made it work ? I have the same problem.

I’m pretty sure HDMI-CEC is enabled, since I can turn on the TV and set its volume with the real Apple TV remote but it doesn’t work when I call the remote.send_command service with volume_up :thinking:

Is this the correct way to do it ?

service: remote.send_command
  data_template:
    entity_id: remote.my_remote
    command: volume_up

Thanks in advance

service: remote.send_command
  data_template:
    entity_id: remote.my_remote
    command: 
    - volume_up

Thanks for the answer but still no luck :confused: I really don’t understand because I manage to turn on the TV sending the home command but the volume one doesn’t work !

Incredibly basic question/problem that I’m almost embarrassed to post. I’m trying to install the integration. When I put in the IP address I get this message: This device has already been configured. Please pick another device.

Any suggestions?

I just went through the same issue. This thread has the solution:
https://community.home-assistant.io/t/apple-tv-device-is-already-configured-solved/258446/6

Hadn’t had a chance to try out your solution until just today. Worked great. Thanks!!

OK completely lost with this and am really frustrated. I’m just about to give up with HA completely as it’s so frustrating to get anything to work! All I want is to add a fully functional ATV remote to the dashboard. I’ve tried adding the code from the posters above but all I get is errors saying no card type configured.

Yes I’m totally clueless obviously but can someone help and point out what’s wrong… please before I give up!

  - url: /hacsfiles/button-card/button-card.js
    type: module
views:
  - path: default_view
    title: Home
    cards:
      - type: media-control
        entity: media_player.bed_2_bed_4
      - type: media-control
        entity: media_player.hot_tub
      - type: entities
        entities:
          - sensor.gshp_electricity_consumed
          - switch.fridge_freezer
          - switch.rain_harvesting_pump
          - switch.dishwasher
          - switch.bibo_water_dispenser
          - switch.boiling_tap
          - switch.sbr_panel
        title: Kitchen
      - type: media-control
        entity: media_player.kitchen_tv
      - type: media-control
        entity: media_player.kitchen
      - type: media-control
        entity: media_player.lounge
      - type: media-control
        entity: media_player.samsung_ue43j5500
      - type: entities
        entities:
          - sensor.air_conditioner_electricity_consumed
          - switch.sensowash_wc
          - switch.air_conditioner
        title: M/Bed & Ensuite
      - type: media-control
        entity: media_player.m_bed_ensuite
      - type: media-control
        entity: media_player.master_bed_tv
      - type: entities
        entities:
          - remote.apple_tv4
          - switch.humax_pvr
          - switch.mvhr
        title: Plant Room
      - type: media-control
        entity: media_player.apple_tv4
      - type: entities
        entities:
          - sensor.hp_color_laserjet_mfp_m477fdn_black_cartridge_hp_cf410a
          - sensor.hp_color_laserjet_mfp_m477fdn_cyan_cartridge_hp_cf411a
          - sensor.hp_color_laserjet_mfp_m477fdn_magenta_cartridge_hp_cf413a
          - sensor.hp_color_laserjet_mfp_m477fdn_yellow_cartridge_hp_cf412a
          - sensor.hp_color_laserjet_mfp_m477fdn
        title: Study
      - type: media-control
        entity: media_player.workshop
      - type: entities
        entities:
          - binary_sensor.rpi_power_status
          - binary_sensor.updater
        title: Binary Sensor
      - type: media-control
        entity: media_player.kitchen_tv_2
      - type: media-control
        entity: media_player.workshop_tv
      - type: entities
        entities:
          - person.andy_hanson
        title: Person
      - type: entities
        entities:
          - sensor.air_conditioner_electricity_consumed_interval
          - sensor.air_conditioner_electricity_produced
          - sensor.air_conditioner_electricity_produced_interval
          - sensor.bibo_water_dispenser_electricity_consumed
          - sensor.bibo_water_dispenser_electricity_consumed_interval
          - sensor.bibo_water_dispenser_electricity_produced
          - sensor.bibo_water_dispenser_electricity_produced_interval
          - sensor.boiling_tap_electricity_consumed
          - sensor.boiling_tap_electricity_consumed_interval
          - sensor.boiling_tap_electricity_produced
          - sensor.boiling_tap_electricity_produced_interval
          - sensor.dishwasher_electricity_consumed
          - sensor.dishwasher_electricity_consumed_interval
          - sensor.dishwasher_electricity_produced
          - sensor.dishwasher_electricity_produced_interval
          - sensor.fridge_freezer_electricity_consumed
          - sensor.fridge_freezer_electricity_consumed_interval
          - sensor.fridge_freezer_electricity_produced
          - sensor.fridge_freezer_electricity_produced_interval
          - sensor.gshp_electricity_consumed_interval
          - sensor.humax_pvr_electricity_consumed
          - sensor.humax_pvr_electricity_consumed_interval
          - sensor.humax_pvr_electricity_produced
          - sensor.humax_pvr_electricity_produced_interval
          - sensor.mvhr_electricity_consumed
          - sensor.mvhr_electricity_consumed_interval
          - sensor.mvhr_electricity_produced
          - sensor.mvhr_electricity_produced_interval
          - sensor.netatmo_hollybank_indoor_co2
          - sensor.netatmo_hollybank_indoor_humidity
          - sensor.netatmo_hollybank_indoor_noise
          - sensor.netatmo_hollybank_indoor_pressure
          - sensor.netatmo_hollybank_indoor_temperature
          - sensor.netatmo_hollybank_kitchen_co2
          - sensor.netatmo_hollybank_kitchen_humidity
          - sensor.netatmo_hollybank_kitchen_apple_tv4_co2
          - sensor.netatmo_hollybank_kitchen_apple_tv4_humidity
          - sensor.netatmo_hollybank_kitchen_apple_tv4_temperature
          - sensor.netatmo_hollybank_kitchen_noise
          - sensor.netatmo_hollybank_kitchen_outdoor_humidity
          - sensor.netatmo_hollybank_kitchen_outdoor_temperature
          - sensor.netatmo_hollybank_kitchen_pressure
          - sensor.netatmo_hollybank_kitchen_rain_gauge_rain
          - sensor.netatmo_hollybank_kitchen_rain_gauge_rain_today
          - sensor.netatmo_hollybank_kitchen_temperature
          - sensor.rain_harvesting_pump_electricity_consumed
          - sensor.rain_harvesting_pump_electricity_consumed_interval
          - sensor.rain_harvesting_pump_electricity_produced
          - sensor.rain_harvesting_pump_electricity_produced_interval
          - sensor.sbr_panel_electricity_consumed
          - sensor.sbr_panel_electricity_consumed_interval
          - sensor.sbr_panel_electricity_produced
          - sensor.sbr_panel_electricity_produced_interval
          - sensor.sonos_kitchen_electricity_consumed
          - sensor.sonos_kitchen_electricity_consumed_interval
          - sensor.sonos_kitchen_electricity_produced
          - sensor.sonos_kitchen_electricity_produced_interval
          - sensor.sensowash_wc_electricity_consumed
          - sensor.sensowash_wc_electricity_consumed_interval
          - sensor.sensowash_wc_electricity_produced
          - sensor.sensowash_wc_electricity_produced_interval
          - sensor.synology_nas_electricity_consumed
          - sensor.synology_nas_electricity_consumed_interval
          - sensor.synology_nas_electricity_produced
          - sensor.synology_nas_electricity_produced_interval
          - sensor.towel_rails_electricity_consumed
          - sensor.towel_rails_electricity_consumed_interval
          - sensor.towel_rails_electricity_produced
          - sensor.towel_rails_electricity_produced_interval
          - sensor.washing_machine_electricity_consumed
          - sensor.washing_machine_electricity_consumed_interval
          - sensor.washing_machine_electricity_produced
          - sensor.washing_machine_electricity_produced_interval
          - sensor.hacs
        title: Sensor
      - type: entities
        entities:
          - sun.sun
        title: Sun
      - type: entities
        entities:
          - switch.air_conditioner_lock
          - switch.bibo_water_dispenser_lock
          - switch.boiling_tap_lock
          - switch.dishwasher_lock
          - switch.fridge_freezer_lock
          - switch.humax_pvr_lock
          - switch.kitchen_slow_cooker
          - switch.kitchen_spare
          - switch.lounge_armchair
          - switch.lounge_charging_dock
          - switch.lounge_spare
          - switch.lounge_standing_lamp
          - switch.lounge_subwoofer
          - switch.lounge_table_lamp
          - switch.mvhr_lock
          - switch.outside_hot_tub_jets
          - switch.outside_hot_tub_light
          - switch.outside_hot_tub_valve
          - switch.plant_room_avr
          - switch.plant_room_appletv
          - switch.plant_room_matrix1
          - switch.plant_room_matrix2
          - switch.plant_room_sonos_bed2
          - switch.plant_room_sonos_lounge
          - switch.rain_harvesting_pump_lock
          - switch.sbr_panel_lock
          - switch.sonos_kitchen
          - switch.sonos_kitchen_lock
          - switch.sensowash_wc_lock
          - switch.synology_nas
          - switch.synology_nas_lock
          - switch.towel_rails
          - switch.towel_rails_lock
          - switch.under_stairs_dyson_charger
          - switch.under_stairs_karcher_charger
          - switch.under_stairs_spare1
          - switch.under_stairs_spare2
          - switch.utility_hot_tub_water_pump
          - switch.velux_gateway
          - switch.washing_machine
          - switch.washing_machine_lock
        title: Switch
      - type: weather-forecast
        entity: weather.hollybank
        show_forecast: false
      - cards:
            - entity: media_player.apple_tv4
              type: media-control
            - cards:
                - cards:
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-left'
                      name: Left arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: left
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:apple'
                      name: Select
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: select
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-right'
                      name: Right arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: right
                          entity_id: remote.apple_tv4
                      type: button
                  type: horizontal-stack
                - cards:
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-up'
                      name: Up arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: up
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:menu'
                      name: Menu
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: menu
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-down'
                      name: Down arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: down
                          entity_id: remote.apple_tv4
                      type: button
                  type: horizontal-stack
                - type: horizontal-stack
                  cards:
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: home
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: home_hold
                          entity_id: remote.living_room
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      icon: 'mdi:home'
                      name: Home
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: suspend
                          entity_id: remote.apple_tv4
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Sleep
                      icon: 'mdi:sleep'
                      hold_action:
                        action: none
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: volume_up
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Volume up
                      icon: 'mdi:volume-plus'
                - type: horizontal-stack
                  cards:
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: play_pause
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Play/Pause
                      icon: 'mdi:play-pause'
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: next
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      icon: 'mdi:skip-next'
                      name: Next
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: volume_down
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Volume down
                      icon: 'mdi:volume-minus'
              type: vertical-stack```
1 Like

Have you tested that the remote works (i.e. your ATV is paired correctly with HA)? You can do this from Developer Tools > Services.

You posted a massive config. Are all those buttons failing to render, or specific ones? Or are the media controls failing too? Perhaps create a separate and simplified view that reproduces the error on a much smaller scale and repost that config.

Help us to help you.

Thanks for the reply.
Yes the remote works fine and is paired correctly to HA as I can use the standard controls added to the dashboard (play/pause etc). It seems the problem stems from my poor implementation of the customised remote providing the extra controls such as up, down, right, left, menu etc.
Apologies for posting a long config but, being new to this, I wanted to ensure the config was correct and I hadn’t got the formatting incorrect. All the other buttons work fine it’s just my additions for the Apple TV which don’t work and I get the error message highlighted above. Media controls work fine for the original controls added automatically to the Home dashboard. I’ve copied the part which I added for the custom remote. I know it’s not correct but I’m not sure where the card definition has gone wrong:

   - cards:
            - entity: media_player.apple_tv4
              type: media-control
            - cards:
                - cards:
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-left'
                      name: Left arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: left
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:apple'
                      name: Select
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: select
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-right'
                      name: Right arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: right
                          entity_id: remote.apple_tv4
                      type: button
                  type: horizontal-stack
                - cards:
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-up'
                      name: Up arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: up
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:menu'
                      name: Menu
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: menu
                          entity_id: remote.apple_tv4
                      type: button
                    - entity: remote.apple_tv4
                      hold_action:
                        action: none
                      icon: 'mdi:arrow-down'
                      name: Down arrow
                      show_icon: true
                      show_name: false
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: down
                          entity_id: remote.apple_tv4
                      type: button
                  type: horizontal-stack
                - type: horizontal-stack
                  cards:
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: home
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: home_hold
                          entity_id: remote.living_room
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      icon: 'mdi:home'
                      name: Home
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: suspend
                          entity_id: remote.apple_tv4
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Sleep
                      icon: 'mdi:sleep'
                      hold_action:
                        action: none
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: volume_up
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Volume up
                      icon: 'mdi:volume-plus'
                - type: horizontal-stack
                  cards:
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: play_pause
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Play/Pause
                      icon: 'mdi:play-pause'
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: next
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      icon: 'mdi:skip-next'
                      name: Next
                    - type: button
                      tap_action:
                        action: call-service
                        service: remote.send_command
                        service_data:
                          command: volume_down
                          entity_id: remote.apple_tv4
                      hold_action:
                        action: none
                      show_icon: true
                      show_name: false
                      entity: remote.apple_tv4
                      name: Volume down
                      icon: 'mdi:volume-minus'
              type: vertical-stack

Well after many hours of fiddling with indentation within the yaml file I managed to get the buttons to display. However when I put it all together I’m getting the following:

Unknown type encountered: horizontal-stack
path: default_view
title: Home
cards:
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: play_pause
        entity_id: remote.apple_tv4
    hold_action:
      action: none
    show_icon: true
    show_name: false
    entity: remote.apple_tv4
    name: Play/Pause
    icon: 'mdi:play-pause'
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: next
        entity_id: remote.apple_tv4
    hold_action:
      action: none
    show_icon: true
    show_name: false
    entity: remote.apple_tv4
    icon: 'mdi:skip-next'
    name: Next
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: volume_down
        entity_id: remote.apple_tv4
    hold_action:
      action: none
    show_icon: true
    show_name: false
    entity: remote.apple_tv4
    name: Volume down
    icon: 'mdi:volume-minus'
type: horizontal-stack

Obviously more problems with my config. Surely this shouldn’t be this difficult to get a simple control configured. Granted being new to the interface doesn’t help but why when a remote entity is automatically added does the integration not create a standard remote interface with the usual Apple TV remote buttons?

Everything fine :slightly_smiling_face: Your code works as expected. I copied it into a test dashboard (The “error message” appears because I don’t have your IDs, obviously.)

Well it’s not working on mine and I think I’ve found why. It was this post on Reddit which seemed to point me in the right direction. Looks like the definition of type was changed in an update:
https://www.reddit.com/r/homeassistant/comments/jmpgy4/after_updating_lovelace_cant_find/gawmsyv/

I’m still trying to work out the correct layout … you really can waste hours of your life on this :roll_eyes:

Yes. I was wondering why there was


views:
  - title: Home
    cards:
      - type: horizontal-stack
        cards:
          - type: button
           
ˋˋˋ

Because that’s the code posted above in this thread :roll_eyes:

However can’t get it to work yet:

views:
  - path: default_view
    title: Home
    cards:
      - entity: media_player.apple_tv4
        type: media-control
      - cards:
          - cards:
              - type: horizontal-stack
              - entity: remote.apple_tv4
                type: button
                hold_action:
                    action: none
                icon: 'mdi:arrow-left'
                name: Left arrow
                show_icon: true
                show_name: false
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: left
                    entity_id: remote.apple_tv4
              - entity: remote.apple_tv4
                hold_action:
                  action: none
                icon: 'mdi:apple'
                name: Select
                show_icon: true
                show_name: false
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                     command: select
                     entity_id: remote.apple_tv4
                type: button
              - entity: remote.apple_tv4
                hold_action:
                  action: none
                icon: 'mdi:arrow-right'
                name: Right arrow
                show_icon: true
                show_name: false
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                     command: right
                     entity_id: remote.apple_tv4
                type: button
    

Copy it into raw config editor or lovelace:


views:
  - title: Home
    path: home
    badges: []
    cards:
      - type: horizontal-stack
        cards:
          - type: button
            tap_action:
              action: call-service
              service: remote.send_command
              service_data:
                command: play_pause
                entity_id: remote.apple_tv4
            hold_action:
              action: none
            show_icon: true
            show_name: false
            entity: remote.apple_tv4
            name: Play/Pause
            icon: 'mdi:play-pause'
          - type: button
            tap_action:
              action: call-service
              service: remote.send_command
              service_data:
                command: next
                entity_id: remote.apple_tv4
            hold_action:
              action: none
            show_icon: true
            show_name: false
            entity: remote.apple_tv4
            icon: 'mdi:skip-next'
            name: Next
          - type: button
            tap_action:
              action: call-service
              service: remote.send_command
              service_data:
                command: volume_down
                entity_id: remote.apple_tv4
            hold_action:
              action: none
            show_icon: true
            show_name: false
            entity: remote.apple_tv4
            name: Volume down
            icon: 'mdi:volume-minus'

:+1: Perfect that’s what I needed. Now I can see the proper indenting and format.

Thank you!

Sorry, I dismissed the media control. You want it like this, right ?

No problem and thanks so much for helping.

I’m trying to make it look like the screenshot further up in the thread:
AppleTV Remote

I’m struggling to ‘nest’ controls in the config. i.e. have several rows of buttons.

Use horizontal stacks for each row:


views:
  - title: Home
    path: default_view
    cards:
      - type: vertical-stack
        cards:
          - type: media-control
            entity: media_player.apple_tv4
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: play_pause
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                name: Play/Pause
                icon: 'mdi:play-pause'
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next
              - type: button
                tap_action:
                  action: call-service
                  service: remote.send_command
                  service_data:
                    command: next
                    entity_id: remote.apple_tv4
                hold_action:
                  action: none
                show_icon: true
                show_name: false
                entity: remote.apple_tv4
                icon: 'mdi:skip-next'
                name: Next

will give you this: