Steuerung eines Samsung SmartTV mit ioBroker

Ich hatte dieses Thema schon mehrfach im Blog und letzten Endes konnte ich meinen Samsung SmartTV nur noch ein und ausschalten aber nicht mehr Fernsteuern.

Vormals hatte ich hierfür ein kleines Python Programm verwendet namens Samsungctl welches einem erlaubt hat Fernbedienung-Eingaben über das Netzwerk an den TV zu senden.

Da ich nun verstärkt auf ioBroker als zusätzliche Schnittstelle setze, habe ich mich mal mit den verfügbaren Adaptern beschäftigt und konnte tatsächlich noch einen funktionierenden finden!

Dabei handelt es sich um den ioBroker.Samsung_tizen Adapter der über GitHub zur Verfügung steht.

Installation & Einrichtung

Um diesen Custom-Adapter zu installieren geht man zuerst im ioBroker-Admin auf die Adapter und oben im “Icon-Menü” auf die “Katze”

In dem neuen Pop-Up Fenster wechselt man auf den Reiter Beliebig und fügt hier die URL des Adapters ein.

Installation eines ioBroker Adapter aus GitHub über das Adapter Fenster, oben in der Icon Reihe auf die "Katze" und im Anschluss auf den Reiter beliebig.

Im Anschluss noch unten auf Installieren und der Adapter taucht in der Übersicht zum Instanz erzeugen auf.

Bild des Adapters nach hinzufügen aus GitHub zum anlegen einer Instanz.

Wenn nun die Instanz des Adapters angelegt wurde kommt die Einrichtung des Adapters.
Mein Samsung SmartTV ist >2016 und benötigt zur Ausführung der Befehle einen Token zur Authentifizierung.

Im ersten Schritt gibt man in den Adapter-Einstellungen die IP Adresse und Mac-Adresse des eigenen TVs an.
Der Rest bleibt Standard.

Erste Einstellungen des Samsung Tizen Adapters in ioBroker.
Hier wird erstmal nur IP und Mac Adresse angegeben.

Nun Speichert man diese Einstellungen und startet den Adapter.
Um nun an den benötigten Token zu kommen wechselt man zur Ansicht Objekte und öffnet den Adapter.
Unter Config findet sich ein Button getToken.
Nach betätigen des Button erscheint auf dem TV noch ein Pop-Up dass ein neues Gerät zugriff haben möchte, diesen muss man natürlich zulassen.

Erstellung des Authentifizierungs-Token für den Remote Zugriff auf den Samsung SmartTV

Diesen fügt man nun wieder in den Adapter-Einstellungen ein und ist mit der Grundkonfiguration fertig und kann nun erfolgreich Befehle an den Fernseher senden.

Steuerung mit Homematic

Da mein ganzes SmartHome auf Homematic basiert und der ioBroker nur als Gateway fungiert mussten in der Homematic CCU natürlich einige Anpassungen vorgenommen werden damit ich den TV mit Alexa steuern kann.

Im ersten Schritt muss man sich überlegen, welche Automatisierungen bzw. Steuerungsbefehle an den TV übertragen werden sollen.

Um das ganze relativ Flexibel zu halten habe ich mich für eine neue Systemvariable als Werteliste entschieden.

Innerhalb dieser gibt es aktuell folgende Möglichkeiten:

  • Play = Wiedergabe starten
  • Pause = Wiedergabe pausieren
  • Plex = Plex App auf dem TV starten
  • Netflix = Netflix App auf dem TV starten
  • Plex Intro = Plex Intro überspringen
  • Netflix Intro = Netflix Intro überspringen
  • LiveTV = LiveTV App starten
  • PlexNext = Nächste Folge in Plex starten
  • NetflixNext = Nächste Folge in Netflix starten

Hier sind der eigenen Phantasie natürlich keine Grenzen gesetzt und man kann auch andere Befehle definieren.
Diese Befehle sollen primär über Alexa ausgeführt werden somit hat dies den Beigeschmack das für jede Option ein eigenes Programm erstellt werden muss.
In meiner Programmübersicht gibt es deshalb für jede Auswahl ein Programm.

Programmübersicht in der Homematic CCU alles Programme zur Steuerung des Samsung Smart-TVs

Die Programme sind alle nach Schema X angelegt: Wenn Variable auf “Y” aktuallisiert, dann führe den Befehl aus.

Programm-Beispiel des Programms um auf den SmartTV Netflix zu starten.


Ich nutze hier der Übersichthalber ein kleines Linux-Script mit dem ich die Variable als Parameter übergebe um die SimpleAPI von ioBroker zu verwenden.

#!/bin/bash
command="$1"

case "$command" in
        pause) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.KEY_PAUSE?value=true >/dev/null 2>&1
            ;;
        play) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.KEY_PLAY?value=true >/dev/null 2>&1
            ;;
        plex) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.apps.start_Plex?value=true >/dev/null 2>&1
            ;;
        netflix) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.apps.start_Netflix?value=true >/dev/null 2>&1
            ;;
        livetv) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.KEY_TV=true >/dev/null 2>&1
            ;;
        plexintro) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.sendCmd?value=KEY_RIGHT,KEY_RIGHT,KEY_RIGHT >/dev/null 2>&1
            ;;
        weiter) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.KEY_ENTER?value=true >/dev/null 2>&1
            ;;
        plexnext) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.sendCmd?value=KEY_UP,KEY_RIGHT,KEY_ENTER >/dev/null 2>&1
            ;;
        netflixnext) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.sendCmd?value=KEY_UP,KEY_UP,KEY_RIGHT,KEY_ENTER >/dev/null 2>&1
            ;;
        netflixintro) curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.sendCmd?value=KEY_UP,KEY_UP,KEY_ENTER >/dev/null 2>&1
            ;;
esac

Dieses Script wird per SSH von einem Remote-Host ausgeführt da ich es bisher noch nicht hinbekommen habe es direkt über die CCU auszuführen, da mir die CCU hier immer einen Fehler auspuckt.

Wenn man kein anderes System verwenden möchte kann man natürlich den Befehl auch direkt in das Programm als SystemExec oder CUxD.Exec eintragen.

system.Exec("curl -L http://<ioBroker-IP>:8087/set/samsung_tizen.0.control.sendCmd?value=KEY_UP,KEY_UP,KEY_ENTER >/dev/null 2>&1");

Steuerung mit Alexa

Um das ganze nun auch mit Alexa ausführen zu können muss über den hm-rega-Adapter jedes Programm in den IoT-Adapter von ioBroker veröffentlich werden.

Hierfür wählt man im IoT-Adapter einfach jeden action.execute Datenpunkt aus und benennt ihn noch entsprechend.

Übersicht der an Alexa veröffentlichten Programme aus Homematic.
Benamung ist jeweils Wohnzimmer Aktion.
Zum Beispiel Wohnzimmer Netflix Intro

Da nun über diesen Weg die Befehle an Alexa etwas unpraktisch wären wie zum Beispiel “Alexa, schalte Plex Intro an” habe ich mir noch die Arbeit gemacht und für die entsprechenden Programme eine Routine erstellt um sagen zu können “Alexa, Plex Intro überspringen”.
Das kommt dann auch dem typischen Sprachgebrauch näher und man kann sich die Befehle leichter merken.

Fazit

Die Funktionalität zu haben seinen eigenen Fernseher über das Netzwerk Befehle zu erteilen und das ganze auch noch zu automatisieren ist eine sehr praktische Sache die ich in meinem SmartHome schon vermisst habe.

Dadurch sind noch viele weitere Ideen möglich so zum Beispiel die Wiedergabe zu Pausieren oder zu Muten wenn auf dem Festnetz ein Anruf eingehend ist.

Der aufwand der Einrichtung ist zwar etwas höher da in meinem Fall 3 Systeme angefasst werden mussten aber wenn in deinem Smarthome die Logik in ioBroker liegt ist es noch viel einfacher.

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.