Netzwerk-Steuerung von Mitsubishi-Projektoren

In einem weiteren Teil der Reihe über Netzwerksteuerung von Heimkino-Komponenten fasse ich mich mal vergleichsweise kurz. Heute geht es um Befehle, die man einem Mitsubishi-Projektor senden kann. Speziell geht es um das Modell HC7800D, einen der letzten 3D-DLP-Projektoren, die Mitsubishi hergestellt hat.

Mitsubishi HC7800DWie sich mittlerweile herumgesprochen haben dürfte, ist Mitsubishi aus der Entwicklung von Projektoren ausgestiegen. Trotzdem bin ich froh, mich damals noch für das oben genannte Modell entschieden zu haben, weil Bildqualität, Helligkeit und Lüftergeräusch wirklich hervorragend sind. Gerade deshalb bedauere ich die Entscheidung von Mitsubishi, sich aus dem Projektor-Geschäft zurückzuziehen, wirklich sehr. Leider sollte dieser Artikel deshalb auch nur noch für wenige Mitsubishi-Besitzer interessant sein.

Zuletzt ging es um die Schnittstelle PJLink, die der Mitsubishi ebenfalls unterstützt. Damit lässt sich fast alles machen, was für eine Heim(kino)-Automatisierung notwendig ist. Was PJLink aber fehlt sind konkrete Funktionen, die sich auf das Projektor-Modell beziehen — denn was theoretisch bei jedem Gerät völlig anders funktionieren kann, lässt sich kaum in einer über Hersteller und Gerätetypen hinweg standardisierten Schnittstelle abbilden.

Auffällig ist zunächst, dass PJLink keine Cursor-Tasten unterstützt, und damit eine Menü-Bedienung von vorneherein ausgeschlossen ist (obwohl man das meiner Meinung nach problemlos hätte standardisieren können, weil wohl ausnahmslos jedes Gerät über ein Menükreuz auf der Fernbedienung verfügt). Will man also mehr mit seinem Projektor machen, als ihn ein- und auszuschalten, den Eingang zu wechseln und ein paar Informationen abzurufen, kommt man mit PJLink nicht weiter. Hier kommen die hauseigenen Befehle von Mitsubishi zum Einsatz. Bei Projektoren anderer Hersteller ist das sicher sehr ähnlich. Im Grunde unterstützen viele Geräte also mehrere Schnittstellen — zum Beispiel PJLink und ihre eigene.

Im Fall von Mitsubishi unterscheidet sich die herstellerspezifische Schnittstelle kaum von PJLink. Das TCP-Protokoll und die Art, wie Befehle formuliert werden, sind praktisch identisch. Auch die Authentifizierung mit einem Passwort funktioniert gleich. Nur der Aufbau der Befehle ist ein etwas anderer. Das hat es mir, nachdem PJLink bereits implementiert war, auch sehr leicht gemacht, die noch fehlenden Befehle über die Mitsubishi-Schnittstelle nachzurüsten.

Und das macht es mir heute leicht, diesen Artikel zu schreiben, denn ich verweise an dieser Stelle einfach nochmal auf meine Anleitung zu PJLink: Die Kommunikation funktioniert genau gleich, nur die Befehle sind anders aufgebaut.

Anstatt hier umfangreichen Quellcode zu zeigen, stelle ich Euch hier einfach mein Node.js-Modul zur Verfügung, aus dem Ihr alles entnehmen könnt. Man findet darin die relevanten Codestellen leicht wieder, die ich im PJLink-Artikel schon gezeigt habe, nur dass sie eben auf Mitsubishi umgeschrieben wurden.

Verwendet wird das Modul wie im folgenden Beispiel gezeigt. Eine Dokumentation gibt es nicht, der Code ist aber übersichtlich genug aufgebaut, um die möglichen Funktionen zur Steuerung selbst herausfinden zu können.

var Mitsubishi = require("./mitsubishi.js");

var projector = new Mitsubishi.Projector({
    id: "My Projector",
    ip: "192.168.178.47",
    password: "admin"
});

projector.setPower("On", function (result) {
    console.log("Power On");
    console.log(result);
});

projector.showMessage("Hello World!", 20000, { "blink": true });

Ich habe es inzwischen aufgegeben, das parallel auch noch in PHP zu entwickeln, weil ich Node.js als die perfekte Umgebung für meine Kino-Steuerung auserkoren habe. Man erreicht einfach mit wesentlich weniger Code deutlich bessere Ergebnisse. Wer trotzdem seinen Mitsubishi-Projektor mit PHP steuern möchte, nimmt sich einfach das Code-Beispiel von PJLink und tauscht die Befehle aus — es funktioniert wie gesagt nahezu identisch.

Merkmale der Mitsubishi-Steuerung

Einige besondere Features möchte ich an dieser Stelle aber noch hervorheben. Denn auch Mitsubishi hat ein paar nette Spielereien eingebaut, die es über die Fernbedienung nicht gibt. Wie ich diese konkret nutze, erläutere ich in einem späteren Artikel dieser Serie.

Grundsätzlich können alle Befehle der Fernbedienung abgesetzt werden, indem man dem Projektor die Tastencodes sendet. Damit ist man schon mal auf der sicheren Seite und kann alle Funktionen irgendwie ansteuern.

Einstellungen direkt ändern

Steuerelemente der App für diverse 3D-Einstellungen des Beamers
Steuerelemente meiner App für diverse 3D-Einstellungen und Testbilder

Wie auch bei Yamaha-Receivern ist es über die Ethernet-Schnittstelle von Mitsubishi möglich, sämtliche Einstellungen und Menübefehle des Gerätes mit separaten Kommandos direkt zu verändern oder abzurufen. Jede Option hat ihr eigenes Kürzel und entsprechende Parameter. Damit lässt sich eine Benutzeroberfläche bauen, in der man alle Einstellungen direkt vornehmen kann, ohne jemals das Menü des Projektors aufzurufen. Das Gerät ändert die Einstellungen, ohne etwas im Bild anzuzeigen, was die Funktionen sehr interessant für „schöne“ Filmvorführungen macht.

Die Einstellungen zur Farbkalibrierung lassen sich auslesen, beliebig speichern und wieder setzen. Das ermöglicht im Grunde endlos viele gespeicherte Voreinstellungen, die weit über die wenigen internen Speicherplätze hinaus gehen. Auf die gleiche Weise lassen sich alle anderen Einstellungen extern speichern, was von Haus aus teilweise gar nicht möglich ist.

Textmeldungen im Bild ausgeben

Für den HC7800D gibt es im Internet gute Dokumentationen zu den Netzwerk-Befehlen. Hier muss man zum Glück nicht beim Hersteller betteln gehen. Was aber vollkommen undokumentiert zu sein scheint, ist die Möglichkeit, Textmeldungen auf dem projizierten Bild auszugeben. Die von Mitsubishi bereitgestellte Software ProjectorView Global+ zur Überwachung von Projektoren in einem Netzwerk bietet diese Funktion, was auch der einzige Hinweis auf dieses Feature war. Ich musste mittels Wireshark den Netzwerkverkehr mithören und die gesendeten Befehle auf ihre Bedeutung hin analysieren, um herauszufinden, wie das geht.

Wenn diese Funktion so gut versteckt ist, fragt man sich natürlich, was die für einen Nutzen hat. Normalerweise gibt der Projektor Meldungen aus, wenn man den Eingang wechselt oder das Ausschalten bestätigen soll. Individuelle Texte sind vielleicht in öffentlichen Einrichtungen mit Bildprojektion interessant, nach dem Motto „Tschüss, Museumsbesucher“ — und aus das Ding. Aber zuhause im Heimkino?

Naja, wer’s braucht. Ich nutze die Funktion, damit mir meine Frau Nachrichten ins Bild schicken kann, wenn oben im Wohnzimmer die Bude zu sehr wackelt. Direkt auf’s Handy braucht sie nichts zu schicken, weil ich da während einem Film nicht drauf schaue. Aber dazu mehr in einem späteren Artikel.

Der angezeigte Text lässt sich in Position, Farbe, Rahmenart und Rahmenfarbe anpassen. Wem das nicht reicht, der kann ihn auch noch blinken lassen. Die Gestaltungsmöglichkeiten sind begrenzt, ebenso die Zeichenauswahl — und das Ergebnis sieht ausgesprochen altbacken aus. Aber was soll’s? Es würde für Bastler reichen, ein „Ding Dong!“ auszugeben, wenn jemand an der Tür klingelt.


Wie auch immer, es hat sich als äußerst praktisch herausgestellt, den Projektor so in allen Einzelheiten steuern zu können. Ich nutze längst nicht alle Befehle, aber was man öfter mal verändert, habe ich mir in einer überschaubaren Benutzeroberfläche zusammengestellt.

Im nächsten Artikel der Serie gehe ich genauer auf die Lichtsteuerung mit dem jbmedia Light-Manager ein, um so den Kreis aller wichtigen Komponenten einer Heimkino-Automatisierung zu schließen. Und danach wird es Zeit für einen Rundum-Blick, für welches verrückte Vorhaben ich diesen ganzen Quatsch eigentlich programmiert habe.

Stelle eine Frage

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

Hinweise zur Verarbeitung Deiner Angaben und Widerspruchsrechte: Datenschutzerklärung