Ankündigung

Einklappen
Keine Ankündigung bisher.

[DIY] Samsung TV per RS232 steuern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [DIY] Samsung TV per RS232 steuern

    Hallo Zusammen,

    in kurz, ich wollte meinen Samsung TV steuern. Die Aufgabe waren auch nur...

    - Schalte den TV ein oder aus
    - Schalte auf HDMI1-4

    Jetzt dachte ich, kein Problem kann ich bestimmt per Netzwerk machen. Aber leider weit gefehlt, man kann lediglich nur die FB-Tasten per Netzwerk schicken. Das Problem ist nur, dass dies Zustandslos ist. Sprich ich kann nur POWER oder SOURCE durch toggeln, nicht aber sagen gehe auf HDMI2 oder schalte aus. Auch geht das Netzwerkinterface bei Samsung kurz nach dem Ausschalten aus, so dass man dann per WakeOnLan den TV schalten muss. Hier gibt es aber sogar einen (kurzen) Zeitraum wo weder HTTP noch WOL geht. Auch schaltet geht der Netzwerkinterface hinundiweder up für Softwareupdates wo das WOL wieder nicht geht. Alles irgend wie nicht schön sauber.

    Das Problem mit dem Ein- und Ausschalten könnte man zwar noch per Schaltsteckdose + Hotel-Modus erledigen, aber bei der Eingangswahl ist Schluss.

    Da fast alle Samsung-TVs eine RS232-Schnitstelle (EX-Link, USB-EX-Link teilweise per VGA-IN) haben, war die Idee warum nutze ich nicht diese?
    Ein großer Vorteil ist, dass ich genaue Kommandos an den TV schicken kann wie POWERON, POWEROFF oder HDMI4... So das ich keine Zustände beachten muss (was mir sehr wichtig ist), was bei IR notwendig wäre.

    Um den TV per RS232 zu steuern, habe ich erstmal ein Prototyp gebaut. Als Grundlage dient ein Arduino Board mit WLAN (ESP8266), ein Pegelwandler MAX2323, ein "DB9 auf Klinke"-Kabel sowie eine DB9 Buchse. Dann habe ich schnell ein kleinen Webserver gebaut und mittels SoftwareSerial den Pegelwandler angesteuert. Im Internet habe ich eine Liste statischer Codes gefunden:

    https://support.justaddpower.com/kb/...ontrol-exlink/

    Und siehe da, es klappt! Allerdings wollte ich verstehe wie das Protokoll aufgebaut ist und habe dann weiter recherchiert und rum probiert. Meine Erkenntnise sind folgende:

    Der Aufbau eines Telegramms (in HEX) ist immer 0x08 + 0x22+ CMD1+ CMD2 + CMD3 + CMD4 + CHKSUM. Die Prüfsumme wird errechnet indem man 256 minus alls Bytes rechnet. Hier ein Bespiel an POWERON:

    0x08 0x22 0x0 0x0 0x0 0x2 (0xD4)
    256 - 8 - 34 - 0 - 0 - 0 - 2 = 212 (D4)

    Der Vorteil die Prüffsumme zu berechnen ist, dass man nun z.B. auch die Lautstärke setzen kann. Denn mit dem Befehl (1, 0, 0, 0 bis 100) kann man die komplette Lautstärke steuern. Für mich nicht interessant, da ich Sonos verwende, aber für Leute die TV-Lautsprecher nutzen doch interessant.

    Was allerdings Schade ist, dass man den Status des TVs nicht abbfragen kann. Ich habe zwar eine Tabelle mit Codes gefunden, doch die klappen leider bei einem Ex-Link Interface nicht. Diese sind wohl für spezielle Monitorwände gedacht. Somit muss man den TV mittels Strommessung prüfen ob dieser eingeschaltet ist (falls man das überhaupt braucht).

    Dadruch das der Fernseher keinen Status zurück gibt, kann man sich die Rückleitung (RX) fast schenken. Wenn man nur noch die TX Leitung verwendet, gibt es noch einen weiteren Vorteil. Man kann sogar auf den Pegelwandler verzichten (wie immer ohne Gewähr). Meinem Fernseher hat das TTL Signal gereicht, allerdings muss man das Singal invertiert schicken, das RS232 genau andersherum arbeitet als TTl/LVTTL.

    Code:
    SoftwareSerial SamsungSerial(-1, D0, false);
    Beim Anschluss der Leitung darf man auf keinem Fall die RX/TX vertauschen, da es sonst das Arduino-Board zerstören kann. Der zu verwende PIN ist die 3 siehe auch mein Foto.



    So wie geht es nun nach meinem Prototyp weiter....

    In meinem neuen Haus möchte ich die Steuerung auf den Bus bekommen (solange bleibt der Prototyp auf WLAN Basis). Dazu ist es geplannt das Konnekting (MicroBCU bzw. Multi Interface) zu verwenden. Auch finde ich den Weg per DB9 (male) Adapter und dann mittels DB9 (female) auf Klinke doof, da ich das Ganze auch in ein Gehäuse bauen möchte. Die Idee ist daher direkt vom Pegelwandler (MAX3232) auf eine Klinkenbuchse zu gehen. So kann ich direkt mit einem normalen Klinkenkabel in den TV gehen.

    Ich habe mal ein Foto vom Prototyp gemacht sowie von der zukünftigen Variante mit Klinkenbuchse:
    Angehängte Dateien

    #2
    Top!
    Ich meine im Konnekting Multi Interface Thread wollte jemand das demnächst mit KNX Klemme machen.

    Kommentar


      #3
      Hi,

      das finde ich spannend, vor allem, weil mein Samsung irgend so ein OS hat, bei dem die Steuersignale per Netzwerk verschlüsselt sind und ich nicht dran komme.
      Ich habe zwar eine Lösung per FireTV und Tasker, aber manchmal muss ich dazu den Fernseher 2 mal einschalten, das könnte ich mit einer direkt-Steuerung vermeiden.

      Könntest Du den Sketch und einen Schaltplan veröffentlichen, wenn Du so weit bist? Falls ich mich an dieses Projekt mache, würde ich Dein Coding dann an den Stack von thesing anpassen, da man sich dort auch eine ETS-Anbindung stricken kann.

      Danke und Gruß,
      Waldemar

      P.S.: Habe gerade nachgeschaut, mein Fernseher hat gar keine RS232-Buchse, nur eine Klinkenbuchse, an der "Service (RS232)" steht. Weißt Du was das ist?


      Kommentar


        #4
        Zitat von mumpf Beitrag anzeigen
        Habe gerade nachgeschaut, mein Fernseher hat gar keine RS232-Buchse, nur eine Klinkenbuchse, an der "Service (RS232)" steht.
        Genau, wie bei mir. Daher habe ich ja geschrieben, dass ich mittels Serial (DB9) auf Klinken-Adapter arbeite. Da mir aber der Umweg nicht schmeckt, werde ich als nächstes direkt auf eine Klinkenbuchse gehen, so dass ich Klinke auf Klinke gehen kann. (Siehe auch das Foto oben)

        Weitere Details findest du auch hier https://wiki.samygo.tv/index.php?tit.../Q/N/QN_Series
        Zuletzt geändert von traxanos; 29.07.2019, 07:14.

        Kommentar


          #5
          So ich hab mal eine kleine Library for Arduino gebaut.

          https://github.com/traxanos/ArduinoSamsungTV

          Kommentar


            #6
            Die Library ist nun soweit fertig und ist die letzten Tage fleißig getestet worden.

            Zitat von mumpf Beitrag anzeigen
            Könntest Du den Sketch und einen Schaltplan veröffentlichen
            Das halt ich nicht für sinnvoll, da auf jedem Board die Verkabelung etc unterschiedlich aussieht. Das komplexe Thema habe ich ja in eine Library ausgelagert, so dass du nur ein Serialport benötigst. Egal ob HW oder SW. Wichtig ist nur, dass du mit einem Pegelwandler das TTL auf RS232 wandelst.

            Kommentar


              #7
              Das Ganze sieht nun so aus.

              IMG_3844.jpeg

              Angehängte Dateien

              Kommentar


                #8
                Hört sich sehr interessant an, leider bin ich noch nicht soweit mit meinem Bau, aber es kommt auf die Merk und To-Do Liste.
                Danke fürs teilen

                Kommentar

                Lädt...
                X