You can already roll your own media player remote.
I’m using one of the community custom Lovelace cards called, vertical-stack-in-card. It allows you to combine multiple cards, but unlike the default Vertical Stack card, the cards you combine don’t have card borders, so multiple cards can be combined and they look like a single card.
I’ve used Picture Glance cards, which will change the background of the card depending on which activity I have selected. If you like the dropdown menu method for selecting activities, you can use the default Input Select method, and add that Input Select as an entity on the card.
With my Picture Glance card, I decided to just use buttons to select activities instead of the Input Select method that I’d been using, because the buttons are quicker. To make the buttons function like selecting activities from the Harmony remote, I created switches for each activity.
#Play Xbox
play_xbox:
friendly_name: "Xbox One"
value_template: "{{ is_state_attr('remote.tv_room', 'current_activity', 'Play Xbox') }}"
turn_on:
service: remote.turn_on
data:
entity_id: remote.tv_room
activity: 'Play Xbox'
turn_off:
service: remote.turn_on
data:
entity_id: remote.tv_room
activity: 'PowerOff'
icon_template: >-
{% if is_state_attr('remote.tv_room', 'current_activity', 'Play Xbox') %}
mdi:xbox
{% else %}
mdi:xbox-controller-off
{% endif %}
In addition to the activity buttons, I’ve also added a volume slider. This gives me easy access to all of the functionality I’m used to with the actual remote. I don’t have transport controls on the card because it’s easier to just play/pause from the Harmony remote itself, but you could easily add buttons for this if you’d like.
I also added a button that will open the standard media player for the Harmony hubs that are created by default for each hub. This way if I need some of the lesser used commands, like switching the HDMI input on my receiver, I can still do that. If I switched inputs more often, Id just create buttons for this as well.
This is what the Lovelace code looks like. It’s two picture glance cards that look like a single card thanks to the vertical-stack-in-card, card.
cards:
- entities:
- switch.watch_tv
- switch.watch_roku
- switch.watch_a_movie
- switch.listen_to_music
- switch.listen_to_volumio
- switch.play_xbox
entity: sensor.tv_room
state_image:
Listen to Music: /local/images/NetMusic.jpg
Listen to Volumio: /local/images/Volumio.jpg
Play Xbox: /local/images/Xbox.jpg
PowerOff: /local/images/Off.jpg
Watch Roku: /local/images/Roku.png
Watch TV: /local/images/LGTV.jpg
Watch a Movie: /local/images/SonyBDP.jpg
type: picture-glance
- cards:
- entities:
- switch.tv_room_power
- media_player.onkyo_tx_nr626
- input_number.harmony_my_volume
image: /local/images/OnkyoTX-NR626.jpg
type: picture-glance
- entities:
- entity: sensor.jeff_s_tv_time
show_header_toggle: false
title: Jeff's Harmony
type: entities
type: vertical-stack
type: 'custom:vertical-stack-in-card'
Edit: Please don’t think that I’m trying to undermine the usefulness of the Roku card, because I love it and I’ve been using it since January. I’m merely pointing out how I’ve done something similar using Lovelace to get the same sort of functionality from my Harmony hubs.