Sony Beamer HW55 in FHEM per RS232 steuern

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Der Heimkinoprojektor Sony VPL-HW55ES sollte jetzt in die bestehende Smart-Home-Steuerung integriert werden, damit er je nach Harmony-Szene automatisch ein- bzw. ausgeschaltet wird. Per Infrarot war mir das aber zu langweilig bzw. aus Erfahrung mit meinem TV, welcher bisher ebenfalls per Infrarot gesteuert wurde und gef├╝hlt bei jedem zehnten Schaltvorgang nicht reagierte, vorallem auch zu fehleranf├Ąllig.

Aus diesem Grund musste die RS232-Schnittstelle des Sony Projektors angezapft werden, um die Schaltbefehle kabelgebunden und damit zuverl├Ąssig zu ├╝bertragen. Da ich dazu keine fertige L├Âsung finden konnte, musste kurzerhand selbst Hand angelegt werden und FHEM mit „Universal-RS232-Modul“ zum Einsatz kommen. Wie die Einbindung abl├Ąuft und welches Potenzial noch nach oben ist, um bspw. auch Statusmeldungen vom Beamer verarbeiten zu k├Ânnen, ist Inhalt des nachfolgenden Blogpost – inkl. einiger Impressionen aus dem Kinowohnzimmer.

Projektorspezifische RS232-Befehle ausfindig machen

Jeder Hersteller und manchmal sogar jedes Modell eines Herstellers nutzt abweichende serielle Befehle, welche gew├Âhnlich im jeweiligen „ProtocolManual“ (zumindest heisst das so bei Sony) zu finden sind. Meist leitet der erste oder zweite Google-Treffer bereits zur korrekten pdf-Datei. Im Falle des Sony HW55 (Affiliate-Link) ist das Dokument hier zu finden.

BTW: Der HW55 ist an der Decke schon nen ganz sch├Âner Klopper…

Lustig dabei ist, dass die Googletreffer meist nicht auf die Herstellerseite verweisen, sondern stattdessen auf diverse/dubiose Drittseiten, bei denen man die Dokumente herunterladen kann. Hier hat man auf Herstellerseite anscheinend gar nicht sooo den gro├čen Anreiz, dass das ├╝berhaupt jemand nutzt. Schade eigentlich – vorallem f├╝r den Konsumenten.

Hat man das Dokument studiert, kann man sich anhand der Tabellen die korrekten Befehle in Bit- bzw. Byteform – z.B. f├╝r Projektor ein- oder ausschalten – zusammenbasteln. Das ist – gelinde gesagt – kein gro├čer Spa├č, da man neben den einzelnen Hex-Werten bspw. auch noch die Pr├╝fziffer berechnen muss. Warum kann man nicht einfach eine Liste aller fertig ausformulierten Befehle abdrucken? Grml!

Hier mal einige zentrale Steuerbefehle f├╝r den Sony HW55, die ich bisher nutze:

Power On: A9 17 2E 00 00 00 3F 9A (Besonderheit: Gesamter Befehl muss 2x hintereinander mit kurzer Pause dazwischen gesendet werden!)
Power Off: A9 17 2F 00 00 00 3F 9A

Lamp Low: A9 00 1A 00 00 00 1A 9A
Lamp High: A9 00 1A 00 00 01 1B 9A

Motion Enhancer
Off A9 00 59 00 00 00 59 9A
Low A9 00 59 00 00 01 59 9A
High A9 00 59 00 00 02 5B 9A

Anhand dieser Beispiele und der pdf-Dokumentation sollte eigentlich jeder „reverse-engineeren“ k├Ânnen, wie sich die Codes zusammensetzen. Ich m├Âchte an dieser Stelle nicht n├Ąher darauf eingehen, schon alleine um keine schlechte Laune zu bekommen.

Achso und man ben├Âtigt nat├╝rlich noch Angaben zur Baudrate (hier 38400), den Datenbits (hier 8), der Parit├Ąt (hier E f├╝r Even) und den Stopbits (hier 1). Diese Infos findet man gew├Âhnlich auch in der Dokumentation, in diesem Fall unter dem Punkt „3.2 – Communication Specifications“.

Projektor per RS232-USB-Adapter am RPI anschlie├čen

Einige neuere Beamer haben mittlerweile bereits Netzwerkanschluss und k├Ânnen per HTTP-Befehlen direkt angesteuert werden. In meinem Fall muss der Sony VPL-HW55ES aber eben noch „oldschool“ per RS232-Schnittstelle angesprochen werden, was aus technischer Sicht aber kein Nachteil ist. Im Gegenteil – denn Beamer, die im ausgeschalteten Zustand auf Netzwerkbefehle lauschen, haben gew├Âhnlich einen h├Âheren Standbyverbrauch.

Damit das mit dem Anschlie├čen funktioniert, habe ich das StarTech.com 1m USB Nullmodem RS232 Adapter Kabel (Affiliate-Link) aus dem Schrank geholt. Damit der Adapter passt, habe ich mir noch das DeLock Seriell Kabel (1m) (Affiliate-Link) besorgen m├╝ssen, da der Beamer eine RS232-Buchse (mit Pins nach innen) besitzt und das Adapterkabel eben auch. Es gibt aber vermutlich auch Adapter, die direkt ohne zus├Ątzliches Kabel passen, da sie direkt einen 9-pligen D-Sub-Stecker (und eben keine Buchse) f├╝r den RS232-Anschluss mitbringen.

Die andere Seite des Adapters mit dem USB-Anschluss wird dann einfach an einen Raspberry Pi angeschlossen. In meinem Fall mussten noch knapp 15 Meter vom Beamer bis zum Netzwerkwerkschrank (hier ist der Raspberry Pi 3 untergebracht) ├╝berbr├╝ckt werden, wobei hierf├╝r bereits im Vorfeld ein Duplex-Netzwerkkabel verlegt wurde. Also musste mit dem┬á LogiLink Verl├Ąngerungskabel USB ├╝ber CAT5/6 bis 60 Meter (Affiliate-Link) wiederum der passende Adapter her, um das USB-Signal ├╝ber die Distanz zu ├╝bertragen. Man h├Ątte evtl. auch einfach die RS232-Verbindung verl├Ąngern k├Ânnen, ab einer Leitungsl├Ąnge von 15 Metern ist das bei RS232 aber anscheinend aufgrund etwaiger Signallaufzeitprobleme kritisch. USB hat hier wohl mehr Luft nach oben, zumindest langsames USB 1.1, welches f├╝r den Anwendungszweck vom Adapter genutzt wird.

Per FHEM serielle Schaltbefehle senden

Nachdem die hardwareseitige Verbindung steht, geht es an das Senden der passenden Schaltbefehle. Da ich keine fertigen Module f├╝r die Integration von Sony-Projektoren finden konnte, musste kurzerhand auf eine „universelle“ L├Âsung aus dem FHEM-Forum zur├╝ckgegriffen werden, welches im Thread┬áRaspberry PI und RS232 Modul f├╝r Beamer Steuerung┬ázu finden war. Das zum Download bereitgestellte Programm 99_serial.pm (Direktdownload) macht dabei genau das, was ich ben├Âtige. Es sendet „dumm“ die gew├╝nschten seriellen Befehle ├╝ber den angeschlossenen USB-Adapter. Die Datei muss dabei in das Verzeichnis /opt/fhem/FHEM/ geladen werden.

Hier schon das von mir f├╝r die Ansteuerung des Sony HW55-Projektors angepasste Programm mit Direktdownload in das passende Verzeichnis auf dem RPI mit Raspbian:

wget -P /opt/fhem/FHEM/ www.meintechblog.de/download/99_serial.pm

Angepasst werden musste dabei lediglich der Parit├Ąts-Wert von „none“ zu „even“, welcher die seriellen Schnittstellenspezifikationen festlegt:

Die Zeile
$serport->parity(’none‘);
wurde dabei ge├Ąndert in
$serport->parity(‚even‘);

Die anderen Werte wie Parit├Ąt etc. waren bereits korrekt.

Wer noch Werte anpassen muss, eben per nano editieren:

sudo nano /opt/fhem/FHEM/99_serial.pm

├änderungen per STRG + o und nachfolgendem Enter┬áspeichern und den nano-Editor per STRG + x schlie├čen.

Damit FHEM die neu eingeschleuste Datei ber├╝cksichtigt, wird in der FHEM-Kommandozeile der Befehl

reload 99_serial.pm

abgesetzt.

Um den Sony Projektor in den Standby-Modus (Power Off) zu schicken, l├Ąsst sich jetzt direkt mal der FHEM-Konsolenbefehl

{serial_comm(38400,"/dev/ttyUSB0","\xA9\x17\x2F\x00\x00\x00\x3F\x9A")}

testen.

38400 ist dabei die Baudrate, /dev/ttyUSB0 der Pfad, unter dem der RS232-USB-Adapter vom Betriebssytem erkannt wird (kann je nach System nat├╝rlich abweichen) und \xA9\x17\x2F\x00\x00\x00\x3F\x9A als eigentlicher Schaltbefehl, welcher zum oben ermittelten Befehl „A9 17 2F 00 00 00 3F 9A“ syntaktisch insofern abweicht, dass jedes Leerzeichen mit einem \x┬ágetauscht werden muss, inkl. f├╝hremdem \x.┬áDas f├╝hrende┬á\x hatte ich dabei erst vergessen, dann l├Ąuft nat├╝rlich nichts.

Projektor in FHEM abbilden und automatisieren

Zuerst habe ich einen Dummy namens WZ.Projektor erzeugt, welcher einige WebCmds erh├Ąlt, ├╝ber welche die danach definierten Befehle per notify aufgerufen werden k├Ânnen. Das ist nicht wirklich h├╝bsch – ich weiss -, f├╝r meinen Anwendungszweck aber erstmal v├Âllig ausreichend.

define WZ.Projektor dummy
attr WZ.Projektor room Wohnzimmer
attr WZ.Projektor webCmd on:off:LampLow:LampHigh:MotionEnhancerOff:MotionEnhancerLow:MotionEnhancerHigh

define WZProjektorOn notify WZ.Projektor.on {serial_comm(38400,"/dev/ttyUSB0","\xA9\x17\x2E\x00\x00\x00\x3F\x9A")};; sleep 1;; {serial_comm(38400,"/dev/ttyUSB0","\xA9\x17\x2E\x00\x00\x00\x3F\x9A")}

define WZProjektorOff notify WZ.Projektor.off {serial_comm(38400,"/dev/ttyUSB0","\xA9\x17\x2F\x00\x00\x00\x3F\x9A")}

define WZProjektorLampLow notify WZ.Projektor.LampLow {serial_comm(38400,"/dev/ttyUSB0","\xA9\x00\x1A\x00\x00\x00\x1A\x9A")}

define WZProjektorLampHigh notify WZ.Projektor.LampHigh {serial_comm(38400,"/dev/ttyUSB0","\xA9\x00\x1A\x00\x00\x01\x1B\x9A")}

define WZProjektorMotionEnhancerOff notify WZ.Projektor.MotionEnhancerOff {serial_comm(38400,"/dev/ttyUSB0","\xA9\x00\x59\x00\x00\x00\x59\x9A")}

define WZProjektorMotionEnhancerLow notify WZ.Projektor.MotionEnhancerLow {serial_comm(38400,"/dev/ttyUSB0","\xA9\x00\x59\x00\x00\x01\x59\x9A")}

define WZProjektorMotionEnhancerHigh notify WZ.Projektor.MotionEnhancerHigh {serial_comm(38400,"/dev/ttyUSB0","\xA9\x00\x59\x00\x00\x02\x5B\x9A")}

Als Besonderheit ist hier der Einschaltbefehl hervorzuheben, welcher zwei Mal hintereinander mit kurzer Pause (hier eine Sekunde) gesendet werden muss.

Damit l├Ąsst sich der Projektor jetzt schon mal rudiment├Ąr ├╝ber das FHEM-Interface schalten.

Zwecks Automatisierung nutze ich dann noch zwei notify-Befehle, welche auf den Status meiner Harmony Elite (Affiliate-Link) reagieren und den Sony Beamer entsprechend ein- bzw. ausschalten:

define HAWZProjektorOn notify HarmonyHub.currentActivity:.starting.* set WZ.Projektor on

define HAWZProjektorOff notify HarmonyHub.currentActivity:.PowerOff set WZ.Projektor off

Und das war es auch schon, vorerst…

Aus meinem t├Ąglichen Leben

Ich kann es kaum glauben, dass ich es ├╝ber eineinhalb Jahre ausgehalten habe, bis im Neubau nun endlich ein Beamer zum Einsatz kommen durfte. Ich hatte zuvor bestimmt die letzten 15 Jahre durchgehend Projektoren und war immer super begeistert vom Kinofeeling (mein erster Beamer war ├╝brigens ein Sanyo PLV-Z1 – damals ein absoluter Meilenstein). In Kombination mit einer 92 Zoll Hochkontrastleinwand (Elite Screens Aeon – Cinegrey 3D – Edge Free)┬átoppt der Sony HW55 (Affiliate-Link) nun aber mit Abstand alles, was meine angestrengten Augen bisher sehen durften.

Obwohl ich sonst Bildverbesserungen auf den Tod hasse (ja, ich HASSE sowas und rege mich immer sofort auf, wenn jemand bei seinem TV die Zwischenbildberechnung aktiviert hat und es zum Soap-Opera-Effekt kommt), konnte mich der Sony sofort von seiner Reality Creation (smarte Bildnachsch├Ąrfung) und vorallem vom Motion Flow (Zwischenbildberechnung) im niedrigen Modus ├╝berzeugen. Meiner Meinung nach im wahrsten Sinne des Wortes „gro├čes Kino“ und augen├Âffnende Technologien, die beim Nachfolger Sony HW65 (Affiliate-Link) sogar noch ein wenig verbessert wurden – inkl. der neu hinzugekommenen Berechnung von Zwischenfarben, um den „Treppenstufeneffekt“ (bei normaler 8 Bit-Zuspielung) zu kaschieren. Sony macht hier einen grandiosen Job, ich habe bisher wirklich noch nichts Besseres gesehen.

Und mit der nun vollzogenen Integration des Projektors in die bestehende Multimediasteuerung k├Ânnte es fast nicht mehr besser werden. Einzig w├Ąre es jetzt noch cool einige Statuswerte des Projektors auszulesen, wie bpsw. die aktuelle Lampenlaufzeit und den Betriebszustand (Ein, Aus, Standby, etc.). Denn dann k├Ânnte ich den Projektor auch guten Gewissens komplett vom Strom trennen (jede Steckdose bei mir im Haus ist ohnehin schaltbar), ohne einen Lampentod durch ├ťberhitzung bei versehentlicher Stromtrennung zu riskieren. Hierf├╝r muss man ├╝ber die RS232-Schnittstelle dann keine set-Befehle senden, sondern entsprechende get-Befehle, wobei die R├╝ckgabewerte eben in FHEM als Readings angelegt werden m├╝ssen.

Aber das ist dann Ausbaustufe zwei, erstmal bin ich schon mal froh, dass das mit der seriellen ├ťbertragung so gut geklappt hat, auch wenn es anfangs etwas holprig war. Und evtl. hat ja jemand eine fertige bzw. bessere L├Âsung zur seriellen Ansteuerung von Sony-Projektoren, bei der die Statuswerte direkt miteingelesen werden k├Ânnen. Dann immer her damit und jedem viel Spa├č mit seinem eigenen Heimkino! Gerade in der dunklen Winterzeit gibt es abends doch kaum etwas Besseres, als einen Blockbuster in ├╝bertriebener Kinogr├Â├če in den eigenen vier W├Ąnden genie├čen zu k├Ânnen…

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Verpasse keine Inhalte mehr! Trage dich in den Newsletter ein und folge uns auf Facebook.

Was ist ein Affiliate-Link? Wenn du auf einen Affiliate-Link klickst und ├╝ber diesen Link einkaufst, bekomme ich vom betreffenden Online-Shop oder Anbieter eine Provision, was mich u.A. bei den laufenden Kosten den Blogs unterst├╝tzt. F├╝r dich ver├Ąndert sich der Preis nicht.

J├Ârg

hat meintechblog.de ins Leben gerufen, um seine Technikbegeisterung und Erkenntnisse zu teilen. Er ver├Âffentlicht regelm├Ą├čig Howtos in den Bereichen Smart Home und Home Entertainment. Mehr Infos

9 Gedanken zu „Sony Beamer HW55 in FHEM per RS232 steuern“

  1. Vielleicht komplett am Thema vorbei, aber: Den PLV-Z1 hatte ich damals auch. War ein super Ger├Ąt f├╝r seine Zeit. Danach hatte ich dann allerdings keine Projektoren mehr im Einsatz.

    1. Hi Patrick,
      was w├Ąre das Leben ohne „off topic“ :D
      Der PLV-Z1 hat damals wirklich alles weggeblasen und man dachte, dass die DVD-Aufl├Âsung mit 704×576 Bildpunkten schon meeeega scharf ist. Aus heutiger Sicht echt lustig, wobei ich von 4k nach wie vor nicht viel halte. Aufl├Âsung ist eben lange nicht alles – das sieht man besonders gut bei Digitalkameras. Aber gut, nach 3D und UHD wird jetzt ja bereits mit HDR die n├Ąchste Marketing-Kuh durchs Dorf getrieben. Und 8k steht auch schon Schlange… :D

      Aber zur├╝ck zum Thema: Gladiator hat mich voll weggehauen, vorallem die Szene, in der Russel Crowe mit den Fingern durchs Getreidefeld streift. H├Ąnsehautalarm!!! Glaub das muss ich mir direkt nochmal in BluRay-Quali mit der neuen Hardware ansehen…
      Warum hast du nach dem Z1 keinen Neuen geholt? Selbst die jetzigen TVs mit 70+ Zoll sind doch im Vergleich wirklich mickrig, da kommt kein Kinofeeling auf…

      Gr├╝├če
      J├Ârg

  2. Moin J├Ârg,

    ich habe den gleichen Beamer. Kann es sein, dass Du dich bei der Bemerkung f├╝r Poer on/off vertan hast? BEim Ausschalten muss man die FB zweimal bet├Ątigen, nicht beim einschalten. ;)

    Dar├╝berhinaus bin ich lustigerweise gerade an genu derselben Problematik mit der Fernsteuerung des Beamers dran…

    Ich habe es mit einem BroadLink RM pro+ (Affiliate-Link) ca. 20ÔéČ umgesetzt. Das vielleicht nur zur Vervollst├Ąndigung! ;) Weiter so, geiler Blog!

    1. Hi Mike,
      beim Schalten per RS232 ist die Logik exakt so, wie im Blogpost beschrieben: 2x der Ein-Befehl und 1x der Aus-Befehl.

      Gr├╝├če und viel Erfolg bei der Umsetzung!
      J├Ârg

      PS: Beim BroadLink nutzt du Infrarotbefehle, oder?

    2. Ji J├Ârg,
      okay, das klingt zwar merkw├╝rdig, ist aber wohl so. ;)

      Der Broadlink macht IR & Funk (433MHz). F├╝r den Beamer nutze ich IR. Funktioniert einwandfrei.

      Gruss
      Mike

  3. Hallo J├Ârg,
    ich habe einen Vivitec H1189 Beamer und m├Âchte ihn ├╝ber einen Zeropi mit FHEM steuern. Die Installation der Software habe ich auch soweit hinbekommen. doch wenn ich den Einzeiler aus deinem Blog eingebe mit den Hex angaben f├╝r meinen Beamer passiert nichts. Ich bekomme im Logfile von FHEM folgende Fehlermeldung:

    2019.09.06 23:05:47 1: PERL WARNING: Illegal hexadecimal digit ‚\‘ ignored at (eval 33) line 1.
    2019.09.06 23:05:47 3: eval: {serial_comm(9600,“/dev/ttyUSB0″, „\x00\x56\x9\x9\x53\x30\x30\x30\x31\x0D“)}

    Ich wei├č nicht was ich falsch mache und ob die Hex angaben so richtig sind.
    kannst du mir vielleicht helfen?

    Ich w├╝rde dir die Seite aus dem Handbuch gerne zukommen lassen doch geht das hier leider nicht.

    Danke!

  4. Hallo,
    ich bin ├╝ber deinen Beitrag gestolpert, da ich eine Alternative mit Raspi zum Steuern meiner Heimkinoger├Ąte suchte, da mein Global Cache GC-100-12 kaputt gegangen ist.Leider bin ich kein Fan von FHEM weshalb diese L├Âsung doch ausfiel und ich mir doch wieder einen GC-100-12 gebraucht f├╝r 120ÔéČ gekauft habe.
    Dieser kann genau das was du damals suchtest.

    Evtl. ist dieser auch f├╝r andere Interessant die hier ├╝ber deinen Blog stolpern.
    In ebay Kleinanzeigen findet man sie man ab und zu, sowie die kleineren iTach Ger├Ąte.

    Weiterhin viel Spa├č beim Filme schauen
    Tobias

    1. Hi Tobias,
      danke f├╝r deinen Hardwaretipp! Habe es ├╝brigens zwischenzeitlich ├╝ber NodeRED mit entsprechenden RS232-Befehlen umgesetzt – funktioniert damit also auch ohne FHEM. :)

      Viele Gr├╝├če
      J├Ârg

Schreibe einen Kommentar

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