# External integration - Android TV Remote

**URL:** <https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430>\
**Category:** Développement\
**Tags:** integration-externe\
**Created:** [August 2, 2026, 12:21pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430 "2026-08-02T12:21:24Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 2, 2026, 12:21pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/1 "2026-08-02T12:21:24Z")

</div>

I can’t stop now 😂 … I also started an Android TV Remote integration.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/a/0a63e30abedf5923bb356ce40eb549fc30576a77.png)

It allows you to connect and control **Android TV** and **Google TV** televisions and set-top boxes (Nvidia Shield, Chromecast with Google TV, Sony, Xiaomi Mi Box, TCL, etc.) directly on your local network.

* * *

### **Key Features**

- **Native Remote v2 Protocol (TLS)**: Secure connection on ports 6466/6467. **No need to enable developer mode or ADB on the TV**.
- **Easy Pairing with PIN Code** : Guided 2-step procedure directly in the Gladys interface (PIN code displayed on the TV screen).
- **Real-Time Status Feedback** : Instant feedback in Gladys of the on/off status, volume level, and mute status.
- **Multi-TV Management** : Pair and control multiple televisions independently.
- **Full Control** :
  - **Power On/Off** switch
  - **Volume** and **Mute** management
  - **Navigation Buttons (D-Pad)**: Up, Down, Left, Right, OK, Back, Home, Menu
  - **Media Buttons** : Play, Pause, Stop, Previous, Next, Fast Forward, Rewind

- **Application Shortcuts (Optional)**: Direct launch of your favorite apps (_Netflix, YouTube, Prime Video, Disney+, Spotify, Plex, Arte, Molotov, myCANAL_). An option in the settings allows you to disable them if you want to clean up your device card.

* * *

### **Ergonomics & Usage Tips (Scenes)**

> ℹ **Note on Dashboard Display:**  
> Gladys Assistant currently does not have a dedicated «&nbsp;Remote / Media Player&nbsp;» widget with a visual directional pad, so the device appears as the generic «&nbsp;Devices&nbsp;» widget (vertical list of buttons).
> 
> **For smooth daily use, it is highly recommended to use Gladys Scenes:**
> 
> - Create scenes for your key actions (_«&nbsp;Turn on TV&nbsp;»_, _«&nbsp;Movie Mode&nbsp;»_, _«&nbsp;Pause&nbsp;»_, _«&nbsp;Launch Plex&nbsp;»_).
> - Place Scene cards/buttons on your Gladys dashboard to trigger these actions properly in one click.
> - For quick manual navigation in TV menus (browsing the Netflix catalog, typing text), the official _Google TV_ app or the physical remote control remains the ideal companion.

* * *

### **Examples of Gladys Scenes**

- 🍿 **Movie Mode** : Turn on the TV + set volume to 20% + dim the living room lighting.
- 🚪 **Departure / Night Mode** : Automatically turn off the TV when the house switches to away or night mode.
- 🔔 **Automatic Pause** : Pause the TV when a call or connected doorbell is detected.

* * *

### **Installation & Configuration**

1. Add the external integration to your Gladys Assistant instance:

```bash
https://github.com/guim31/gladys-integration-android-tv-remote

```

2. Go to **Integrations \> Android TV Remote** :
  - **Step 1** : Enter the IP address of your TV and launch the action. A 6-digit PIN code is displayed on the TV.
  - **Step 2** : Enter the PIN code and validate.

3. Launch a **Device Search** in the _Discovery_ tab to add the TV to your devices.

* * *

### **Links & Source Code**

- **GitHub Repository** : [guim31/gladys-integration-android-tv-remote](https://github.com/guim31/gladys-integration-android-tv-remote)

I remind you that I am not a professional developer, I trust AI because I don’t have the skills to understand everything. Don’t hesitate to tell me if something is wrong or missing … !

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [August 2, 2026, 12:36pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/2 "2026-08-02T12:36:58Z")

</div>

You can’t stop us now! Welcome to the developer side, and don’t worry in the age of AI, the only thing that matters is motivation 😁 The technique is perfectly handled by Claude 😉

---

<div class="post-metadata">

**Author:** ![jean\_bruder](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean_bruder/32/13_2.png) [@jean\_bruder](https://community.gladysassistant.com/u/jean_bruder)\
**Post date:** [August 6, 2026, 7:53pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/3 "2026-08-06T19:53:10Z")

</div>

Good evening @guim31

Thank you for this integration that I just tested… and for which I am stuck at the moment of entering the IP address:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/3/7/376b0728e847c5b1613bb61a3c6f5cb2684f9a0c.png)

Integration status:

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/e/6/e67a35c3c2565de4a04582ff3aa6a104c3da0814.png)

When I refresh the Gladys integrations page:

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/3/7/3732dd030a11f31d4166c20aca2539351a02f8ee.png)

However, the container is indeed started:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/b/4/b463d46525fdb78448def0f30e077fe4707f99b2.png)

I do not understand, however, why it cannot connect to Gladys via WS://gladys:8082, as the port is indeed available and listening:

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/optimized/3X/2/b/2baa7b93c8056ca163b2d26ce0c5d1517b0923e6_2_690x36.png)

Thanks in advance for your feedback,

Jean

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 6, 2026, 8:14pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/4 "2026-08-06T20:14:35Z")

</div>

Good evening Jean, thank you for the detailed feedback!  
Good news: the integration itself is not the issue.  
Your logs show that the container cannot open the WebSocket to Gladys (connect ETIMEDOUT 172.30.0.2:8082) — it therefore never managed to register, hence the action failure and the toggle that resets.

An ETIMEDOUT (and not «&nbsp;connection refused&nbsp;») means that the packets are discarded along the way: this is typically a network problem between the two containers, not a port issue.

To check:

1. Compare the networks of the two containers:

```auto
docker inspect -f '{{json .NetworkSettings.Networks}}' <gladys-container> | jq
docker inspect -f '{{json .NetworkSettings.Networks}}' gladys-ext-guim31-gladys-integration-android-tv-remote | jq 

```

If they do not share any network (different subnets), that is the cause: Docker isolates the bridges from each other.

1. Test from the integration container:

```auto
docker exec gladys-ext-guim31-gladys-integration-android-tv-remote wget -qO- --timeout=5 http://gladys:8082 || echo KO 

```

1. How did you install Gladys?  
The official installation runs the Gladys container in network\_mode: host — this is the expected configuration for external integrations. According to your capture, your Gladys is running in bridge (IP 172.30.0.2, mapping 8082:8082): if that is the case, switching back to host network should solve the problem.

2. If the networks are fine, check the host/NAS firewall (ufw, firewalld…), which may block inter-container traffic.

Let me know what points 1 and 3 yield — and as soon as the connection goes through, the integration will connect on its own (it retries continuously), no need to restart it.

---

<div class="post-metadata">

**Author:** ![jean\_bruder](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean_bruder/32/13_2.png) [@jean\_bruder](https://community.gladysassistant.com/u/jean_bruder)\
**Post date:** [August 7, 2026, 9:11am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/5 "2026-08-07T09:11:50Z")

</div>

Hello @guim31

Thanks for your reply, here is already the result of your question 1:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/2/a/2ae58f7fdc65a63583bb321d40a017d573442821.png)

Answer to question 2:

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/optimized/3X/2/3/234af797b830e911232d64c738316e93d32bdd01_2_690x41.png)

And to question 3:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/b/4/b493a1d2026b6313040a57ded76f72c2c0a42831.png)

The Gladys container was restarted after being modified so that the network is indeed of type «&nbsp;host&nbsp;».

Despite this, the container still cannot connect to the WS:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/c/8/c87ea815c8fbba7e69b1c96dd9d2e0bdf8394242.png)

I remain at your disposal and thank you in advance for your help,

Have a nice end of the morning,

Jean

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 7, 2026, 9:50am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/6 "2026-08-07T09:50:03Z")

</div>

Thanks, your screenshots confirm everything!

(if you could copy/paste logs next time, it would be easier to exploit than with screenshots 😉 )

Look at your logs: the error is no longer `ETIMEDOUT` but `getaddrinfo ENOTFOUND gladys` — the name `gladys` is no longer resolved.  
This makes sense: before, this name was an alias for the Gladys container on the `gladys-integrations` network; by switching to host network, your Gladys container left this network and the alias disappeared. And the counter («&nbsp;attempt 753&nbsp;») shows that the integration container has not been recreated since your switch: it is still running with the connection configuration generated for the old topology — it is frozen at the creation of the container, a restart does not regenerate it.

So:

1. In Gladys → Integrations → Android TV Remote → **Supervision → «&nbsp;Force update&nbsp;»** (this button recreates the container, that’s what we want). Failing that: uninstall/reinstall the integration.
2. Then check the logs: you should see either the connection being established, or at least a **new target** (no longer `ws://gladys:8082` towards a dead name).
3. If it still fails, two tests to decide:
  - from the container: `docker exec gladys-ext-guim31-gladys-integration-android-tv-remote wget -qO- --timeout=5 http://172.30.0.1:8082` (172.30.0.1 = your host seen from the bridge — this tests reachability by bypassing DNS);
  - on the host: `ss -tlnp | grep 8082` (check that Gladys is listening on all interfaces and not just 127.0.0.1).  
If the first fails while the second is good, it’s your firewall that blocks the bridge → host traffic on 8082 (with ufw: `sudo ufw allow from 172.30.0.0/24 to any port 8082`).

Keep me posted after the «&nbsp;Force update&nbsp;»!

---

<div class="post-metadata">

**Author:** ![jean\_bruder](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean_bruder/32/13_2.png) [@jean\_bruder](https://community.gladysassistant.com/u/jean_bruder)\
**Post date:** [August 7, 2026, 10:42am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/7 "2026-08-07T10:42:11Z")

</div>

Hi again @guim31

Following all your instructions, everything is now working perfectly in terms of integration: TV connected ❤

Thanks to you, I will now play with this integration: if possible, add something to control the TV from the Gladys interface (from my smartphone/tablet in the living room) and define scenes to limit its use during the day for mini-me 😃

Have a great day,

Jean

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 7, 2026, 10:55am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/8 "2026-08-07T10:55:47Z")

</div>

Awesome!

I think that as long as we don’t have a «&nbsp;remote control&nbsp;» type widget, the main thing is the scenes 🙂

---

<div class="post-metadata">

**Author:** ![jean\_bruder](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean_bruder/32/13_2.png) [@jean\_bruder](https://community.gladysassistant.com/u/jean_bruder)\
**Post date:** [August 7, 2026, 11:21am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/9 "2026-08-07T11:21:47Z")

</div>

Hi again @guim31

I’m taking the liberty of providing some more feedback, which may be useful for making corrections and improvements that will benefit everyone 😎

When the TV is turned off, the integration keeps trying to contact it:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/c/f/cf761cad475d84fc1474c004b00471c0657f98ac.png)

Also, if the TV is off and you try to interact with the integration interface, errors appear:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/8/c/8cdee939d0e30f7b1da923c6b50bcb994c32b244.png)

Also, if I add a «&nbsp;TV (Power)&nbsp;» button to a dashboard and try to turn on the TV, the integration again starts a long series of unsuccessful connection attempts…

Have a nice evening,

Jean

---

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [August 15, 2026, 7:51pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/10 "2026-08-15T19:51:58Z")

</div>

Great initiative! I have an Android TV box at home, I’m willing to test.

_Analyzed with the help of Claude (AI), reviewed and approved by me._

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 15, 2026, 8:40pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/11 "2026-08-15T20:40:44Z")

</div>

Hello @jean_bruder!! I’m so sorry, I didn’t see your message!

Thank you so much for these detailed feedbacks, with screenshots — that’s exactly what we need to fix it. 🙏

Good news: the three issues actually came from the same cause, and it’s fixed.

**What was happening** : the library that manages the Android TV protocol restarts the connection every second, indefinitely, as soon as the TV is unreachable. TV turned off = logs flooded with `EHOSTUNREACH` (your first screenshot) and network continuously solicited. As a bonus, it masks connection errors, so pressing « Power » from a dashboard remained stuck for long seconds before failing… and restarting the loop behind.

**What changes** :

- When the TV is turned off, the integration calms down: it retries in the background with a delay that doubles with each failure (5 s, 10 s, 20 s… capped at 2 minutes). As soon as the TV becomes reachable again (turned back on, network wake-up), it is automatically resumed and the rhythm starts over from zero. No more flood of logs.
- Pressing « Power » (or any command) with the TV turned off attempts an immediate connection and fails cleanly in 2-3 seconds with a clear message, instead of staying stuck. A quick reminder: the Remote v2 protocol can only wake up a TV in **network standby** — a TV completely powered off must be turned back on with the remote or via HDMI-CEC.
- Removing the device in Gladys now also cuts its connection and its retries on the integration side.

Regarding the error « when deleting this device » (your second screenshot): this message comes from the core of Gladys, not from the integration. The fix removes the most likely cause, but if you see it again **TV turned on** after the update, don’t hesitate to let me know with the logs — it would then need to be investigated on the Gladys side.

The fix is published: update the integration to version `1.0.5` (or `:latest`) and restart the container.

Have a great day, and thank you again for your feedback 😎

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [August 16, 2026, 9:53pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/12 "2026-08-16T21:53:01Z")

</div>

I can’t find this integration on Gladys 😅  
Did you forget the topic? 🤔😋

No way to do a network search to see Android TVs?  
On LG I use SSDP to search the network

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [August 16, 2026, 10:10pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/13 "2026-08-16T22:10:53Z")

</div>

Couldn’t you have a dynamic select like for LG for the apps to launch?

 ![24560](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/8/f84c1c519618df693081220efa53e1e85e49260b.jpeg)

LG side:

 ![24563](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/c/fc27a41b67ce15490e936d4ff2b1acdd4f7d0c26.jpeg)

Otherwise, no push on the apps so we can’t launch them and the rest I’ll do my tests as I go along ✌

My mibox is running and the power is at 0 in the interface ^^.  
Can’t we get the status? Maybe a simple ping? 🤔

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 17, 2026, 9:05am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/14 "2026-08-17T09:05:10Z")

</div>

Absolutely! I had forgotten the topic ^^ thanks!

I’ll check for your return

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 17, 2026, 11:52am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/15 "2026-08-17T11:52:16Z")

</div>

Re @spenceur ,

The three points are addressed, it’s available in 1.1.0 🙂

**The application selector** : The buttons per application are replaced by a **single « Application » selector** , usable from the dashboard and the scenes. And that also explains your « no push »: the old buttons were declared in a category that Gladys treats as a _sensor_ (like a Zigbee button that _sends_ clicks), so nothing was clickable — the selector fixes that. The current app even displays as selected when the TV reports it. After the update: restart a device search and click « Update » on your MiBox to get the selector.

**Power at 0 for turned-on MiBox** : The MiBox never announces its power state, unlike TVs. I implemented your ping idea: an unreachable TV is marked as off, and a device that accepts the connection without announcing its state is considered on after 5 s. Your MiBox should therefore go to 1 as soon as the next connection.

**Cherry on top** : If you provide the MAC address of your MiBox (new action « Provide the MAC address of a paired TV »), « Turn on » will send a **Wake-on-LAN** when it is completely off.

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [August 17, 2026, 5:02pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/16 "2026-08-17T17:02:14Z")

</div>

Some feedback.  
I had to uninstall the integration and reinstall it to get my TV back (I had no update proposal.

Great for app selection but I have apps in the list that I don’t have and others that are not present

 ![24597](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/6/4/649a3aa60a2a40d3c24ee9bde94c9d24c6bc6d41.jpeg)  
 ![24602](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/b/4be1b2485d8fa4458ffeb089b09182719c0951b0.jpeg)

Other info, WOL doesn’t work (what address do you send to? To the TV? Or to x.x.x.255?):

The logs with a couple of weird things

````auto
Gladys Assistant
Android TV Remote
Devices
Discovery
Configuration
Supervision
Logs
Logs
[2026-08-17T16:47:23.419Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:8455)
[2026-08-17T16:47:23.456Z] [INFO] [AndroidTV] Integration started
[2026-08-17T16:47:43.623Z] [INFO] [AndroidTV] Running action: start_pairing
[2026-08-17T16:47:43.624Z] [INFO] [AndroidTV] Initiating pairing sequence with TV at 192.168.1.128...
Start Pairing Connect
Error: connect ECONNREFUSED 192.168.1.128:6467
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1611:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '192.168.1.128',
  port: 6467
}
192.168.1.128 Pairing Connection closed true
false
[2026-08-17T16:50:36.847Z] [INFO] [AndroidTV] Running action: start_pairing
[2026-08-17T16:50:36.848Z] [INFO] [AndroidTV] Initiating pairing sequence with TV at 192.168.1.57...
Start Pairing Connect
192.168.1.57 Pairing connected
192.168.1.57 Pairing secure connected 
Receive : 7,8,2,16,200,1,90,0
Receive : {"protocolVersion":2,"status":"STATUS_OK","pairingRequestAck":{}}
Receive : 16,8,2,16,200,1,162,1,8,18,4,8,3,16,6,24,1
Receive : {"protocolVersion":2,"status":"STATUS_OK","pairingOption":{"outputEncodings":[{"type":"ENCODING_TYPE_HEXADECIMAL","symbolLength":6}],"preferredRole":"ROLE_TYPE_INPUT"}}
Receive : 8,8,2,16,200,1,250,1,0
Receive : {"protocolVersion":2,"status":"STATUS_OK","pairingConfigurationAck":{}}
[2026-08-17T16:50:37.882Z] [INFO] [AndroidTV] PIN code displayed on the screen of the TV at 192.168.1.57.
[2026-08-17T16:50:59.437Z] [INFO] [AndroidTV] Running action: submit_pin
[2026-08-17T16:50:59.438Z] [INFO] [AndroidTV] Submitting PIN code to TV at 192.168.1.57...
Sending code : 1EAF7B
Receive : 42,8,2,16,200,1,202,2,34,10,32,30,35,42,82,32,208,136,221,246,38,107,114,167,70,149,177,3,204,230,48,75,245,33,202,214,129,211,176,30,183,34,224
Receive : {"protocolVersion":2,"status":"STATUS_OK","pairingSecretAck":{"secret":"HiMqUiDQiN32Jmtyp0aVsQPM5jBL9SHK1oHTsB63IuA="}}
192.168.1.57 Paired!
192.168.1.57 Pairing Connection closed false
Start Remote Connect
192.168.1.57 Remote secureConnect
192.168.1.57 Receive : {"remoteConfigure":{"code1":639,"deviceInfo":{"model":"MIBOX4","vendor":"Xiaomi","unknown1":1,"unknown2":"9","packageName":"com.google.android.tv.remote.service","appVersion":"6.9.906821247"}}}
Create Remote {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
Sending {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
[2026-08-17T16:51:00.813Z] [INFO] [AndroidTV] Remote session ready with 192.168.1.57
[2026-08-17T16:51:00.816Z] [INFO] [AndroidTV] Pairing with 192.168.1.57 succeeded, certificate obtained.
192.168.1.57 Receive : {"remoteSetActive":{}}
Create Remote {"remoteSetActive":{"active":622}}
Sending {"remoteSetActive":{"active":622}}
192.168.1.57 Receive : {"remoteStart":{"started":true}}
192.168.1.57 Receive : {"remoteSetVolumeLevel":{"unknown1":11,"unknown2":9,"playerModel":"MIBOX4","unknown4":1}}
192.168.1.57 Receive : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.google.android.tvlauncher"}}}
[2026-08-17T16:51:29.269Z] [INFO] [AndroidTV] Running action: set_mac
[2026-08-17T16:51:37.047Z] [INFO] [AndroidTV] Running action: test_connection
[2026-08-17T16:51:57.806Z] [INFO] [AndroidTV] Scan requested, publishing discovered devices
[2026-08-17T16:51:57.822Z] [INFO] [AndroidTV] Publishing 1 paired TV(s).
[2026-08-17T16:53:36.787Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = plex
[2026-08-17T16:53:36.788Z] [INFO] [AndroidTV] Opening app plex:// on 192.168.1.57
Create Remote {"remoteAppLinkLaunchRequest":{"appLink":"plex://"}}
Sending {"remoteAppLinkLaunchRequest":{"appLink":"plex://"}}
192.168.1.57 Receive : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.plexapp.android"}}}
[2026-08-17T16:53:47.593Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = spotify
[2026-08-17T16:53:47.593Z] [INFO] [AndroidTV] Opening app spotify:// on 192.168.1.57
Create Remote {"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}
Sending {"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}
192.168.1.57 Receive : {"remoteError":{"value":true,"message":{"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}}}
[2026-08-17T16:53:47.784Z] [ERROR] [AndroidTV] Protocol error reported by 192.168.1.57: RemoteError {
  value: true,
  message: RemoteMessage {
    remoteAppLinkLaunchRequest: RemoteAppLinkLaunchRequest { appLink: 'spotify://' }
  }
}
192.168.1.57 Remote Connection closed false
[2026-08-17T16:53:47.788Z] [WARN] [AndroidTV] Connection closed for 192.168.1.57
[2026-08-17T16:53:52.792Z] [INFO] [AndroidTV] Connecting to 192.168.1.57..
```.
Start Remote Connect
192.168.1.57 Remote secureConnect
192.168.1.57 Receive : {"remoteConfigure":{"code1":639,"deviceInfo":{"model":"MIBOX4","vendor":"Xiaomi","unknown1":1,"unknown2":"9","packageName":"com.google.android.tv.remote.service","appVersion":"6.9.906821247"}}}
Create Remote {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
Sending {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
[2026-08-17T16:53:53.968Z] [INFO] [AndroidTV] Remote session ready with 192.168.1.57
192.168.1.57 Receive : {"remoteSetActive":{}}
Create Remote {"remoteSetActive":{"active":622}}
Sending {"remoteSetActive":{"active":622}}
192.168.1.57 Receive : {"remoteStart":{"started":true}}
192.168.1.57 Receive : {"remoteSetVolumeLevel":{"unknown1":11,"unknown2":9,"playerModel":"MIBOX4","unknown4":1}}
192.168.1.57 Receive : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.plexapp.android"}}}
[2026-08-17T16:53:56.394Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = netflix
[2026-08-17T16:53:56.394Z] [INFO] [AndroidTV] Opening app https://www.netflix.com/title on 192.168.1.57
Create Remote {"remoteAppLinkLaunchRequest":{"appLink":"https://www.netflix.com/title"}}
Sending {"remoteAppLinkLaunchRequest":{"appLink":"https://www.netflix.com/title"}}
192.168.1.57 Receive : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.netflix.ninja"}}}
[2026-08-17T16:54:07.498Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:key:home = 1
[2026-08-17T16:54:07.499Z] [INFO] [AndroidTV] Sending keycode 3 (home) to 192.168.1.57
Create Remote {"remoteKeyInject":{"keyCode":3,"direction":3}}
Sending {"remoteKeyInject":{"keyCode":"KEYCODE_HOME","direction":"SHORT"}}
192.168.1.57 Receive : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.google.android.tvlauncher"}}}
[2026-08-17T16:55:27.370Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 0
[2026-08-17T16:55:27.370Z] [INFO] [AndroidTV] Sending keycode 26 (power) to 192.168.1.57
Create Remote {"remoteKeyInject":{"keyCode":26,"direction":3}}
Sending {"remoteKeyInject":{"keyCode":"KEYCODE_POWER","direction":"SHORT"}}
192.168.1.57 Receive : {"remoteStart":{"started":true}}
192.168.1.57 Receive : {"remoteStart":{"started":false}}
[2026-08-17T16:55:42.567Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = disneyplus
[2026-08-17T16:55:42.567Z] [INFO] [AndroidTV] Opening app https://www.disneyplus.com on 192.168.1.57
Create Remote {"remoteAppLinkLaunchRequest":{"appLink":"https://www.disneyplus.com"}}
Sending {"remoteAppLinkLaunchRequest":{"appLink":"https://www.disneyplus.com"}}
[2026-08-17T16:55:50.170Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 1
[2026-08-17T16:55:50.170Z] [INFO] [AndroidTV] Sending keycode 26 (power) to 192.168.1.57
Create Remote {"remoteKeyInject":{"keyCode":26,"direction":3}}
Sending {"remoteKeyInject":{"keyCode":"KEYCODE_POWER","direction":"SHORT"}}
timeout
192.168.1.57 Remote Connection closed false
[2026-08-17T16:56:00.179Z] [WARN] [AndroidTV] Connection closed for 192.168.1.57
[2026-08-17T16:56:05.181Z] [INFO] [AndroidTV] Connecting to 192.168.1.57...
Start Remote Connect
[2026-08-17T16:56:08.408Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 0
[2026-08-17T16:56:08.409Z] [INFO] [AndroidTV] No live session with 192.168.1.57, trying to reconnect...
[2026-08-17T16:56:08.409Z] [INFO] [AndroidTV] Connecting to 192.168.1.57...
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] Set value <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 1
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] No live session with 192.168.1.57, trying to reconnect...
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] Connecting to 192.168.1.57...
Start Remote Connect
192.168.1.57 Remote Connection closed true
[2026-08-17T16:56:14.137Z] [INFO] [AndroidTV] Waking the TV at 192.168.1.57 with a magic packet to 24:18:c6:5a:1b:7e...
192.168.1.57 Error: connect EHOSTUNREACH 192.168.1.57:6466
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1611:16) {
  errno: -113,
  code: 'EHOSTUNREACH',
  syscall: 'connect',
  address: '192.168.1.57',
  port: 6466
}
EHOSTUNREACH
[2026-08-17T16:56:19.218Z] [INFO] [AndroidTV] Connecting to 192.168.1.57...

````

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 24, 2026, 8:47am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/17 "2026-08-24T08:47:35Z")

</div>

**🚀 Android TV Remote — version 1.2.0**

Thanks @spenceur for the detailed feedback and logs, the three issues are fixed 🙏

**🐛 Fixed**

- **Launching an app not installed on the TV** : The TV refused to open (`remoteError`) and cut the connection, but Gladys displayed a success. The error is now clearly reported (« application probably not installed »).
- **Wake-on-LAN** : The magic packet was only sent to `255.255.255.255`, which many networks do not deliver. It is now sent to the **subnet broadcast** of the TV (e.g., `192.168.1.255`), then as a fallback to `255.255.255.255` and the TV’s IP.
- **Update not offered** : Issue with publishing the image fixed, future versions will arrive normally.

**✨ New**

- **«&nbsp;Hide Apps&nbsp;»** : Removes apps that your TV doesn’t have from the selector. Ex: `Spotify, Arte`
- **«&nbsp;Custom Apps&nbsp;»** : Add your own, in the form `Name = link`, separated by `;`. Ex: `France TV = https://www.france.tv ; Aptoide TV = aptoidetv://`  
→ An entry named like a built-in app **replaces its link** (useful if the default link doesn’t work on your model).
- Enhanced built-in list: **Twitch, Crunchyroll, YouTube Music, Apple TV**.

**⚠ After the update**

Set the two new fields in the configuration, then run a **device search** and click **Update** on each TV to retrieve the selector.

Also, enable **Wake-on-LAN / Network Wake-up** in your TV settings (on Wi-Fi: « Wake-on-WLAN »).

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [August 26, 2026, 11:18am UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/18 "2026-08-26T11:18:22Z")

</div>

I’ll take a look at that, thanks again 🙂 !

Just some user feedback for the config.

For the 3 following actions, add a selector so the user can select their box/TV.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/5/d/5d444d920fa9fef167914723cbb26636e7038ddc.png)

Check the LG part if needed:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/d/0d6c4684bcc791ffbc00842e052dc187cdbb90b0.png)

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [August 27, 2026, 9:29pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/19 "2026-08-27T21:29:44Z")

</div>

I’ll test this tonight on my GoogleTV Chromecast, it should work, right?

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [August 27, 2026, 9:35pm UTC](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430/20 "2026-08-27T21:35:18Z")

</div>

I certainly hope so! Don’t hesitate to tell me

[Next page](https://community.gladysassistant.com/t/integration-externe-android-tv-remote/10430.md?page=2)
