With the latest updates it’s working for me too. Cheers.
Not an update post, but I was influenced by a Reddit post and recreated the Spotify music controls using this card. The config is in the README. It’s all done using built in style options and templates. It even has a hidden volume slider that uses the exec action to change the values of CSS styles to hide/show it.
Hi everyone,
The crunchyroll button doesnt seem to work. Can I fix it myself ?
Thanks a lot ![]()
Hello guys,
I am trying to make XBOX remote, but can’t figure out correct command syntax.
Can you please check and advise what’s wrong:
type: custom:android-tv-card
rows:
- - - power
- - home
- - menu
- - dpad
- xpad
remote_id: remote.xbox_series_x_remote
custom_actions:
- type: button
name: power
tap_action:
action: toggle
data:
entity_id: remote.xbox_series_x_remote
icon: mdi:power
- type: button
name: home
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: Home
icon: mdi:microsoft-xbox
- type: button
name: menu
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: Menu
icon: mdi:menu
- type: button
name: up
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: Up
hold_action:
action: repeat
icon: mdi:arrow-up
- type: button
name: down
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: Down
hold_action:
action: repeat
icon: mdi:arrow-down
- type: button
name: left
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: Left
hold_action:
action: repeat
icon: mdi:arrow-left
- type: button
name: right
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: Right
hold_action:
action: repeat
icon: mdi:arrow-right
- type: button
name: x
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: X
hold_action:
action: repeat
icon: mdi:alpha-x-circle
- type: button
name: "y"
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: "y"
hold_action:
action: repeat
icon: mdi:alpha-y-circle
- type: button
name: b
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: B
hold_action:
action: repeat
icon: mdi:alpha-b-circle
- type: button
name: a
tap_action:
action: remote.send_command
data:
entity_id: remote.xbox_series_x_remote
command: A
hold_action:
action: repeat
icon: mdi:alpha-a-circle
keyboard_id: remote.xbox_series_x_remote
media_player_id: media_player.xbox_series_x
service_data is not a valid field. Use data instead. Even better, use the configuration UI.
Hello,
Is there a way to prevent the TV from turning on when accidentally touching the touchpad while scrolling through devices in the Home Assistant mobile app? How can I do it?
Thanks in advance!
Set this in your remote general styles (or use the :host selector in the touchpad styles)
{% if is_state(config.media_player_id, "off") %}
remote-touchpad {
pointer-events: none;
}
{% endif %}
Anyone know how to fire the TV guide (live TV) for FireTV? I have this code, but it doesn’t do anything. The button works fine on the remote:
type: button
name: TV-Guide
autofill_entity_id: true
icon: mdi:television-classic
entity_id: media_player.fire_tv_192_168_1_89
tap_action:
action: perform-action
perform_action: media_player.select_source
target:
entity_id: media_player.fire_tv_192_168_1_89
data:
source: com.amazon.tv.livetv
label: null
Hello everyone.
New to this integration. Fantastic work BTW.
I am working on a remote for my parents’ android tv Panasonic. I have been able to find all the buttons I need with the exception of source/input/hdmi. I would like to be able to switch inputs from HDMI3 to TV/ANT. I noticed that there is a TV button, but it only recalls the previous input used. Any ideas where I could find a total list of buttons/commands? would there be a way to find the commands specific to this TV?
I discovered with my android TV that I can switch source with F1/2/3/4/5 … maybe it’s the solution.
The “Crunchyroll” source doesnt work. Is it possible to repair it myself ?
I would like to custom some icon. Like switch icons for F1 - F2. Is it possible ?
Thanks a lot.
Version 4.5.0 is out with a bunch of features:
- A new remote element - circlepads
- Like the old Google TV styled dpad example but more stable and directly customizable.
- Refactored sliders to be more performant and use CSS for translation and transition animations.
- More in depth keyboard controls (not keyboard text input) for controlling remote elements and assigning keyboard keys to buttons.
- New default platforms Philips TV and Generic Remote.
- Editor babyproofing to only show required fields for the selected platform.
Please help to align this two buttons. Thanks!!!
type: custom:universal-remote-card
platform: Samsung TV
media_player_id: media_player.tvhome
rows:
- - - numpad
- - n0
- channel_up
- channel_down
- - volume_up
- null
- volume_down
- circlepad
- - home
- channel_list
- info
- guide
- back
remote_id: remote.tvhome
custom_actions:
- type: circlepad
name: circlepad
tap_action:
action: key
key: KEY_ENTER
deevice: null
up:
icon: mdi:chevron-up
tap_action:
action: key
key: KEY_UP
hold_action:
action: repeat
down:
icon: mdi:chevron-down
tap_action:
action: key
key: KEY_DOWN
hold_action:
action: repeat
left:
icon: mdi:chevron-left
tap_action:
action: key
key: KEY_LEFT
hold_action:
action: repeat
right:
icon: mdi:chevron-right
tap_action:
action: key
key: KEY_RIGHT
hold_action:
action: repeat
styles: |-
.circlepad {
width: 174px;
border: 1px solid #444;
background: radial-gradient(circle at top left, #202020 15%, #303030 100%);
--icon-color: rgba(128,128,128,0.5);
}
#center::part(button) {
background: radial-gradient(circle at top left, #303030 15%, #101010 100%);
border: 1px solid rgba(0, 0, 0, 0.5);
}
#center::part(icon) {
color: rgba(128,128,128, 0.8);
--size: 36px;
}
#left,
#right {
width: 100%;
}
icon: ok
custom_icons: []
Add this to your overall CSS styles.
.column {
gap: 8px
}
please just one more help… have this fix inside: browser_mod.popup
type: heading
heading: Media
heading_style: title
badges:
- type: entity
show_state: false
show_icon: true
entity: scene.a_tv_home
icon: mdi:movie-roll
tap_action:
action: perform-action
perform_action: browser_mod.popup
target: {}
data:
title: Fechar
dismissable: true
autoclose: false
timeout: 640000
card_mod:
style:
ha-dialog$: |
.mdc-dialog__scrim {
background: rgba(0, 0, 0, 0.4);
}
.mdc-dialog__container {
display: flex !important;
justify-content: flex-end !important;
align-items: flex-start !important;
height: auto !important;
}
.: |
ha-dialog {
--dialog-backdrop-filter: blur(0.8em);
position: fixed !important;
top: 0 !important;
right: 0 !important;
transform: translate(-300px, 350px); /* Ajuste conforme sua preferência de posicionamento */
margin: 0 !important;
height: auto !important;
width: auto !important;
max-width: 95vw !important;
max-height: 95vh !important;
z-index: 1000 !important; /* Garante que o popup fique sobre outros elementos */
}
browser_id:
- 667065a5b4ac882a71541f6dd0c993bc
content:
type: custom:universal-remote-card
platform: Samsung TV
media_player_id: media_player.tvhome
rows:
- - - numpad
- - n0
- channel_up
- channel_down
- - volume_up
- null
- volume_down
- circlepad
- - home
- channel_list
- info
- guide
- back
remote_id: remote.tvhome
custom_actions:
- type: circlepad
name: circlepad
tap_action:
action: key
key: KEY_ENTER
up:
icon: mdi:chevron-up
tap_action:
action: key
key: KEY_UP
hold_action:
action: repeat
down:
icon: mdi:chevron-down
tap_action:
action: key
key: KEY_DOWN
hold_action:
action: repeat
left:
icon: mdi:chevron-left
tap_action:
action: key
key: KEY_LEFT
hold_action:
action: repeat
right:
icon: mdi:chevron-right
tap_action:
action: key
key: KEY_RIGHT
hold_action:
action: repeat
styles: |-
.circlepad {
width: 174px;
border: 1px solid #444;
background: radial-gradient(circle at top left, #202020 15%, #303030 100%);
--icon-color: rgba(128,128,128,0.5);
}
#center::part(button) {
background: radial-gradient(circle at top left, #303030 15%, #101010 100%);
border: 1px solid rgba(0, 0, 0, 0.5);
}
#center::part(icon) {
color: rgba(128,128,128, 0.8);
--size: 36px;
}
#left, #right { width: 100%; }
icon: ok
custom_icons: []
card_mod:
style:
ha-dialog$: |
div.mdc-dialog div.mdc-dialog__scrim {
background: rgba(0, 0, 0, 0.4);
}
div.mdc-dialog__container {
--vertical-align-dialog: center !important;
}
div.mdc-dialog__container {
--horizontal-align-dialog: right !important;
}
.: |
.column {
gap: 8px
}
Don’t use card-mod to style this card. The built in style options are just as capable and much more performant. Create a styles field and put the column styles in there at the root level of the card config similar to how you did for the circlepad.
You’ll also be better off putting the popup in a separate popup card and opening that using a more-info action. Or switching to bubble card for modal bottom sheet pop-ups.
thanks!! now is perfect
Hey,
Pretty new to HA in general, and just found this awesome project.
I am working on setting up a remote dashboard today and the Discovery Plus default doesn’t work.
I believe they recently replaced their app with a whole new package so that’s probably why. The previous method I had tried (before this project) using the non-ADB Android TV integration was Remote:Turn On and then putting in the package name. That works fine for all my other apps but with D+ is just opens it in the Play Store instead of opening the app itself.
The D+ package name is com.discovery.discoveryplus.mobile, I got through ADB. From searching around, it seems like to launch it through ADB, you have to do am start -n packagename/packagename.activity. I installed Activity Launcher on my phone to try and get the correct activity for D+, which appears to be FuseActivity as that’s the only one that works using that app on my phone, but trying to use that in ADB doesn’t work, just says it doesn’t exit.
So I tried to figure it out to give you more info, but I’m at a loss right now.
Also, I saw some earlier discussion on SmartTube. It’s not listed as a default so I just made a custom element and used the Remote: Turn On and just put in the package name for the activity (com.teamsmart.videomanager.tv) and that works just fine.
Opening the app store page vs the app itself is an issue with some apps, one we can’t get around as it’s something the developers of those apps have to fix.
The YouTube default source opens SmartTube for me. I think I disabled the default YouTube app, but I’m not sure if that’s necessary.
Ah yeah forgot that’s what it was for SmartTube. Eh, I’ll stick with what I did.
Anyway, I just figured out Discovery Plus.
Via ADB:
am start -n com.discovery.discoveryplus.mobile/com.wbd.beam.BeamActivity
is what works. It’s weird because on my phone it’s com.wdb.fuse.appcore.FuseActivity. That’s what threw me off.





