Samsung TV App starten über HTTP

Manchmal würde man gerne automatisiert eine App auf dem Samsung TV starten ohne sich durch das Menü durch zu navigieren – und so geht’s.

Wenn man z.B. automatisiert eine Scene ablaufen lassen möchte, die für den Kino-Abend das Licht herunterdimmt oder weitere indirekte Beleuchtung einschaltet und auf dem Samsung TV Netflix startet sind die ersten beiden Punkte mit dem Licht kein Problem. Doch wie startet man die App auf dem Fernseher? Entweder man macht das manuell oder automatisert die Fernbedienung und lässt die Tasten MENU -> HOCH -> LINKS -> LINKS -> ENTER jeweils mit einer gewissen Wartezeit zwischen den Tasten ablaufen. Das führt aber oft zu Problemen. Es kann passieren, dass bei einem Update die Menüstruktur verändert wird und die App an eine andere Position rutscht. Anstatt Netflix startet man dann YouTube, was ja nicht gewollt ist. Ein anderes Problem kann auftauchen, wenn die einprogrammierte Wartezeit zwischen den Tasten etwas zu kurz ausfällt, weil der Fernseher mal etwas langsamer ist als sonst. Dann wird eine Taste mal verschluckt und es ist absolute Glückssache was passiert.

Aber es geht viel einfacher. Ich bin auf eine Interessante Schnittstelle gestoßen, die es erlaubt Apps zu starten und zu sehen ob eine bestimmte App läuft. Für welche Samsung TV’s das Prinzip funktioniert kann ich nicht sagen. Falls es bei euch funktioniert oder oben nicht, hinterlasst doch ein Kommentar.

Samsung TV Schnittstelle

Jetzt zur Schnittstelle: Habt ihr die IP-Adresse eures Fernsehers ist der Rest ein klacks. Um eine App zu starten sendet einen POST-Request an die URL:

http://IP-ADRESSE:8080/ws/app/APP-NAME

Ich nutze das für die Apps von Netflix, Amazon und YouTube, also:

http://IP-ADRESSE:8080/ws/app/Netflix
http://IP-ADRESSE:8080/ws/app/Amazon
http://IP-ADRESSE:8080/ws/app/YouTube

Man muss hier jedoch bedenken, dass die App-Namen korrekt geschrieben sind.

Möchte man herausfinden ob eine App läuft kann man das über die selbe URL jedoch als GET-Request.

Home-Assistant

Ich habe mir für Home-Assistant ein kleines Script geschrieben:

# configuration.yaml
rest_command:
  livingroom_tv_app_netflix:
    method: POST
    url: 'http://192.168.178.10:8080/ws/app/Netflix'
  livingroom_tv_app_amazon:
    method: POST
    url: 'http://192.168.178.10:8080/ws/app/Amazon'
  livingroom_tv_app_youtube:
    method: POST
    url: 'http://192.168.178.10:8080/ws/app/YouTube'
# scripts.yaml
livingroom_tv_app_netflix:
  sequence:
    - service: rest_command.livingroom_tv_app_netflix

livingroom_tv_app_amazon:
  sequence:
    - service: rest_command.livingroom_tv_app_amazon

livingroom_tv_app_youtube:
  sequence:
    - service: rest_command.livingroom_tv_app_youtube

Das wars auch schon. Hoffentlich hilft der Beitrag dem ein oder anderen von euch.

16 Antworten auf „Samsung TV App starten über HTTP“

    1. I analyzed the network traffic to see what happens when the YouTube or Netflix apps on my Android-Smartphone starts the app on TV. The rest was a bit try and error.

      1. How and what app did you use to analyze this? I’m using Samsung Smart View and would want to analyze how it can start every my apps on my tv.

        Plex didn’t work and also have some Swedish local apps that didn’t work out of the box.

    1. No, I’m sorry. I have an old Samsung TV without Tizen. But did you try to start Plex with the SmartView smartphone app and analyze the network traffic with Wireshark to get the app ID?

  1. Hi there, new to home assistant.

    I get a python error, because the variable is not global. Any idea where I can define that?

    I get this error now: Failed to call service rest_command/livingroom_tv_app_netflix. local variable ‚request‘ referenced before assignment

  2. Hi there, I get an error, please help:

    Failed to call service rest_command/livingroom_tv_app_netflix. local variable ‚request‘ referenced before assignment

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert