Skip to content
Doug Nelson edited this page Apr 30, 2024 · 3 revisions

Firemote version v3.4.0 introduced a new bring your own device feature to allow more savvy Home Assistant users control anything they own.

This addition was requested by a Firemote user in Feature Request #305


entity: none

image

What does it do?

When you select "none" as your device type, you gain the ability to use any of the Firemote remotes look and feel without having to actually have that specific type of device added to your Home Assistant setup.

What is the use case?

For users of the Broadlink integration or any type of IR blasters, this option provides a way to control any "non-smart" or "not yet supported through the Firemote card" types of devices to be controlled.

(If you want your not yet supported media device added to the core of Firemote, make your request known here)

How do I use it?

Build your card

After selecting the None / Other option in the Device Family menu of the UI, or using entity: none in the YAML config, many of the menu options that are normally present will disappear.

image

This is intentional since our goal is to control something that is not currently supported by Firemote. We will be configuring what the buttons do through YAML.

Feel free to change any options at this point in the process to configure the look and feel of the kind of card you would like to use. For the purposes of this article, this is how I've configured mine:

image

type: custom:firemote-card
entity: none
device_family: none
device_type: other
compatibility_mode: default
defaultRemoteStyle_override: AL2
scale: '56'
app_launcher_relative_size: 0
hide_button_group_frame: true
useCustomSkin: true
skin: '#4680af'
dpad_style: apple-tv-black
visible_name_text: 🔥 Firemote 🔥
name_position: top
visible_name_text_color: '#4d0000'

Program your buttons

After saving your new card with the look that you want it to have, we will need to use Button Overrides to assign an action for each of the buttons on our Firemote card, and/or Launcher Button Customizations to add additional buttons as well. It is important that you read the documentation and understand how overrides and customizations work before continuing.

To help you with this process, Firemote will tell you the name of each un-programmed button when you click on it:

noEntityButtonClicks.mp4

The button names that appear in this video are listed at the top of the alert box, up-button, right-button, volume-up-button, etc.

Now that we know their names, we can program a few using YAML. Consider this example:

type: custom:firemote-card
entity: none
device_family: none
device_type: other
compatibility_mode: default
defaultRemoteStyle_override: AL2
scale: '95'
app_launcher_relative_size: '31'
hide_button_group_frame: true
useCustomSkin: true
skin: '#4680af'
dpad_style: apple-tv-black
visible_name_text: 🔥 Firemote 🔥
name_position: top
visible_name_text_color: '#4d0000'
button_overrides:
  mute-button:
    script: receiver_mute_script
  volume-down-button:
    script: receiver_volume_down_script
  volume-up-button:
    service: light.toggle
    target:
      entity_id: light.bedroom_lamp
    data:
      color_name: red
      transition: 2
      brightness_pct: 100

In a configuration like this, clicking on the Mute button will trigger the Home Assistant script named "receiver_mute_script". A similar concept with the Volume Down button too. The Volume Up button calls a Home Assistant service, passes a target and any data that might be required. Either way works just fine, it's all a matter of your personal preference.

Let's take it another step further. Consider this addition to the YAML:

type: custom:firemote-card
entity: none
device_family: none
device_type: other
compatibility_mode: default
defaultRemoteStyle_override: AL2
scale: '95'
app_launcher_relative_size: '31'
hide_button_group_frame: true
useCustomSkin: true
skin: '#4680af'
dpad_style: apple-tv-black
visible_name_text: 🔥 Firemote 🔥
name_position: top
visible_name_text_color: '#4d0000'
button_overrides:
  mute-button:
    script: receiver_mute_script
  volume-down-button:
    script: receiver_volume_down_script
  volume-up-button:
    service: light.toggle
    target:
      entity_id: light.bedroom_lamp
    data:
      color_name: red
      transition: 2
      brightness_pct: 100
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
  - friendly_name: Red Lamp
    label: red
    icon: mdi:lamp
    color: red
    background: blue
    service: 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

That example configuration results in a Firemote card that looks like this: image

You can see that two new "launcher" buttons were added, and configured to run a script or interact with a Home Assistant service.

The possibilities are endless.