Apple TV, Amazon Fire TV, Chromecast, Homatics, NVIDIA Shield, onn., Roku, Xiaomi Mi, and Android TV remote control card for Home Assistant
HA-Firemote
Need More Information? Check out this project's Wiki page
| |
|
|
|
|
|
| | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
| |
|
|
|
| | ------------- | ------------- | ------------- | ------------- | ------------- |
| |
|
|
| | ------------- | ------------- | ------------- | ------------- |
| |
|
|
| | ------------- | ------------- | ------------- | ------------- |
| |
|
|
|
|
| | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
| |
| | ------------- | ------------- |
Introduction
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
Prerequisites
- A functioning version of Home Assistant
- HACS (not required, but it makes things easier)
- A supported device
Download and Setup via Home Assistant UI & HACS
- Turn on ADB/USB/Network debugging on your Amazon, onn., Shield, Xiaomi, Chromecast, or Android TV device - Video Tutorial
- Connect your device to Home Assistant:
- Click on the HACS sidebar option, then type "Firemote Card" into the search bar
- Use the 3 dots on the right side of the search result to select Download or click on the search result then tap the DOWNLOAD button in the lower right.
- You will be prompted to reload your browser. Click the RELOAD button to continue
OR Install Manually
- Turn on ADB/USB/Network debugging on your Amazon, Homatics, onn., Shield, Xiaomi, Chromecast, or Android TV device - Video Tutorial
- Connect your device to Home Assistant:
- Download the contents of the dist/ directory, and place it in your Home Assistant /config/www directory
- Register the HA-Firemote.js file that you just installed as a new resource
How to use
- On any dashboard, click the +ADD CARD button
- Search by cards for "Firemote Card" and click on it - help: It's not showing up
- Under the Device Family dropdown, choose "Amazon Fire", "Apple TV", "Chromecast", "Homatics", "NVIDIA Shield", "onn.", "Roku", "Xiaomi", or "none/other"
- Make any other optional changes to your card, then click "SAVE" Other options include changing the app launch buttons to apps that you use most often, or changing the style of your remote control to look like something completely different from what shipped with your device. You can even add names and adjust the size of your Firemote card too!
Screenshots from Users
Click here to see the full gallery
YAML card setup options
Examples:type: custom:firemote-card
entity: mediaplayer.firetv192168130
device_family: amazon-fire
devicetype: firetv4series
compatibility_mode: default
applaunch1: prime-video
applaunch2: netflix
applaunch3: hdmi_1
applaunch4: youtube
hdmi_1: Cable
scale: 85
type: custom:firemote-card
entity: mediaplayer.appletv4k2nd_gen
device_family: apple-tv
device_type: appletv-4k-gen2
compatibility_mode: default
appletvremoteentity: remote.appletv4k2nd_gen
applaunch1: apple-appstore
applaunch2: apple-tv-arcade
applaunch3: mlb
applaunch4: nfl
visiblenametext: Game Room
name_position: top
button_overrides:
mute-button:
script: receivermutescript
type: custom:firemote-card
entity: mediaplayer.androidtv192168107209
device_family: nvidia-shield
device_type: shield-tv-pro-2019
compatibility_mode: default
androidtvremote_entity: remote.shield
scale: '100'
applaunch1: netflix
applaunch2: function-find-my-remote
applaunch3: 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| entityid | | devicefamily | string | yes | amazon-fire
apple-tv
chromecast
nvidia-shield
onn
roku
xiaomi
none | Manufacturer Family | |androidtvremoteentity| string | no | any valid entity created in the Android TV Remote Integration | entityid
Ignored in Apple TV and Roku configurations | | appletvremoteentity | string | yes | any valid remote entity created in the Apple TV Integration | entityid
Required ONLY in Apple TV configurations | | rokuremoteentity | string | yes | any valid remote entity created in the Roku Integration | entityid
Required ONLY in Roku configurations | | devicetype | string | yes | appletv-4k-gen3
appletv-4k-gen2
appletv-4k-gen1
appletv-gen4
appletv-gen3
appletv-gen2
appletv-gen1
chromecast-4k
firetvtoshibav35)
firetv4series)
firetvjvc-4k-2021
firetvinsigniaf20
firetvcubethirdgen)
firetvcubesecondgen)
firetvcubefirstgen)
firetvstick4kmaxsecondgen)
firetvstick4ksecondgen)
firetvstick4kmax)
firetv3rdgen)
firetvsticklite)
firestick4k)
firesticksecondgen)
firestickfirstgen)
firetvsecondgen2015)
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? | | compatibilitymode | 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 | | applaunch1
applaunch2
applaunch3
applaunch4
applaunch5
etc... | string | no | See App Launch Button Customization section for options | Quick launch apps customization | |hdmi1
hdmi2
hdmi3hdmi4| 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 | | customlaunchers | object | no | Create your own app launcher buttons | Details are in the Launcher Button Customizations of the README.md file | | buttonoverrides | object | no | Button name and HA script name are required.| Details are in the Button Overrides section of the README.md file | | visiblenametext | string | no | Any text | Optional device label for your firemote | | name_position | string | no | hidden
bottom
top
| Position for your optional device label | | visiblenametext_color | hex color value | no | Any hex color value e.g.: #ffffff | Optional text color for the device name label | | showversionnumber | bool | no | true
false | Optionally display the Firemote Version number on the card | | hidebuttonhighlights | bool | no | true
false | Optionally hide the status higlighting decorations for the power, home, and play/pause buttons | | usethemebackground | bool | no | true
false | Optionally hide the AL1 or AL2 remote style's background color to let the HA theme color show | | hidebuttongroup_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 | | showmediacontrols | 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 |
App Launcher Buttons
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.
Launcher Button Customizations
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: mediaplayer.firetv19216810788 device_family: amazon-fire devicetype: firetv4series 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: entityid: light.bedroomlamp data: color_name: red transition: 2 brightness_pct: 100 applaunch1: customlauncher flash the light applaunch2: 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
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: receivermutescript volume-down-button: script: receivervolumedown_script volume-up-button: action: light.toggle target: entityid: light.bedroomlamp data: color_name: red transition: 2 brightness_pct: 100 power-button: hidden: true Valid button names are listed here:
- app-switch-button - apps-button - back-button - blue-button - center-button - channel-down-button - channel-up-button - down-button - fastforward-button - green-button - hamburger-button - headset-button - home-button - input-button - keyboard-button - left-button - live-button - magic-star-button - mute-button - num1-button - num2-button - num3-button - num4-button - num5-button - num6-button - num7-button - num8-button - num9-button - num0-button - options-button - patchwall-button - playpause-button - power-button - profile-button - programmable-one-button - programmable-two-button - red-button - restart-button - replay-button - rewind-button - right-button - search-button - settings-button - sleep-button - subtitle-button - tv-button - up-button - voice-button - volume-down-button - volume-up-button - yellow-button
FAQ
Additional FAQs can be found here in the Firemote Wiki
I installed the Firemote Card, but I can't find it to add in my dashboard
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.Why won't the volume, mute, and/or power buttons work from my Firemote card?
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.
Why don't any of the buttons on the Firemote work at all? ###
* If your Firemote used to work perfectly, and some or all of the buttons suddenly stopped working, it could be that all you need to do is press one button (any button) on your Fire TV device's physical remote control. After doing that step, try your Firemote again. This step most commonly fixes the issue in Amazon Fire devices after they are powered on, restarted, or updated. * Check your card configuration: * Is the correct Android device selected? * Is the correct Device Family selected? * Is the correct Device type selected? * If you are using one, is the correct matching Android TV Remote Entity selected? * Is Compatibility Mode set to Default? * If the Default Compatibility Mode is not working on your device, and you've checked every other step, slowly choose "event0", "event1", etc. and test your remote buttons under each mode. One of these will work.I own a device that isn't a part of any of the existing device families, can it be added?
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.Why isn't the model of my Amazon Fire Device supported?
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!