Externe Integration - Android TV Fernbedienung

Ich kann nicht mehr aufhören :joy: … ich habe mich auch an eine Integration für die Android TV Fernbedienung gemacht.

Sie ermöglicht die Verbindung und Steuerung von Android TV- und Google TV-Fernsehern und -Boxen (Nvidia Shield, Chromecast mit Google TV, Sony, Xiaomi Mi Box, TCL, usw.) direkt in Ihrem lokalen Netzwerk.


Hauptfunktionen

  • Natives Remote v2-Protokoll (TLS): Sichere Verbindung auf den Ports 6466/6467. Keine Aktivierung des Entwicklermodus oder ADB am TV erforderlich.
  • Einfaches Pairing per PIN-Code: 2-Schritt-Anleitung direkt in der Gladys-Oberfläche (PIN-Code wird auf dem TV-Bildschirm angezeigt).
  • Echtzeit-Rückmeldung: Sofortige Rückmeldung im Gladys über Ein-/Ausschaltzustand, Lautstärkepegel und Stummschaltstatus.
  • Multi-TV-Verwaltung: Pairen und steuern Sie mehrere Fernseher unabhängig voneinander.
  • Vollständige Steuerung:
    • Ein-/Ausschalter Ein / Aus
    • Lautstärke- und Stummschaltsteuerung
    • Navigations-Tasten (D-Pad): Hoch, Runter, Links, Rechts, OK, Zurück, Start, Menü
    • Medien-Tasten: Abspielen, Pause, Stop, Vorheriger, Nächster, Vorwärts, Rückwärts
  • App-Kurzverknüpfungen (optional): Direkter Start Ihrer Lieblings-Apps (Netflix, YouTube, Prime Video, Disney+, Spotify, Plex, Arte, Molotov, myCANAL). Eine Option in den Einstellungen ermöglicht das Deaktivieren, falls Sie Ihr Geräte-Dashboard aufräumen möchten.

Ergonomie & Nutzungsempfehlung (Szenarien)

:information_source: Hinweis zur Anzeige im Dashboard:
Gladys Assistant verfügt derzeit nicht über ein dediziertes Widget „Fernbedienung / Medienplayer“ mit visueller Tastatur, sodass das Gerät als generisches „Geräte“-Widget (vertikale Liste von Schaltflächen) angezeigt wird.

Für eine flüssige tägliche Nutzung wird dringend empfohlen, die Gladys-Szenarien zu nutzen:

  • Erstellen Sie Szenarien für Ihre wichtigsten Aktionen (« TV einschalten », « Kino-Modus », « Pause », « Plex starten »).
  • Platzieren Sie Szenarien-Karten/-Schaltflächen auf Ihrem Gladys-Dashboard, um diese Aktionen sauber mit einem Klick auszulösen.
  • Für schnelle manuelle Navigation in den TV-Menüs (Netflix-Katalog durchsuchen, Text eingeben) bleibt die offizielle Google TV-App oder die physische Fernbedienung der ideale Begleiter.

Beispiele für Gladys-Szenarien

  • :popcorn: Kino-Modus: TV einschalten + Lautstärke auf 20% einstellen + Wohnzimmerbeleuchtung dimmen.
  • :door: Abfahrt / Nachtmodus: TV automatisch ausschalten, wenn das Haus auf Abwesenheits- oder Nachtmodus wechselt.
  • :bell: Automatische Pause: TV bei Erkennung eines Anrufs oder der Smart Door Bell pausieren.

Installation & Konfiguration

  1. Fügen Sie die externe Integration in Ihrer Gladys Assistant-Instanz hinzu:
    https://github.com/guim31/gladys-integration-android-tv-remote
    
  2. Gehen Sie zu Integrationen > Android TV Remote:
    • Schritt 1: Geben Sie die IP-Adresse Ihres TVs ein und starten Sie die Aktion. Ein 6-stelliger PIN-Code wird auf dem TV angezeigt.
    • Schritt 2: Geben Sie den PIN-Code ein und bestätigen Sie.
  3. Starten Sie eine Gerätesuche im Entdeckung-Tab, um den TV zu Ihren Geräten hinzuzufügen.

Links & Quellcode

Ich erinnere daran, dass ich kein Berufs-Entwickler bin, ich vertraue der KI, weil ich nicht die Kompetenzen habe, alles zu verstehen. Zögern Sie nicht, mir zu sagen, wenn etwas nicht stimmt / fehlt … !

Man kann dich nicht mehr aufhalten! Willkommen auf der Entwicklerseite, und mach dir keine Sorgen: In der Ära der KI zählt nur die Motivation :grin: Die Technik wird perfekt von Claude gehandhabt :wink:

Guten Abend @guim31

Vielen Dank für diese Integration, die ich gerade getestet habe … und bei der ich beim Eingeben der IP-Adresse stecken bleibe:

Status der Integration:

image

Wenn ich die Seite der Gladys-Integrationen aktualisiere:

image

Der Container ist jedoch tatsächlich gestartet:

Ich verstehe jedoch nicht, warum er sich nicht mit Gladys über WS://gladys:8082 verbinden kann, da der Port verfügbar und in Betrieb ist:

image

Vielen Dank im Voraus für deine Rückmeldung,

Jean

Guten Abend Jean, vielen Dank für das detaillierte Feedback!
Gute Nachricht: Das Problem liegt nicht in der Integration selbst.
Deine Logs zeigen, dass der Container den WebSocket zu Gladys nicht öffnen kann (connect ETIMEDOUT 172.30.0.2:8082) — er konnte sich also nie registrieren, daher der Fehler der Aktion und der Toggle, der zurückfällt.

Ein ETIMEDOUT (und nicht „connection refused“) bedeutet, dass die Pakete unterwegs verworfen werden: Das ist typischerweise ein Netzwerkproblem zwischen den beiden Containern, nicht ein Port-Problem.

Zum Überprüfen:

  1. Vergleiche die Netzwerke der beiden Container:
docker inspect -f '{{json .NetworkSettings.Networks}}' <conteneur-gladys> | jq
docker inspect -f '{{json .NetworkSettings.Networks}}' gladys-ext-guim31-gladys-integration-android-tv-remote | jq 

Falls sie kein Netzwerk teilen (unterschiedliche Subnetze), ist das die Ursache: Docker isoliert die Bridges voneinander.

  1. Teste vom Integrations-Container aus:
docker exec gladys-ext-guim31-gladys-integration-android-tv-remote wget -qO- --timeout=5 http://gladys:8082 || echo KO 
  1. Wie hast du Gladys installiert?
    Die offizielle Installation läuft den Gladys-Container im network_mode: host — das ist die erwartete Konfiguration für externe Integrationen. Laut deinem Screenshot läuft dein Gladys im Bridge-Modus (IP 172.30.0.2, Mapping 8082:8082): Falls das der Fall ist, sollte das Zurücksetzen auf Host-Netzwerk das Problem beheben.

  2. Falls die Netzwerke in Ordnung sind, prüfe die Firewall des Hosts/NAS (ufw, firewalld…), die den Verkehr zwischen den Containern blockieren könnte.

Lass mich wissen, was Punkte 1 und 3 ergeben — und sobald die Verbindung steht, wird sich die Integration von selbst verbinden (sie versucht es kontinuierlich), es ist nicht nötig, sie neu zu starten.

Hallo @guim31

Vielen Dank für deine Antwort, hier schon mal das Ergebnis zu deiner Frage 1:

Antwort zu Frage 2:

image

Und zu Frage 3:

Der Gladys-Container wurde neu gestartet, nachdem er so modifiziert wurde, dass das Netzwerk vom Typ „host“ ist.

Trotzdem kann sich der Container immer noch nicht mit dem WS verbinden:

Ich bin weiter für dich da und danke dir schon mal für deine Hilfe,

Schönen Rest des Vormittags,

Jean

Danke, deine Screenshots bestätigen alles!

(falls du beim nächsten Mal die Logs kopieren und einfügen könntest, wäre das einfacher zu nutzen als mit Screenshots :wink: )

Schau dir deine Logs an: Der Fehler ist nicht mehr ETIMEDOUT, sondern getaddrinfo ENOTFOUND gladys — der Name gladys wird nicht mehr aufgelöst.
Das ist logisch: Früher war dieser Name ein Alias des Gladys-Containers im Netzwerk gladys-integrations; beim Wechsel auf das Host-Netzwerk hat dein Gladys-Container dieses Netzwerk verlassen und der Alias ist verschwunden. Und der Zähler (« attempt 753 ») zeigt, dass der Integrationscontainer seit deinem Wechsel nicht neu erstellt wurde: Er läuft immer noch mit der Verbindungs-Konfiguration, die für die alte Topologie generiert wurde — sie ist beim Erstellen des Containers festgelegt und wird durch ein Neustarten nicht neu generiert.

Also:

  1. In Gladys → Integrationen → Android TV Remote → Überwachung → « Update erzwingen » (dieser Button erstellt den Container neu, das ist was wir wollen). Falls nicht: Deinstalliere/Installiere die Integration neu.
  2. Schau dir dann die Logs an: Du solltest entweder die Verbindung hergestellt sehen oder zumindest ein neues Ziel (nicht mehr ws://gladys:8082 zu einem toten Namen).
  3. Falls es immer noch schiefgeht, zwei Tests um das zu klären:
    • vom Container aus: docker exec gladys-ext-guim31-gladys-integration-android-tv-remote wget -qO- --timeout=5 http://172.30.0.1:8082 (172.30.0.1 = dein Host, gesehen vom Bridge — das testet die Erreichbarkeit, indem es den DNS umgeht);
    • auf dem Host: ss -tlnp | grep 8082 (überprüfen, ob Gladys auf allen Schnittstellen hört und nicht nur auf 127.0.0.1).
      Falls der erste Test fehlschlägt, während der zweite erfolgreich ist, blockiert dein Firewall den Verkehr Bridge → Host auf Port 8082 (mit ufw: sudo ufw allow from 172.30.0.0/24 to any port 8082).

Halte mich nach dem « Update erzwingen » auf dem Laufenden!

Re-hallo @guim31

Nach deinen Anweisungen funktioniert die Integration jetzt perfekt: TV verbunden :heart:

Danke dir, jetzt werde ich mit dieser Integration spielen: Falls möglich, etwas hinzufügen, um die TV über die Gladys-Oberfläche (von meinem Smartphone/Tablet im Wohnzimmer) zu steuern und Szenen zu definieren, um die Nutzung tagsüber für Mini-Mich zu begrenzen :smiley:

Schönen Tag noch,

Jean

Genial!

Ich denke, solange wir kein Widget vom Typ « Fernbedienung » haben, läuft das Wesentliche über die Szenen :slight_smile:

Re-bonjour @guim31

Ich erlaube mir noch einige Rückmeldungen, die zu allen nützlichen Zwecken dienen, um Korrekturen und Entwicklungen zu ermöglichen, die allen zugutekommen :smiling_face_with_sunglasses:

Wenn der Fernseher ausgeschaltet ist, versucht die Integration, ihn ständig zu kontaktieren:

Außerdem, wenn der Fernseher ausgeschaltet ist und man versucht, mit der Integrationsoberfläche zu interagieren, erscheinen Fehler:

Außerdem, wenn ich einen „TV (Power)“-Button zu einem Dashboard hinzufüge und versuche, den Fernseher einzuschalten, startet die Integration erneut einen langen Versuch, sich erfolglos zu verbinden …

Schönen Abend noch,

Jean

Super Initiative! Ich habe eine Android-TV-Box zu Hause, bin bereit zum Testen.

Mit Hilfe von Claude (KI) analysiert, von mir überprüft und freigegeben.

Hallo @jean_bruder!! Entschuldigung, ich hatte deine Nachricht nicht gesehen!

Vielen Dank für das detaillierte Feedback, inklusive Screenshots — genau das, was wir brauchen, um es zu beheben. :folded_hands:

Gute Nachricht: Die drei Probleme hatten tatsächlich eine gemeinsame Ursache, und das ist jetzt behoben.

Was passiert ist: Die Bibliothek, die das Android-TV-Protokoll verwaltet, startet die Verbindung alle Sekunden neu, unendlich, sobald das TV-Gerät nicht erreichbar ist. TV ausgeschaltet = Logs überflutet mit EHOSTUNREACH (dein erster Screenshot) und Netzwerk wird kontinuierlich belastet. Als Bonus werden Verbindungsfehler maskiert, daher blieb ein Druck auf „Power“ vom Dashboard lange blockiert, bevor er fehlschlug… und die Schleife neu startete.

Was sich ändert:

  • Bei ausgeschaltetem TV wird die Integration ruhiger: Sie versucht im Hintergrund mit einem sich verdoppelnden Zeitintervall nach jedem Fehler (5 s, 10 s, 20 s… gedeckelt auf 2 Minuten). Sobald das TV-Gerät wieder erreichbar ist (wieder eingeschaltet, Rückkehr aus dem Netzwerk-Standby), wird es automatisch wieder aufgenommen und der Rhythmus beginnt von vorne. Keine Log-Flut mehr.
  • Ein Druck auf „Power“ (oder jeder Befehl) bei ausgeschaltetem TV versucht eine sofortige Verbindung und scheitert sauber in 2-3 Sekunden mit einer klaren Nachricht, statt blockiert zu bleiben. Kleine Erinnerung: Das Remote v2-Protokoll kann nur ein TV-Gerät im Netzwerk-Standby aufwecken — ein komplett ausgeschaltetes TV-Gerät muss mit der Fernbedienung oder über HDMI-CEC eingeschaltet werden.
  • Das Entfernen des Geräts in Gladys trennt nun auch die Verbindung und die erneuten Versuche auf Integrationsebene.

Was das Fehler „beim Löschen dieses Geräts“ (dein zweiter Screenshot) angeht: Diese Meldung kommt vom Kern von Gladys, nicht von der Integration. Der Fix beseitigt die wahrscheinlichste Ursache, aber wenn du sie bei eingeschaltetem TV nach dem Update wieder siehst, lass es mich bitte mit den Logs wissen — dann müsste man bei Gladys genauer nachschauen.

Der Fix ist veröffentlicht: Aktualisiere die Integration auf Version 1.0.5 (oder :latest) und starte den Container neu.

Schönen Tag noch, und nochmals danke für dein Feedback :smiling_face_with_sunglasses:

Ich finde diese Integration nicht auf Gladys :sweat_smile:
Hast du das Thema vergessen? :thinking::face_savoring_food:

Gibt es keine Möglichkeit, eine Netzwerksuche durchzuführen, um Android-TV-Geräte zu finden?
Bei LG verwende ich SSDP, um im Netzwerk zu suchen

Könnte man nicht auch einen dynamischen Selector wie bei LG für die zu startenden Anwendungen haben?

Bei LG:

Ansonsten gibt es keinen Push für die Anwendungen, also kann man sie nicht starten. Den Rest werde ich nach und nach testen :victory_hand:

Meine MiBox läuft und der Power-Status ist auf 0 im Interface ^^.
Können wir den Status nicht irgendwie abrufen? Vielleicht einfach ein Ping? :thinking:

Genau! Ich hatte das Thema vergessen ^^ Danke!

Ich schaue für deine Rückkehr

Re @spenceur ,

Die drei Punkte sind behandelt, es ist in der Version 1.1.0 verfügbar :slightly_smiling_face:

Die Anwendungsauswahl: Die Schaltflächen pro Anwendung wurden durch einen einzigen „Anwendung“-Selector ersetzt, der vom Dashboard und den Szenen aus nutzbar ist. Das erklärt auch dein „kein Push“: Die alten Schaltflächen waren in einer Kategorie deklariert, die Gladys wie einen Sensor behandelt (wie ein Zigbee-Knopf, der Klicks sendet), daher war nichts anklickbar — der Selector behebt das. Die aktuelle Anwendung wird sogar als Auswahl angezeigt, wenn das TV-Gerät sie zurückmeldet. Nach dem Update: Starte eine erneute Gerätesuche und klicke auf „Aktualisieren“ an deiner MiBox, um den Selector zu erhalten.

Power auf 0 bei eingeschalteter MiBox: Die MiBox meldet nie ihren Stromzustand, im Gegensatz zu TV-Geräten. Ich habe deine Idee des Pings umgesetzt: Ein nicht erreichbares TV-Gerät wird als ausgeschaltet markiert, und ein Gerät, das die Verbindung akzeptiert, ohne seinen Zustand zu melden, wird nach 5 Sekunden als eingeschaltet betrachtet. Deine MiBox sollte daher beim nächsten Verbindungsaufbau auf 1 springen.

Das Sahnehäubchen: Wenn du die MAC-Adresse deiner MiBox angibst (neue Aktion „MAC-Adresse eines gepaarten TV-Geräts angeben“), sendet „Einschalten“ ein Wake-on-LAN, wenn sie vollständig ausgeschaltet ist.

Einige Rückmeldungen.
Ich musste die Integration deinstallieren und neu installieren, um meinen Fernseher wieder zu haben (es gab keinen Update-Vorschlag).

Super für die App-Auswahl, aber ich habe Apps in der Liste, die ich nicht habe, und andere, die nicht vorhanden sind


Weitere Info: WOL funktioniert nicht (an welche Adresse wird gesendet? An den Fernseher? Oder an x.x.x.255?):Die Logs mit ein paar komischen Sachen

Gladys Assistant
Android TV Remote
Geräte
Entdeckung
Konfiguration
Überwachung
Protokolle
Protokolle
[2026-08-17T16:47:23.419Z] [INFO] [gladys-sdk] verbunden mit Gladys (http://172.30.0.1:8455)
[2026-08-17T16:47:23.456Z] [INFO] [AndroidTV] Integration gestartet
[2026-08-17T16:47:43.623Z] [INFO] [AndroidTV] Aktion ausgeführt: start_pairing
[2026-08-17T16:47:43.624Z] [INFO] [AndroidTV] Pairing-Sequenz mit TV bei 192.168.1.128 gestartet...
Start Pairing Connect
Fehler: 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-Verbindung geschlossen true
false
[2026-08-17T16:50:36.847Z] [INFO] [AndroidTV] Aktion ausgeführt: start_pairing
[2026-08-17T16:50:36.848Z] [INFO] [AndroidTV] Pairing-Sequenz mit TV bei 192.168.1.57 gestartet...
Start Pairing Connect
192.168.1.57 Pairing verbunden
192.168.1.57 Pairing sicher verbunden 
Empfangen : 7,8,2,16,200,1,90,0
Empfangen : {"protocolVersion":2,"status":"STATUS_OK","pairingRequestAck":{}}
Empfangen : 16,8,2,16,200,1,162,1,8,18,4,8,3,16,6,24,1
Empfangen : {"protocolVersion":2,"status":"STATUS_OK","pairingOption":{"outputEncodings":[{"type":"ENCODING_TYPE_HEXADECIMAL","symbolLength":6}],"preferredRole":"ROLE_TYPE_INPUT"}}
Empfangen : 8,8,2,16,200,1,250,1,0
Empfangen : {"protocolVersion":2,"status":"STATUS_OK","pairingConfigurationAck":{}}
[2026-08-17T16:50:37.882Z] [INFO] [AndroidTV] PIN-Code wird auf dem Bildschirm des TVs bei 192.168.1.57 angezeigt.
[2026-08-17T16:50:59.437Z] [INFO] [AndroidTV] Aktion ausgeführt: submit_pin
[2026-08-17T16:50:59.438Z] [INFO] [AndroidTV] PIN-Code wird an TV bei 192.168.1.57 gesendet...
Senden Code :  1EAF7B
Empfangen : 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
Empfangen : {"protocolVersion":2,"status":"STATUS_OK","pairingSecretAck":{"secret":"HiMqUiDQiN32Jmtyp0aVsQPM5jBL9SHK1oHTsB63IuA="}}
192.168.1.57 gepairt!
192.168.1.57 Pairing-Verbindung geschlossen false
Start Remote Connect
192.168.1.57 Remote secureConnect
192.168.1.57 Empfangen : {"remoteConfigure":{"code1":639,"deviceInfo":{"model":"MIBOX4","vendor":"Xiaomi","unknown1":1,"unknown2":"9","packageName":"com.google.android.tv.remote.service","appVersion":"6.9.906821247"}}}
Erstelle Remote {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
Senden {"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-Sitzung mit 192.168.1.57 bereit
[2026-08-17T16:51:00.816Z] [INFO] [AndroidTV] Pairing mit 192.168.1.57 erfolgreich, Zertifikat erhalten.
192.168.1.57 Empfangen : {"remoteSetActive":{}}
Erstelle Remote {"remoteSetActive":{"active":622}}
Senden {"remoteSetActive":{"active":622}}
192.168.1.57 Empfangen : {"remoteStart":{"started":true}}
192.168.1.57 Empfangen : {"remoteSetVolumeLevel":{"unknown1":11,"unknown2":9,"playerModel":"MIBOX4","unknown4":1}}
192.168.1.57 Empfangen : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.google.android.tvlauncher"}}}
[2026-08-17T16:51:29.269Z] [INFO] [AndroidTV] Aktion ausgeführt: set_mac
[2026-08-17T16:51:37.047Z] [INFO] [AndroidTV] Aktion ausgeführt: test_connection
[2026-08-17T16:51:57.806Z] [INFO] [AndroidTV] Scan angefordert, entdeckte Geräte werden veröffentlicht
[2026-08-17T16:51:57.822Z] [INFO] [AndroidTV] 1 gepaarter TV(s) wird veröffentlicht.
[2026-08-17T16:53:36.787Z] [INFO] [AndroidTV] Wert gesetzt <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = plex
[2026-08-17T16:53:36.788Z] [INFO] [AndroidTV] App plex:// auf 192.168.1.57 wird geöffnet
Erstelle Remote {"remoteAppLinkLaunchRequest":{"appLink":"plex://"}}
Senden {"remoteAppLinkLaunchRequest":{"appLink":"plex://"}}
192.168.1.57 Empfangen : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.plexapp.android"}}}
[2026-08-17T16:53:47.593Z] [INFO] [AndroidTV] Wert gesetzt <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = spotify
[2026-08-17T16:53:47.593Z] [INFO] [AndroidTV] App spotify:// auf 192.168.1.57 wird geöffnet
Erstelle Remote {"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}
Senden {"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}
192.168.1.57 Empfangen : {"remoteError":{"value":true,"message":{"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}}}
[2026-08-17T16:53:47.784Z] [ERROR] [AndroidTV] Protokollfehler von 192.168.1.57 gemeldet: RemoteError {
  value: true,
  message: RemoteMessage {
    remoteAppLinkLaunchRequest: RemoteAppLinkLaunchRequest { appLink: 'spotify://' }
  }
}
192.168.1.57 Remote-Verbindung geschlossen  false
[2026-08-17T16:53:47.788Z] [WARN] [AndroidTV] Verbindung für 192.168.1.57 geschlossen
[2026-08-17T16:53:52.792Z] [INFO] [AndroidTV] Verbindung zu 192.168.1.57 wird hergestellt...
Start Remote Connect
192.168.1.57 Remote secureConnect
192.168.1.57 Empfangen: {"remoteConfigure":{"code1":639,"deviceInfo":{"model":"MIBOX4","vendor":"Xiaomi","unknown1":1,"unknown2":"9","packageName":"com.google.android.tv.remote.service","appVersion":"6.9.906821247"}}}
Erstelle Remote {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
Sende {"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-Sitzung mit 192.168.1.57 bereit
192.168.1.57 Empfangen: {"remoteSetActive":{}}
Erstelle Remote {"remoteSetActive":{"active":622}}
Sende {"remoteSetActive":{"active":622}}
192.168.1.57 Empfangen: {"remoteStart":{"started":true}}
192.168.1.57 Empfangen: {"remoteSetVolumeLevel":{"unknown1":11,"unknown2":9,"playerModel":"MIBOX4","unknown4":1}}
192.168.1.57 Empfangen: {"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] Öffne App https://www.netflix.com/title auf 192.168.1.57
Erstelle Remote {"remoteAppLinkLaunchRequest":{"appLink":"https://www.netflix.com/title"}}
Sende {"remoteAppLinkLaunchRequest":{"appLink":"https://www.netflix.com/title"}}
192.168.1.57 Empfangen: {"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] Sende Tastencode 3 (home) an 192.168.1.57
Erstelle Remote {"remoteKeyInject":{"keyCode":3,"direction":3}}
Sende {"remoteKeyInject":{"keyCode":"KEYCODE_HOME","direction":"SHORT"}}
192.168.1.57 Empfangen: {"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] Sende Tastencode 26 (power) an 192.168.1.57
Erstelle Remote {"remoteKeyInject":{"keyCode":26,"direction":3}}
Sende {"remoteKeyInject":{"keyCode":"KEYCODE_POWER","direction":"SHORT"}}
192.168.1.57 Empfangen: {"remoteStart":{"started":true}}
192.168.1.57 Empfangen: {"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] Öffne App https://www.disneyplus.com auf 192.168.1.57
Erstelle Remote {"remoteAppLinkLaunchRequest":{"appLink":"https://www.disneyplus.com"}}
Sende {"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] Sende Tastencode 26 (power) an 192.168.1.57
Erstelle Remote {"remoteKeyInject":{"keyCode":26,"direction":3}}
Sende {"remoteKeyInject":{"keyCode":"KEYCODE_POWER","direction":"SHORT"}}
timeout
192.168.1.57 Remote-Verbindung geschlossen  false
[2026-08-17T16:56:00.179Z] [WARN] [AndroidTV] Verbindung für 192.168.1.57 geschlossen
[2026-08-17T16:56:05.181Z] [INFO] [AndroidTV] Verbindung zu 192.168.1.57 herstellen...
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] Keine aktive Sitzung mit 192.168.1.57, versuche neu zu verbinden...
[2026-08-17T16:56:08.409Z] [INFO] [AndroidTV] Verbindung zu 192.168.1.57 herstellen...
[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] Keine aktive Sitzung mit 192.168.1.57, versuche neu zu verbinden...
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] Verbindung zu 192.168.1.57 herstellen...
Start Remote Connect
192.168.1.57 Remote-Verbindung geschlossen  true
[2026-08-17T16:56:14.137Z] [INFO] [AndroidTV] TV bei 192.168.1.57 mit einem Magic Packet an 24:18:c6:5a:1b:7e aufwecken...
192.168.1.57 Fehler: 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] Verbindung zu 192.168.1.57 herstellen...

:rocket: Android TV Fernbedienung — Version 1.2.0

Danke @spenceur für das detaillierte Feedback und die Logs, die drei Punkte wurden behoben :folded_hands:

:bug: Behebt

  • Start einer nicht auf dem TV installierten Anwendung: Der TV verweigerte die Öffnung (remoteError) und trennte die Verbindung, aber Gladys zeigte einen Erfolg an. Der Fehler wird nun klar gemeldet (« Anwendung wahrscheinlich nicht installiert »).
  • Wake-on-LAN: Das Magic Packet wurde nur an 255.255.255.255 gesendet, was viele Netzwerke nicht zulassen. Es wird nun an den Broadcast des TV-Subnetzes (z. B. 192.168.1.255) gesendet, dann als Backup an 255.255.255.255 und die IP des TVs.
  • Kein Update-Angebot: Problem mit der Veröffentlichung des Bildes behoben, zukünftige Versionen werden normal ankommen.

:sparkles: Neu

  • « Apps ausblenden »: Entfernt Apps, die dein TV nicht hat, aus dem Auswahlmenü. Z. B.: Spotify, Arte
  • « Benutzerdefinierte Apps »: Füge deine eigenen Apps in der Form Name = Link hinzu, getrennt durch ;. Z. B.: France TV = https://www.france.tv ; Aptoide TV = aptoidetv://
    → Ein Eintrag mit dem Namen einer integrierten App ersetzt deren Link (praktisch, wenn der Standard-Link auf deinem Modell nicht funktioniert).
  • Erweitertes integriertes Verzeichnis: Twitch, Crunchyroll, YouTube Music, Apple TV.

:warning: Nach dem Update

Stelle die beiden neuen Felder in der Konfiguration ein, starte dann eine Gerätesuche und klicke auf Aktualisieren bei jedem TV, um das Auswahlmenü zu aktualisieren.

Denke auch daran, Wake-on-LAN / Netzwerkweckruf in den Einstellungen deines TVs zu aktivieren (bei Wi-Fi: « Wake-on-WLAN »).

Ich werde mir das ansehen, danke nochmal :slight_smile: !

Einfach ein Feedback zur Konfiguration.

Für die folgenden 3 Aktionen einen Selektor einfügen, damit der Nutzer sein Box/Fernseher auswählen kann.

Schau dir den LG-Teil an, falls nötig:

Ich teste das heute Abend auf meinem GoogleTV Chromecast, das sollte doch funktionieren, oder?

Das hoffe ich doch! Zögere nicht, mir zu sagen