Lovelace: Firemote Card - Remote controls for Amazon Fire / Android devices

Greetings @gildorva! It’s nice to have you here!

From what you’ve described, It sounds like TV’s manufacturer decided to use the version of Netflix designed for mobile devices com.netflix.mediaclient instead of the version designed for Android TV devices com.netflix.ninja. That is why the Firemote card isn’t working as expected for you.

You described trying some ADB commands which resulted in errors. I see these sorts of things all of the time, so I’m confident that we can get it working for you! Unfortunately, it might take some back and fourth between us before we find something that works. Let’s try these steps. If one of them works for you, there is no need to go onto the next one:

  1. Is it possible to download the Android TV version of the Netflix app for your TV? I’m guessing that it isn’t, but if it is, it would fix this immediately.

  2. What is the result or error that you see when running the following ADB command? adb shell am start -n com.netflix.mediaclient/.ui.launch.UIWebViewActivity

  3. What is the result or error that you see when running the following ADB command? adb shell am start -n com.netflix.mediaclient/.ui.launch.UIWebViewTabletActivity

  4. What is the result or error that you see when running the following ADB command? adb shell am start -a com.netflix.action.NETFLIX_KEY_START com.netflix.mediaclient

  5. If you run the command adb shell pm dump com.netflix.mediaclient, what do you see under Activity Resolver Table → Non-Data Actions? As an example, the com.netflix.ninja app produces this:

  Non-Data Actions:
      android.intent.action.MAIN:
        de7757b com.netflix.ninja/.MainActivity filter e2adf47
          Action: "android.intent.action.MAIN"
          Category: "android.intent.category.LEANBACK_LAUNCHER"
          Category: "android.intent.category.LAUNCHER"
      com.netflix.action.NETFLIX_KEY_START:
        de7757b com.netflix.ninja/.MainActivity filter 32e374
          Action: "com.netflix.action.NETFLIX_KEY_START"
          Category: "android.intent.category.DEFAULT"
      com.netflix.action.DIAL_START:
        de7757b com.netflix.ninja/.MainActivity filter cf72912
          Action: "com.netflix.action.DIAL_START"
          Category: "android.intent.category.DEFAULT"
      com.netflix.amazon.action.DIAL:
        de7757b com.netflix.ninja/.MainActivity filter 9ac28e3
          Action: "com.netflix.amazon.action.DIAL"
          Category: "android.intent.category.DEFAULT"

Best of luck to you! I hope to hear back soon!

-Doug

1 Like

Dear @crdougn

After several weeks of thinking about this, you have solved it in no time. The first solution worked perfectly (I put the results below)

I will try to install the app that you linked to me to test and I will post the results here. I’m sure it’s better than the one installed now.

I understand that using “adb shell pm dump xxxx” it I can get the statements or uri that I need to execute for other apps?

Regarding what you suggested:

    • I will try to install it later, I will comment here
    • Netflix starts without problem, perfect. The result:
adb_response: "Starting: Intent { cmp=com.netflix.mediaclient/.ui.launch.UIWebViewActivity }"
  1. -Error, the result:
adb_response: >-
  Starting: Intent {
  cmp=com.netflix.mediaclient/.ui.launch.UIWebViewTabletActivity }

  Error type 3

  Error: Activity class
  {com.netflix.mediaclient/com.netflix.mediaclient.ui.launch.UIWebViewTabletActivity}
  does not exist.
  1. -Error, the result:
adb_response: >-
  Starting: Intent { act=com.netflix.action.NETFLIX_KEY_START
  pkg=com.netflix.mediaclient }

  Error: Activity not started, unable to resolve Intent {
  act=com.netflix.action.NETFLIX_KEY_START flg=0x10000000
  pkg=com.netflix.mediaclient }
    • I think this is what was requested, if you want the whole message, I’ll add it, although the dump is very big, I don’t know if there is a spoiler bubble to hide it:
    Non-Data Actions:
        android.intent.action.MAIN:
          9e368d8 com.netflix.mediaclient/.ui.launch.UIWebViewActivity filter 7d31d63
            Action: "android.intent.action.MAIN"
            Category: "android.intent.category.LAUNCHER"
          ed5a431 com.netflix.mediaclient/.ui.launch.UIWebViewTabletActivity filter 569dd60
            Action: "android.intent.action.MAIN"
            Category: "android.intent.category.LAUNCHER"
        android.intent.action.SEARCH:
          7e40716 com.netflix.mediaclient/.ui.search.SearchActivity filter 233a2de
            Action: "android.intent.action.SEARCH"
          743e897 com.netflix.mediaclient/.ui.search.PortraitSearchActivity filter 1502cbf
            Action: "android.intent.action.SEARCH"

If you need any proof, don’t hesitate to ask me, it has saved me many wasted hours and headaches.

Thank you very much for the help, it has made my day (and week :blush:)

A hug.

1 Like

Yay! I’m so glad that it’s working for you! Also, your answers to my questions were perfect!

To answer your question about “adb shell pm dump xxxx”, I usually don’t start with that method. To start, I follow the procedure I posted in the Firemote wiki article named Providing Details for App Launcher Requests. First, you launch the app on your device, then while it’s open you run this command: adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp|mInputMethodTarget|mSurface'

After reviewing the response from that command, I attempt to use that data to write a workable ADB command. if I’m unable to make an ADB command that works properly, then I’ll go for the “adb shell pm dump xxxx” to hopefully provide me with some additional information or other things to try.

1 Like

I have used this command often, but I couldn’t build a command that worked. I will use both from now on to release other apps.

Thank you very much again, I was stuck and not moving forward.

All the best.

1 Like

Love the card, Problem I’m having is the controls stop being responsive. Anything related to the thumb pad or volume will stop working after awhile. However, the shortcut buttons to apps work fine, Only thing that seems to fix the issue temporarily is rebooting the server

Greetings @deanerh!

What you are describing is a known limitation with how the Amazon Fire TV remote controls and their devices communicate. Since Firemote uses multiple ways to control your devices, it can sometimes be subject to this hardware issue.

Since this is a common thing, I’ve written a few help articles about it over on the Firemote Github page:

I’ve done counteless hours of research and tried many things to try to work around this hardware issue, but as of right now it appears that there isn’t a solution.

To work around it, you could keep the physical remote handy to just simply press a button on it to regain control (as mentioned in the above linked help articles) , or you could set your Compatibility Mode option to Strong (Slower), if you are OK with the tradeoff that your navigation will likely be less responsive.

I hope this helps!

-Doug

1 Like

Doug, this is a fantastic card. Thanks for all of your hard work on this. I am wondering though, is there any way to make it a pop-up, so if I touch the entity on my dashboard, it comes up over the top?
image

Instead of this (which comes up now):
image

1 Like

Greetings @Mark.sydney!

Thanks! I’m glad that you like it!

A Firemote user neilimixamo posted something in this topic similar to what you are asking. I copied it over to the Firemote discussion Let’s See Your Dashboards:

In the discussion thread on github, neilimixamo provides the YAML to make it happen, which you can see here.

I hope this helps!

-Doug

1 Like

Project Update

As of March 25th, Firemote now officially supports onn. devices!

I also made a few Firemote related videos for YouTube. I’m hoping to do more in the future if people find them to be useful.

2 Likes

Hi!
Meanwhile, congratulations on this WONDERFUL card :slight_smile:
I also have the same problem:
I left everything at “default”, but (only) the following 3 buttons don’t work:

  • volume-up
  • volume-down
  • mute-button

I cleared the cache and tried on different browsers…
I would like to avoid using the “Button Overrides” feature.
Do you have any suggestions?
Thanks

My configuration is the following:

type: custom:firemote-card
entity: media_player.fire_tv_192_168_1_155
device_family: amazon-fire
device_type: fire_tv_stick_4k_second_gen
compatibility_mode: default
visible_name_text: Fire TV
visible_name_text_color: '#ffffff'
name_position: top
scale: '80'
app_launch_1: prime-video
app_launch_2: netflix
app_launch_3: function-app-switch
app_launch_4: amazon-music

Another “small nitpick”, if you allow me:
the color of the ‘Amazon music’ button on the card appears to be a light blue but, in reality, on the physical remote control it is a fairly dark blue.
Could you please change the CSS ?
(in the meantime can I solve it in another way?)

Thanks again

@Captain_Harlock ~

Thanks for the encouragement! I’m glad that you like my card!

This is happening because volume control isn’t handled in your fire stick itself. Typically during the setup process, you would train your physical remote to properly control your TV using infra-red (IR) signals.

There is a way to make Firemote do this without a physical remote by configuring your Firestick to send volume commands through the HDMI cable instead. I recommend taking a look at the section Why won’t the volume, mute, and/or power buttons work from my Firemote card? in the Firemote readme FAQ section. It will walk you through the procedure.

I had originally created that button and its colors based off of some official logo I found somewhere. Now that I look at how the logo appears in the menu and the logo in the appstore, I’m inclined to change it from this
image
(background color #00a8e1)

to this
image
(linear-gradient(141deg, rgba(139,226,235,1) 0%, rgba(43,199,211,1) 100%)

However, since you mentioned that you have a physical remote with this button on it, I did a quick search and found an image of your remote online and tried to sample the colors. I came up with this:
image
(background color #373e8f)

and now I’m conflicted. :smile: Both of the new options have much better contrast, so I should switch to one or the other of those new options. What do you think?

Also, how close is #373e8f to the color you have on your physical remote?

Hi!
How do you display the card as a pop-up on the PC desktop?
Can this be done with all types of HA cards?
Thanks

It’s true!
I hadn’t thought about the fact that the physical remote control of the Fire Stick sends (also) IR signals.
For everyone’s benefit in the following photo you can see that the remote control sends infrared signals when you press audio buttons or power button, and then directly control the TV:

I also experienced that, instead, by pressing the Alexa button the remote control sends another type of signal (I don’t think it’s IR) via a blue LED photodiode… Does anyone know what type of signal it is?

For all the other buttons No LED on the remote control lights up. So (I think) wifi signals are used… correct?

Anyway:

I followed the guide for enabling the CEC controls (even though I already had them enabled in the settings menu).
I tried both ‘Manual’ and ‘Auto’ modes but they don’t work on the card.
Instead the controls of the audio work with the physical remote control.
If there’s no alternative I think I’ll have to use scripts with buttons… I’ll try

I would say that the second new option is definitely more faithful to the original.
Perhaps the blue should be even more accentuated…
To give you an idea, I will send you a photo of the physical remote control directly :slight_smile:
(I hope the photo is of good quality):

By the way, regarding the Alexa button that I highlighted with the red arrow:

  • It could be reproduced faithfully (with logo and color) in the card;
  • Do you think it is possible to actually activate some sort of voice command?

Thanks gain for what you do and congratulations again for your work

@Captain_Harlock ~

Did you remember to also check the settings of your TV as well? Typically CEC needs to be enabled on both the Fire stick AND the TV / Audio Receiver to function properly. I’ve also seen this fail sometimes if there is a poor quality HDMI cable connecting the two devices together. I’m not sure if that applies to your case or not.

Close. The physical remotes use Bluetooth wherever possible.

I agree. You’ll see it this way in the next official release.
image

Because of the way Firemote sends commands to your media devices, currently there is no path to making voice commands work. That is why I have replaced the alexa button with a keyboard button. It comes in VERY handy when you need to type into an input field. The keyboard button is actually my favorite/main use case for Firemote.

OK, I solved the problem of the audio keys with the mode buttons/script, and…
And it works great! :+1:
So:

button_overrides:
  mute-button:
    script: fire_tv_4_series_mute_button
  volume-up-button:
    script: fire_tv_4_series_volume_up_button
  volume-down-button:
    script: fire_tv_stick_4k_volume_down_button

We’ll get over it :slight_smile:

Now I dash by another idea in his head…
I configured the card to control my Android TV and, even in this case, I managed (at least partially) to make it work.
The question is:
Is there a way to replace the card skin with an image of my physical TV remote control?

I renew my compliments to you…Keep going!
Thanks

@Captain_Harlock ~

:tada: YAY!

You can select any of the 24 options from the Remote Style menu that you would like:

image

If none of those are what you are looking for, then go over to the discussion Poll: Vote for what gets added next! and vote for your request. There are a lot of other users who are also requesting new things, so I try to be fair.

I voted for “Other” and made this proposal:

1 Like

Thanks for moving it to the right thread! :+1:

Thank you for your patience and commitment

1 Like

I create a dashboard containing only the Firemote card. Then I use WallPanel for Home Assistant (https://smarthomescene.com/guides/wallpanel-home-assistant-screensaver-for-your-wall-mounted-control-panel/) to remove the top and side bars. I use an app called CMDOW to resize the page and place it where I want it on the screen.

TEd