Android TV fernsteuern: Guide fĂŒr Philips, Loxone & Python
ZurĂŒck zur Übersicht
Coding
03. Jan 2025
4'

Android TV fernsteuern: Guide fĂŒr Philips, Loxone & Python

Die guten alten Zeiten, als man noch ohne Sicherheitsmechanismen mit einem einfachen „http://“ alles steuern konnte, sind leider vorbei.

Kein Passwort, keine Authentifizierung – einfach reinspazieren und loslegen. Heute? Willkommen in der Ära der Digest-Authentifizierung!

Eine zusĂ€tzliche HĂŒrde, die uns SicherheitsgefĂŒhl gibt, aber jede DIY-Steuerung zur Geduldsprobe macht. Besonders Loxone Enthusiasten mĂŒssen tapfer sein: Einheimische Digest-UnterstĂŒtzung? Fehlanzeige.

Stattdessen fĂŒhlt sich die Steuerung moderner Android TVs an, als wĂŒrde man versuchen, einen Tresor mit einer 🍮 Gabel zu knacken. Bleibt nur cURL, Python und ein Hauch von schwarzem Humor. Willkommen in der neuen RealitĂ€t der digitalen Heimsteuerung!

Willkommen im API-Dschungel

Anderes Modell, andere Befehle

Ahhh, wenn's nur das wĂ€re. Nein. Wechseln wir doch in diesem Jahr einfach mal den Port. Cool 👍

NatĂŒrlich ist es auch hersteller- und modellabhĂ€ngig. Wieso auch irgendetwas normen, vereinheitlichen oder einfacher machen, wenn's auch kompliziert geht?

Jedes Jahr ein bisschen anders

Du denkst, du steuerst deinen Fernseher mit API-Befehlen, kaufst dir nĂ€chstes Jahr das Nachfolgemodell fĂŒr das Schlafzimmer und steuerst dieses dann auch mit den gleichen Befehlen? 👆 Eher Nein 😅.

Praxisbeispiel: Philips 55OLED808/12

1. Vorbereitung & IP-Scan

Zuerst mal einen IP-Scan durchfĂŒhren, um die IP-Adresse des Fernsehers zu bekommen – oder einfach im MenĂŒ nachschauen.

WoWLAN aktivieren Philips Android TV
Wichtig: WoWLAN aktivieren fĂŒr Steuerung im Standby

Im MenĂŒ unter Netzwerk sollte man noch WoWLAN aktivieren. Dies erlaubt es, die GerĂ€te ĂŒber das Netzwerk ein- und auszuschalten (erhöht den Standby-Stromverbrauch leicht).

2. Der Zertifikats-Wahnsinn

Im Browser mal die folgenden Adressen testen:

  • http://IP-Adresse:1925/system (Ältere Modelle)
  • https://IP-Adresse:1926/6/system (Neuere Modelle)
SSL Warnung im Browser
Selbstsignierte Zertifikate: Der Klassiker

Hier fÀngt der Stumpfsinn nÀmlich an. Auf dem TV lÀuft "Jointspace" mit eigenem Zertifikat. Eigentlich ein kleiner Webserver, welcher ein invalides Zertifikat ausstellt. Einfach auf "Weiter zu IP-Adresse (unsicher)" klicken.

Jetzt solltest du eigentlich eine JSON-Antwort von deinem TV bekommen:

JSON Antwort TV

💡 Tipp: Wenn bei dir Port 1925 funktioniert, hast du GlĂŒck! Dein TV benötigt wahrscheinlich keine Digest-Auth und die Loxone-Integration ist ein Kinderspiel.

Pairing & Python

FĂŒr alle neueren TVs fĂ€ngt der Spass mit dem Pairing hier an: philips_android_tv auf GitHub

# 1. Dependencies installieren

pip install requests

pip install pycryptodome

pip install -r requirements.txt

# 2. Pairing starten (TV muss an sein!)

python philips.py --host 192.168.1.50 pair

Im besten Fall öffnet sich auf dem TV ein Fenster mit einem 4-stelligen Code. Diesen im Terminal eingeben. Du erhÀltst dann ID und App-Key.

Let's curl around

Mit den gewonnenen Daten kannst du nun Befehle senden:

curl -X GET --digest --insecure -u ID:App-Key https://IP-TV:1926/6/input/key -d '{"key": "VolumeUp"}'

Loxone Integration

Meine bisherigen Versuche, dies direkt in Loxone mit einem Virtuellen Ausgang zu lösen, scheiterten an der Digest-Authentifizierung.

Loxone Ausgang Loxone Befehl

Workaround: Ein Middleware-Server (z.B. Raspberry Pi mit Node-RED oder Home Assistant), der auf einfache HTTP-Befehle von Loxone hört und den komplexen Digest-Request an den TV sendet.