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.

12 Kommentare

  1. Hallo,

    leider funktioniert bei mir der Button getinstalled Apps nicht.
    bekomme daher die auf dem TV installierten Apss nicht angezeigt.
    haben Sie eine Idee, woran das liegen könnte?

    Gruß

    Christoph

    • Hallo Christoph,

      die Verbindung über ioBroker zum Fernseher funktioniert?
      Also die Verbindung mit dem Token wurde erfolgreich aufgebaut?
      Normale Befehle über die Tasten funktionieren?
      Dies ist nämlich Grundvoraussetzung dafür, dass man auch die Apps abrufen kann.

      Was meine Erfahrung so sagt, gibt es da draußen sehr viele Remote Control Programme für Samsung und hier ist es wichtig, das richtige für sein Model auszuwählen.

      Ich habe hierfür auch sehr viel Zeit aufwenden müssen, bis ich wieder ein funktionierendes Programm hatte.

      Gruß

      Janis

      • Hallo janis,

        ja die Verbindung zum TV funktioniert einwandfrei.
        Habe den Q95 und kann mit dem IO broker nun grundsätzlich alles steuern. WOL habe ich allerdings per Skript gelöst, da der Adapter hier leider nicht zuverlässig funktioniert.

        Leider werden – egal weclhe Ports etc. ich in der Adapter-Konfiguration angebe- keine Apss vom TV geladen.

        Was meinst Du denn mit “viele Remote Control Programme”?

        Vielen dank!!

        Gruß

        Christoph

  2. Hallo Janis, Steuerung des TV klappt so weit, allerdings das Einschalten nicht. Läuft das bei dir? LG Etienne

    • Hallo Etienne,

      den Fernseher schalte ich per Wake on LAN Befehl ein.
      Bei mir hängt er per Netzwerkkabel dran und das funktioniert sehr zuverlässig.

      Über W-LAN hat es nie wirklich funktioniert.

      Gruß,

      Janis

  3. Ich kann es nicht installieren oder es funktioniert nicht mit Admin Adapter 5.1.25

    • Hallo Daniele,

      das ist eine gute Frage.

      Ich habe meinen ioBroker mittlerweile auch Aktualisiert aber über Backup + Restore auf einem neuen System.

      Damit lief alles Problemlos weiter, auch dieser Adapter.

      Hattest du schon nach der Fehlermeldung die Suchmaschinen befragt bzw. wie ist den die Fehlermeldung bei der Installation?

      Gruß

      Janis

      • Vielen Dank für die schnelle Antwort, die schon ich gelöst mein Problem war, dass ich versucht, von GitHub zu installieren.

        ein anderes Problem habe ich jetzt wenn ich Curl iobroker:8087/set/samsung_tizen.0.command.test.start_Netflix?value=true ausführe passiert nichts mache ich was falsches ?

        • Hallo Daniele,

          das ist eine gute Frage.
          Dieser Befehl funktioniert bei mir einwandfrei

          curl -L http://:8087/set/samsung_tizen.0.apps.start_Netflix?value=true >/dev/null

          oder für Plex
          curl -L http://:8087/set/samsung_tizen.0.apps.start_Plex?value=true >/dev/null 2>&1

          Was du ggf. noch probieren könntest, wäre in den Objekt “Apps” ganz oben auf “getInstalledApps” ausführen.

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.