[Deprecated] Native support for Fire TV

Sorry but if I understand correctly, don’t I have to install your component? Do I have to follow only the guide you suggested to me?

The documentation I linked contains all you need to know about setting up the integration.

Many thanks

Doesn’t that documentation elude to either using some python method or an adb server or docker instance to do stuff and shows some scripts but not the physical of how to set it up physically? Also most documentation out there talks about using the server and lists python as a secondary option but now the documentation seems to show the python method primary but not sure the steps to set it up.

There are a few things, that need to work together, to get AndroidTV running.

  • The component “inside” HA. That is the media_player you configure, using android_tv as the platform.
  • Next part is the adb-server. This one is taking the instructions, and sends them to HA or the AndroidTV. Think of it, as the middle-man, who is translating the commands.
  • AndroidTV, a FireTV or whatever.

Every one of these need to be setup on their own. The component in HA is the media_player, that is using the androidtv platform (so there will be sent adb commands). Here you can’t choose, this is the one. :slight_smile:

Now comes the adb server. Here you can choose between two components, one is the already in HA installed python-adb (=adb server written in python), the other one would be your own adb server. As you can use an adb server for a lot of other things, some people already have one running in their environment or they are Hass.io users, where you have an addOn “adb-server”. In principle they all do the same, some fit better to an environment, some don’t. But nonetheless, one of these is necessary. There are no instructions provided, because the setup of an adb server is out of scope for HA. For this, you’d like to check the documentation at the android developer pages: Android Debug Bridge (adb)  |  Android Studio  |  Android Developers If you install an adb server in your environment, there are a wide range of installation methods, including a docker container. Choose, as you see fit. Btw. the Hass.io addOn is a docker container as well.

The configuration for both of these are nearly the same, but the main difference is:
If you want to use an external adb server (doesn’t matter if this is the Hass.io addOn, a seperate adb server install or whatever), you have to add one line to the configuration. That would be adb_server_ip. Optional you can also add adb_server_port. These one (or two lines) make HA choose between “internal” and “external”. That’s all.

Start with the internal approach and use the python-adb. If you experience problems, think about a way to setup an adb server. I’d strongly suggest to use Hass.io in this case.

Thanks Patrick,

Does python vs the stand alone server method respond faster to requests?

Also is this the built in python one from the add-in store?

Thanks.

JR

In my experience, the response time is nearly equal. My TV-stick doesn’t work well with the builtin adb-python and as a hass.io user I’m using the ADB addOn. Doesn’t work well means, I’m loosing the connection from time to time, and most anoying, I can not get the volume buttons to do as they should. With the addOn, no problem at all… :smiley:

And yes, that’s the addOn I’m talking about. It’s the adb-server as hass.io addOn. Install and use it, it is really convenient. :slight_smile:

I noticed my Logitech Harmony connects to Fire TV via Bluetooth, Why can’t we connect using bluetooth instead of adb, It would be much faster commands. Only thing you would miss out on is Power and Volume but you can leave adb running for that.

Hey folks,
dont suppose this also works for FireHD Tablets?
(reason I ask is after a month or so the lock screen re-enables. so wanted to send an ADB command to change this value each month then reboot)

I can’t say for sure, but I’d guess no. The Amazon tablets run on FireOS, not AndroidTV.

But you can use adb commands on FireOS, that’s for sure. What I’d do is check the browser_mod custom component. I’m quite sure, there are settings for this, at least with FullyKioskBrowser installed on the tablet there are.

ok, got it, thanks @paddy0174 I’m using fully kiosk and browser_mod - i wasnt aware i could use ADB for controlling this. I’ll take a look

It might work for Fire tablets (and Android tablets in general). I think someone tried this a while back. The commands used by the Android TV integration – see the next paragraph – to determine the device’s state might not work correctly for a tablet, but I think it would still maintain an ADB connection and enable sending ADB shell commands via the androidtv.adb_command service.

First of all, you would want to use the built-in Android TV integration. The Fire TV integration and custom component are very outdated.

Second, before you can connect to a Fire tablet via ADB over TCP, you need to connect over USB and issue the command adb tcpip 5555. Unfortunately, this step needs to be repeated every time you turn on the tablet. I believe that there are ways around this if your tablet is rooted.

If you want to create an ADB integration for purposes such as this, feel free to use adb_manager_sync.py or adb_manager_async.py as a starting point for a backend library.

Is the lock screen the only thing you would need adb for? If so, did you simply try to disable the lock screen on the tablet?

I found a few hints, that you can do this on Amazon tablets without root. I use LineageOS on my FireHD8 tablets, so this isn’t a problem for my devices. :slight_smile: Btw. since using Lineage I doubled my battery time and the tablet seems to be more “usable”.

Take a look here:

Thanks @paddy0174 i did try this, but noticed after a month or so the lock screen came back.
I disabled app updates and OS updates in case this was being reset during an update, but it still came back.
Dont suppose you have a good guide to putting LineageOS on the tablets? Had a quick look but XDA forums was a bit of a mess.

thanks @JeffLIrion appreciate the info - i’m not deep technical enough to build my own integration sadly. I’m going to try a non FireOS first, and see how that goes :slight_smile:
Also thanks for all your work on the fire/android TV stuff - been using it solidly on my Shield and 2xFireCubes for a while!

replying to myself as found a pretty good guide:

  1. TWRP & Bootlader
  2. LineageOS install

I did it with the guide on XDA, but that’s pretty much the same. :slight_smile: This one here: [UNLOCK][ROOT][TWRP][UNBRICK] Fire HD 8 2018… | Amazon Fire HD 8 and HD 10

I will try the new LOS 16.x as soon as I get some time, but it’s not very high on the priority list, because I’m happy with LOS 14.x as it is. :slight_smile:

It’s a great little tablet with LOS, and for that price definitively a burner. I got it for under 50.-€ each, there’s nothing on the market for that price. :smiley: :smiley: :smiley:

1 Like

Did you have any issues with browser_mod popup cards in lineage 14.1?
Just flashed my tablets (was easier than I thought - even with the latest firmware).
I’ll try 16 to see if that solves the popup card issue

Didn’t try the popups on my tablets (I have a specific view for the tablets), sorry. :slight_smile:
But I have read somewhere, that there are numerous problems with the popups and browser_mod. Maybe you should check brower_mod first (updates or issues on github), before you update the whole OS. :wink: :smiley:

But if you do, please let me know how that worked out, then I can try it myself. :slight_smile:

Hello.

I have 2 FireStick 4K working via ADB connected via hass.io add-on, without too many issues (unavailability).

Still then, I found that if I use the Wireless Display functionality from Windows10 (it is what I tried in both FireSticks), once you cancel this connection, FireStick becomes immediately unavailable.

Don’t know exactly if all needed, but only got it to work properly again (back online) after rebooting the FireStick itself and then HA. Restarting the hass.io add-on didn’t seem to do the trick, for an availability perspective.

Has anyone else experienced this issue or is this something new? Can I provide any more useful info for this to be looked at?

Thanks in advance for the amazing work on this component.