Need More Information? Check out this project's Wiki page
Firemote is a custom Home Assistant card that is capable of controlling your media devices directly from any Home Assistant dashboard. The Firemote dashboard remotes are designed to look just like your physical remote controls, but they also contain TONS of customization options to choose from!
For a visual introduction, YouTube's @BeardedTinker created a fantastic video about this card!
https://www.youtube.com/watch?v=hbEHaspKvWs - Be sure to give him a sub and a like if you enjoy it!
A full video demonstration of setup and use featuring a Homatics device can be found here
Short demonstration videos also exist for Roku Firemote and Chromecast Firemote
Click here to see the full gallery
Examples:
type: custom:firemote-card
entity: media_player.fire_tv_192_168_1_30
device_family: amazon-fire
device_type: fire_tv_4_series
compatibility_mode: default
app_launch_1: prime-video
app_launch_2: netflix
app_launch_3: hdmi_1
app_launch_4: youtube
hdmi_1: Cable
scale: 85
type: custom:firemote-card
entity: media_player.apple_tv_4k_2nd_gen
device_family: apple-tv
device_type: appletv-4k-gen2
compatibility_mode: default
apple_tv_remote_entity: remote.apple_tv_4k_2nd_gen
app_launch_1: apple-appstore
app_launch_2: apple-tv-arcade
app_launch_3: mlb
app_launch_4: nfl
visible_name_text: Game Room
name_position: top
button_overrides:
mute-button:
script: receiver_mute_script
type: custom:firemote-card
entity: media_player.android_tv_192_168_107_209
device_family: nvidia-shield
device_type: shield-tv-pro-2019
compatibility_mode: default
android_tv_remote_entity: remote.shield
scale: '100'
app_launch_1: netflix
app_launch_2: function-find-my-remote
app_launch_3: function-mute
Options: | Name | Type | Required | Options | Description |
---|---|---|---|---|---|
type | string | yes | custom:firemote-card | Type of the card | |
entity | string | yes | any valid media player entity created in the Android Debug Bridge Integration, Apple TV Integration or the Roku Integration or none | entity_id | |
device_family | string | yes | amazon-fire apple-tv chromecast nvidia-shield onn roku xiaomi none |
Manufacturer Family | |
android_tv_remote_entity | string | no | any valid entity created in the Android TV Remote Integration | entity_id Ignored in Apple TV and Roku configurations |
|
apple_tv_remote_entity | string | yes* | any valid remote entity created in the Apple TV Integration | entity_id * Required ONLY in Apple TV configurations |
|
device_type | string | yes | appletv-4k-gen3 appletv-4k-gen2 appletv-4k-gen1 appletv-gen4 appletv-gen3 appletv-gen2 appletv-gen1 chromecast-4k fire_tv_toshiba_v35 fire_tv_4_series fire_tv_jvc-4k-2021 fire_tv_insignia_f20 fire_tv_cube_third_gen fire_tv_cube_second_gen fire_tv_cube_first_gen fire_tv_stick_4k_max_second_gen fire_tv_stick_4k_second_gen fire_tv_stick_4k_max fire_tv_3rd_gen fire_tv_stick_lite fire_stick_4k fire_stick_second_gen fire_stick_first_gen fire_tv_second_gen_2015 box-4-4k-plus dune-hd-box-4-4k-plus onn-streaming-device-4k-pro onn-4k-streaming-box onn-full-hd-streaming-stick roku-streambar-pro roku-streambar roku-ultra-lt-2023 roku-ultra-lt roku-ultra-2020 roku-streaming-stick-4k roku-express-4k-plus roku-express-4k roku-express roku-premiere roku-generic-hisense roku-generic-tcl roku-generic-westinghouse shield-tv-2017 shield-tv-pro-2017 shield-tv-2019 shield-tv-pro-2019 mi-box-s xiaomi-tv-stick-4k other |
The type of device you are controlling Which devices are supported? |
|
compatibility_mode | string | no | default strong event0 event1 event2 event3 event4 event5 event6 event7 event8 event9 event10 event11 event12 event13 |
Adjust this value only if your buttons are completely unresponsive Ignored in Apple TV configurations FAQ Available for additional help |
|
defaultRemoteStyle_override | string | no | AF1 AF2 AF3 AF4 AF5 AF6 AFJTV AFXF2 AR1 AR2 AR3 CC1 CC2 CC3 HO1 HO2 HO3 HO4 NS1 NS2 ON1 ON2 RVRP RVR RSR RHR RTR RWR XM1 XM2 AL1 AL2 |
Optionally select a style of remote different from the one that shipped with your device | |
app_launch_1 app_launch_2 app_launch_3 app_launch_4 app_launch_5 etc... |
string | no | See App Launch Button Customization section for options | Quick launch apps customization | |
hdmi_1 hdmi_2 hdmi_3hdmi_4 |
string | no | Personalized name for this HDMI input | The name entered here will appear on the button (truncated to 8 characters to fit) | |
scale | integer | no | Any positive number | Change the size of this card by percentage. The default size is 100 | |
custom_launchers | object | no | Create your own app launcher buttons | Details are in the Launcher Button Customizations of the README.md file | |
button_overrides | object | no | Button name and HA script name are required. | Details are in the Button Overrides section of the README.md file | |
visible_name_text | string | no | Any text | Optional device label for your firemote | |
name_position | string | no | hidden bottom top |
Position for your optional device label | |
visible_name_text_color | hex color value | no | Any hex color value e.g.: #ffffff | Optional text color for the device name label | |
show_version_number | bool | no | true false |
Optionally display the Firemote Version number on the card | |
hide_button_highlights | bool | no | true false |
Optionally hide the status higlighting decorations for the power, home, and play/pause buttons | |
use_theme_background | bool | no | true false |
Optionally hide the AL1 or AL2 remote style's background color to let the HA theme color show | |
hide_button_group_frame | bool | no | true false |
Optionally hide the frames around the button groups when using AL1 or AL2 | |
useCustomSkin | bool | no | true false |
Toggle a custom background skin color on or off when using AL1 or AL2 | |
show_media_controls | bool | no | true false |
Show additional media control buttons for Chromecast style remotes CC1, CC2, or CC3 | |
skin | hex color value | no | Any hex color value e.g.: #ffffff | background skin color for AL1 or AL2 | |
dpad_style | string | no | amazon-fire apple-tv-black apple-tv-silver chromecast xiaomi minimal |
Dpad style options for AL1 or AL2 |
Custom app launch buttons are not limited to the few that came printed on your remote control. In fact, the possibilities are endless! If you don't see your favorite app on this list, you can click on the Issues button on the top of this page, and select the App Shortcut Request option. There are currently over 330 options available, and the list just keeps growing.
You are not limited to only using the launcher buttons that come with Firemote. Through YAML, you can define your own working buttons in one of two ways: defining a script or constructing an action call.
Example:
type: custom:firemote-card
entity: media_player.fire_tv_192_168_107_88
device_family: amazon-fire
device_type: fire_tv_4_series
compatibility_mode: default
custom_launchers:
- friendly_name: flash the light
label: FLASH
image_path: https://upload.wikimedia.org/wikipedia/commons/2/28/Flash-outlined-thin-circular-button.svg
color: red
background: white
script: flashthelablight
data:
color: green
- friendly_name: Red Lamp
label: red
icon: mdi:lamp
color: red
background: blue
action: light.toggle
target:
entity_id: light.bedroom_lamp
data:
color_name: red
transition: 2
brightness_pct: 100
app_launch_1: customlauncher flash the light
app_launch_2: customlauncher Red Lamp
scale: '110'
YAML usage: | Key | Value | Required | Description |
---|---|---|---|---|
friendly_name | string | yes | This is the name that will appear in the GUI app selector dropdown | |
label | string | no | The text that will appear on the button | |
icon | mdi icon name | no | a valid mdi icon name ex: mdi:lamp |
|
image_path | url | no | path to an image resource | |
color | css color value | no | custom color for your text label or your mdi icon ex: white ex: '#ff0000' |
|
background | css color value | no | custom color for your button's background ex: green ex: '#ffffff' |
|
script | string | yes if calling a script | The name of your Home Assistant script | |
action | string | yes if not using a script | The name of the Home Assistant action you want to call | |
target | object | yes if not using a script | Define the entity for your action to act upon | |
data | object | no | optional parameters for your action, or script variables |
Once defined, a custom button can be assigned to a Firemote button location through the YAML config itself, or it can be selected through the Visual Editor dropdown
Button Overrides can be very useful for customization. These overrides can be used to call a Home Assistant action directly, run a script, or hide a button on your remote. These options are accomplished through your Firemote's YAML configuration. Just like launcher button customizations, you can also include a data parameter with your action or for your script.
Consider this example:
button_overrides:
mute-button:
script: receiver_mute_script
volume-down-button:
script: receiver_volume_down_script
volume-up-button:
action: light.toggle
target:
entity_id: light.bedroom_lamp
data:
color_name: red
transition: 2
brightness_pct: 100
power-button:
hidden: true
Additional FAQs can be found here in the Firemote Wiki
This tends to happen when your Home Assistant UI needs a refresh. The best way to do this is through force clearing your Home Assistant cache and trying again.
In many cases, your remote control sends commands for volume, mute, and power to your TV or receiver using the IR emitter on the front of the physical remote control. These IR commands cannot be sent in a traditional Home Assistant setup.
If your player device AND the device they are connected to both offer CEC options, then activating CEC will allow the Firemote card controls to work as expected. Click here to learn more about how to configure CEC to work with your Firemote. Another option might be to control your devices (TVs, Receivers, etc.) using Button Overrides. If you can control those kinds of devices through Home Assistant, you can write a HA script and attach that script to a button on your Firemote.
Due to the way the Apple TV Home Assistant integration is built, an Apple TV style Firemote cannot properly simulate a "Mute" button press. A Button Override will be required in this case.
Yes! In fact, there is a poll in the discussion group called Vote for what gets added next where the community can help decide which new device family will gain Firemote support next. If your device isn't on the ballot, no problem! Just vote for "Other" and write the name of your device in the discussion thread below.
There are over 40 kinds of Amazon Fire devices, so it will take a while to gain properly tested support for all of them. If Firemote doesn't support your Amazon Fire device yet, you can still use Firemote! Simply choose a supported device that is similar to the one that you have (preferably a remote that looks the same as your physical remote), then you can test different compatibility modes to find out which one works the best.
The BEST option for everyone is if you would submit a request to have your device added! It's simple! Just open a new Amazon Fire TV Device Support Request, fill out the quick and easy form, and you're done!
Apple TV app shortcuts work simply by passing the name of the app to the apple tv remote entity. Firemote is built and tested against an environment that uses English as the primary language. In some scenarios, built-in Apple TV apps use language app specific names, which is why asking it to open the English version of that app's name does not work. In order to overcome this, I request that you open a new language support request so we can work together and make all of these buttons work as intended.
Absolutely! Simply ask! Here's how: From the Issues menu, simply start a new App Shortcut Request. If you absolutely cannot wait, you can also build your own launcher button using YAML.
Click on the Issues button at the top of this page, click 'New Issue', and select the appropriate category for your needs. You're also welcome to join or begin a new discussion if that suits your needs.