Android TV Integration

Hallo zusammen,

Ich arbeite gerade an einer Integration, um Gladys mit Android TV-Geräten eines Hauses zu verbinden und diese zu steuern. Das wird mit den meisten Fernsehgeräten, Boxen und Chromecasts unter Android TV/Google TV funktionieren.

Bisher kann die Integration nur die Lautstärkewerte empfangen/steuern und das Gerät ein- und ausschalten.

@AlexTrovato ich habe gesehen, dass du viel an diesem Teil gearbeitet hast (Fernseh-Funktionen in Gladys + TV über Broadlink). Ich konnte nicht alles verfolgen, was gemacht wurde. Es gibt viele Themen und PRs, die über Fernseher sprechen (und eine erste Version einer Fernbedienung wurde getestet). Kannst du mir sagen, wie der Stand bei Gladys ist, um alle Fernseh-Funktionen zu steuern? Da ich im Dashboard nichts sehe (außer Strom, Lautstärke, Kanäle), nehme ich an, dass es noch nicht abgeschlossen ist. Brauchst du Hilfe bei etwas?

Hallo @bertrandda, die Fernbedienung auf dem Dashboard wurde von meiner Seite verworfen, ich glaube nicht, dass ich den Code behalten habe.
Heute kannst du eine Zeile pro Funktion/Taste auf dem Dashboard haben.
Ich war gerade dabei, die Kompatibilität mit GoogleHome hinzuzufügen, um Sprachsteuerung zu ermöglichen.

Super für meine Shield TV das! :wink:

Okay, danke. Ich werde zunächst wie du vorgehen und in der ersten Version eine Zeile pro Funktion einrichten. Schaffst du es, alle Funktionen auf deinem Dashboard anzuzeigen? Ich habe mich stark von deiner Broadlink-Integration inspirieren lassen, habe alle Tasten korrekt deklariert, aber auf dem Dashboard kann ich nur Ein-/Ausschalten, den Lautstärkeregler und die Kanäle hinzufügen.

Kennst du die Android TV-Version, die darauf läuft? Soweit ich gesehen habe, wurde die lokale API der Fernbedienung in der Version 11 von Android TV hinzugefügt. Ich hoffe, du hast mindestens diese Version und es wird für dich funktionieren.

Ich werde mir das heute Abend ansehen :wink:

Ich habe die Broadlink-Integration etwas genauer untersucht und glaube, ich habe die Funktionsweise des TVs falsch verstanden. Wie nutzt du die TV-Funktionen, @AlexTrovato? Kannst du alle Funktionen im Gladys-Dashboard steuern oder ist Gladys nur ein Vermittler zwischen der physischen Fernbedienung und dem TV? Denn ich versuche zum Beispiel, meine Implementierung der Play-Taste zu testen. Ist es möglich, sie über Gladys zu aktivieren?

Für Broadlink gibt es einen „Test“-Button auf der Integrationsseite.
Aber tatsächlich wurde die Fernbedienung im Dashboard aufgrund von UI/UX-Beschränkungen nicht fertiggestellt, und ich bin mir nicht einmal sicher, ob ich den Code irgendwo in einem Branch behalten habe :confused:

Okay, danke, ich habe es geschafft, die Funktionen über die Szenen zu überprüfen, alles funktioniert einwandfrei. Bei der Fernbedienung werde ich vielleicht versuchen, die Entwicklung wieder aufzunehmen, wenn ich etwas Zeit habe, aber Frontend ist nicht meine größte Stärke.

@bertrandda ich habe einen alten Branch mit der Fernbedienung auf dem Dashboard gefunden. Er ist sehr alt, ich habe ihn gerade mit der letzten Code-Version aktualisiert, aber ich glaube, er funktioniert so nicht.
Ich werde keine Zeit haben, um mich wieder damit zu beschäftigen, aber vielleicht kann es dich inspirieren.

(nicht alles ist zu behalten)

Toll, danke Alex, ich werde sehen, was ich damit machen kann. Es wird wahrscheinlich in einem separaten PR von Android TV sein, aber ich denke, es wird interessant sein.

In der Zwischenzeit, für diejenigen, die den Android TV-Service testen möchten, ist eine erste Version verfügbar

Und auf Docker bertrandda/gladys:android-tv

Es funktioniert für Google TV/Android TV ab Version 11

Voilà, ich habe gerade einen Test durchgeführt.
Nach sehr vielen erfolglosen Versuchen habe ich es schließlich geschafft, mein Google TV zu verbinden.

  • Beim ersten Mal konnte ich den Ton nicht ändern, dann aber doch
  • Ich konnte es ohne Probleme ausschalten
  • Ich habe es nie geschafft, es wieder einzuschalten
  • Wenn das Gerät manuell eingeschaltet wird, wird der Status in Gladys korrekt geändert.

Ein guter Anfang also! Bravo!

Gladys ist mit unseren Android TVs super verbunden!
Wäre es möglich, dass Gladys Benachrichtigungen an unsere TVs sendet?

Danke für diesen ersten Test!

Kannst du mir mehr Informationen zu den Problemen geben, die du beim Verbinden hattest? Der Code wird angezeigt, funktioniert aber nicht, der Code wird nicht angezeigt…

Ja, das ist nicht sehr klar. Du hast zwei Möglichkeiten: Entweder du verwendest ein Widget (zum Ein- und Ausschalten des TVs und nur zur Lautstärke) oder du kannst die Funktionen, die den Tasten der Fernbedienung entsprechen, über eine Szene aktivieren (du führst eine Szene mit einem Ton aus, den du über einen Lautsprecher sendest. Du kannst zum Beispiel die Funktion MUTE verwenden, deinen Lautsprecher starten und, wenn es vorbei ist, „zurücksenden“ MUTE, um den Ton deines TVs wieder zu aktivieren).

Welches TV-Modell hast du? Ist es Android TV oder Google TV?

Ich mache alles über den Emulator, der in Android Studio verfügbar ist, also gibt es möglicherweise Unterschiede zwischen einem echten TV/TV-Box und dem emulierten System.

Du wirst auch sehen, dass es in den Funktionen eine im Textformat gibt, die über die gerade verwendete Anwendung informiert. Standardmäßig ist es der Name des App-Pakets, also habe ich eine Zuordnung zwischen dem Paketnamen und dem App-Namen erstellt Android TV remote service by bertrandda · Pull Request #1829 · GladysAssistant/Gladys · GitHub
Falls du andere Apps installiert hast, kannst du mir die Pakete mitteilen, die in dieser Funktion angezeigt werden?

Derzeit ermöglicht dieser Dienst nur die Steuerung des TVs. Aber ja, bei HomeAssistant gibt es einen Dienst für Benachrichtigungen Notifications for Android TV / Fire TV - Home Assistant also sollte es möglich sein, das Äquivalent in Gladys zu reproduzieren.

Genau das ist der Fall. Es stellte sich heraus, dass mehrere Codes erstellt wurden, da nach dem Abbrechen des Vorgangs am TV die folgenden Codes angezeigt wurden.
Zufall oder nicht, der Code, der funktioniert hat, enthielt keine Buchstaben, im Gegensatz zu den vorherigen.
Ich werde es so bald wie möglich erneut testen.

Kann man für die Lautstärke nicht einen Controller wie den Thermostat verwenden?

Es gibt tatsächlich ein Textfeld: ‹ com.tcl.tv ›

Tut mir leid, aber ich bin mir nicht sicher, ob ich das richtig verstanden habe.
Es ist ein Google TV.
Ich weiß, wie man ihn ausschaltet, aber nicht, wie man ihn einschaltet!

Normalerweise wird der Code nur einmal bei der Hinzufügung des Android TV (vor der Eingabe des Codes in das Gladys-Formular) erstellt und angezeigt und manuell, wenn man auf die Schaltfläche „Wieder verbinden“ klickt. Hast du darauf gedrückt? Ich werde prüfen, ob es möglich ist, den Status des TVs vor der Generierung eines neuen Codes zu ermitteln und ihn bei Bedarf zu blockieren.

Das Widget, das der Funktion VOLUME zugeordnet ist, ist das Widget %, wie bei der Helligkeit. Allerdings könnte man vielleicht der Funktion VOLUME_UP/VOLUME_DOWN das von dir erwähnte Widget zuordnen. Ich weiß nicht, ob das möglich ist, aber ich kann es versuchen.

Wenn du Anwendungen wie Netflix, Disney+ oder Spiele auf deinem TV hast, kannst du sie dann starten und mir sagen, was im Textfeld angezeigt wird? Das würde mir helfen, die Zuordnung, von der ich oben spreche, zu vervollständigen. So wird, wenn du diese Apps startest, auf Gladys „Netflix“ anstelle von „com.blabla.netflix.androidtv“ angezeigt (und du kannst sie sogar leichter in Szenen verwenden).

Ok, ich werde versuchen herauszufinden, was das blockiert.

Ich schaue es mir an, sobald ich nach Hause komme (in etwa zehn Tagen)!

Hallo!
Ich habe gerade die installierten Anwendungen (hauptsächlich standardmäßig) auf meinem Google TV TCL (unter Android 11) durchgesehen.
Ich habe eine freigegebene Datei mit den Texten erstellt, die von der Integration je nach gestarteter Anwendung zurückgegeben werden. Es wäre sicherlich interessant, wenn diese Datenbank erweitert würde, daher habe ich die Bearbeitung dieses Dokuments freigegeben. Vielleicht wird @pierre-gilles lieber ein anderes System als Google Sheets verwenden…

Ja, das ist perfekt Google Sheet! Super :slight_smile:

Danke @GBoulvin! Ich werde alles, was du gefunden hast, in den bestehenden PR einarbeiten.

Ich habe zwei weitere Anmerkungen!

  • Die bestehende Fernbedienung über Google Home ermöglicht mir auch nicht, die Lautstärke zu ändern. Ich nutze ein Heimkino-System, das über HDMI CEC gesteuert wird. Vielleicht der Grund?
  • Mir war anfangs nicht klar, dass ich auf das Symbol rechts neben dem Zuordnungscode klicken muss, um zu bestätigen… :innocent: Aber seitdem funktioniert es auf Anhieb!
    Seitdem habe ich einen Chromecast HD erworben, also sind weitere Tests möglich :wink: