[Modul] FireTV Events

Hallo Freunde des Heimkinos,

ich möchte euch ein neues Modul zur Verfügung stellen, das sich auf die Status-Erkennung von Amazon Fire TV-Geräten (und anderen Android TV-Geräten - @HarmonyFan konnte bestätigen, dass Shield dieselben Informationen liefert) konzentriert.

Einige von euch kennen und nutzen vielleicht schon das hervorragende FireTV Modul von @fonzo, das eine umfassende Fernsteuerung des Fire TV ermöglicht. Bei diesem Modul fungiert IP-Symcon aber als reiner Sender, man bekommt also keine Information über den tatsächlichen Status des Geräts zurück (z.B. ob gerade ein Film läuft oder pausiert ist).

FireTV Modul [Testversion] - IP-Symcon / PHP-Module (Diskussion) - IP-Symcon Community

Genau hier setzt mein Modul FireTV Events an. Es ist keine Fernsteuerung, sondern ein reiner Zustands-Monitor, der euch folgende Informationen in IP-Symcon-Variablen bereitstellt:

  • Wiedergabestatus: Unterscheidet zuverlässig zwischen Spielend, Pausiert und Gestoppt.

  • Quelle: Zeigt die abspielende App in Klartext an (z.B. „Netflix“, „Amazon Prime Video“).

  • Wiedergabeposition: Die aktuelle Position im Medium im Format hh:mm:ss.

  • Titel: Der Titel des Mediums (sofern von der App geliefert).

Ideal für alle, die Automationen basierend auf dem Wiedergabestatus erstellen wollen (z.B. „Wenn Film startet, dimme das Licht“).

Zur ADB-Einrichtung

Genau wie Fonzos Modul basiert auch dieses auf der Android Debug Bridge (ADB). Alle Anleitungen zur Aktivierung des ADB-Debuggings auf dem Fire TV, die im Thread von Fonzo stehen, gelten auch hier.

Wenn ihr bereits ein FireTV-Modul im Einsatz habt und dafür ADB auf eurem Fire TV und dem IP-Symcon-Server (z.B. via sudo apt install adb) eingerichtet habt, müsst ihr nichts weiter tun. Die bestehende ADB-Installation wird von diesem Modul einfach mitgenutzt, eine erneute Einrichtung ist nicht notwendig.

Wichtiger Hinweis: Die Einschränkungen

Die Qualität der ausgelesenen Daten hängt leider stark von der jeweiligen Streaming-App ab. Das Modul kann nur anzeigen, was die App an das Betriebssystem meldet. Bei meinen Tests haben sich folgende Einschränkungen gezeigt:

  • Filmtitel: Viele große Streaming-Anbieter (insbesondere Netflix und Amazon Prime Video) übermitteln keinen spezifischen Filmtitel. Netflix liefert gar keine Titelinformation, Amazon oft nur den App-Namen „PrimeVideo“. Dies ist eine Einschränkung der Apps, nicht des Moduls.

  • Werbung vs. Film: Bei Amazon Prime Video konnte nicht zwischen Werbung und dem Hauptfilm unterschieden werden. Die App meldet für beides den identischen Status.

  • Vorschau vs. Film: Bei Netflix konnte nicht zwischen einem kleinen Vorschau-Video im Menü und einem aktiv geschauten Film unterschieden werden. Die App meldet in beiden Fällen einfach nur „Spielend“.

Das Modul ist im Symcon Store als Beta-Version verfügbar und kann dort über die exakte Suche nach FireTV Events gefunden werden.

Viel Spaß beim Testen und ich freue mich auf euer Feedback!

Update vom 07.10.2025
Das ganze lässt sich jetzt ein- und ausschalten.
Es macht ja absolut Sinn, das nur laufen zu lassen, wenn auch wirklich Potential besteht, dass sich der Status ändert.
Danke für die Anregung @HarmonyFan

FTV_Activate(int $InstanceID, boolean $Enable)

1 „Gefällt mir“

Gute Arbeit bei Shield hat es sofort geklappt und Magenta TV erkannt.

Die Wiedergabeposition mit “488790:10:40” versteh ich nicht ganz. 10:40 könnte Restlaufzeit gewesen sein aber sie ändert sich nicht.

Ralf

1 „Gefällt mir“

… die Wiedergabezeit sollte die Zeit innerhalb das Mediums sein. Es könnte sein, dass das bei Live Stream problematisch ist :grinning_face:

Ich werde es mal mit Prime oder so probieren.

Eine Sache ist mir noch aufgefallen. Meine Geräte, wenn nicht benutzt, werden vom Strom getrennt und dann wird mein Logfile mit Fehler alle 10 Sekunden geflutet .

Da ich ADB auch automatisch aktiviere/deaktiviere habe ich da mal

    $Config = IPS_GetConfiguration(43833);
    $ConfigArray = json_decode($Config, true);
    $ConfigArray["UpdateInterval"] = 0;
    $Config = json_encode($ConfigArray);
    IPS_SetConfiguration(43833, $Config);
    IPS_ApplyChanges(43833);

an der selben Stelle auch das mit 0 bzw. 10 eingebaut damit Ruhe ist. 43833 ist die Event Instanz.

Ralf

Was bräuchtest du?

Wenn du es ausschaktest, muss man es ja auch wieder ejnschalten können.

Fällt dir was ein, an was man das fest,achen könnte?

Unabhängig davon kann man natürlich die Fehlermeldungen abfangen.

Für mich ist war es einfach. Mit Device-Monitor überwache in meinen Shield. Wenn Online aktiviere ich ADB und setze deinen Timer auf 10 Sekunden. Wenn Offline kommt ADB disconnect und ich setze deinen Timer auf 0. Es rutschen bei mir z.Z. noch 1-2 Meldungen durch aber das ist besser als 6/min. Ich bin aber ziemlich speziell was meine Geräte angeht denn es sind einfach zu viel um die Laufen zu lassen.

Ralf

… dann ist es doch das Einfachste, das ein und ausschaltbar zu machen.

Vielleicht sogar mit einem Zähler, wenn nach n Abfragefehler, dann aus.

Moin,

wie im FireTV Modul mit FireTV_StartADB und FireTV_StopADB damit könnte es dann jeder einfacher machen.

Update vom 07.10.2025
Das ganze lässt sich jetzt ein- und ausschalten.
Es macht ja absolut Sinn, das nur laufen zu lassen, wenn auch wirklich Potential besteht, dass sich der Status ändert.
Danke für die Anregung @HarmonyFan

FTV_Activate(int $InstanceID, boolean $Enable)

Danke habe ich gestern schon gesehen und meine Kontruktion durch deinen einfacheren Befehl ersetzt. Läuft gut und ist einfach.

Danke Ralf

1 „Gefällt mir“

Moin,

wie Du vielleicht weißt benutze ich die Unfolded Circle Remote 2/3 und hier gibt es mittlerweile eine ADB Integration. Hättest Du was dagegen deine Idee hier zu verwenden?

Ralf

Warum sollte ich ….
Klar, mach!

Moin,

na die Höflichkeit gebietet es finde ich. Vor 35 Jahren hatte ich da nämlich selbst negative Erfahrungen gemacht und ich hatte damals deine Position. Falls es mal meine Fernbedienung ziert poste ich ein Bild.

Ralf

1 „Gefällt mir“