Ich wollte mal berichten, was ich mit Homebridge getrieben habe. Ich habe nämlich bestimmt keine sonderlich alttägliche Konfiguration gebastelt.
Was node.js angeht, kann man nämlich nur von Basteln sprechen. Ich bin ein erfahrener Linux-Nutzer, bin seit über 25 Jahren Unix/Linux-Admin und muss kann schon ein bisschen mehr als ein einfaches ls - aber dieses node.js-Zeugs finde ich übelst. Egal, aber kommt bloß nicht auf die Idee, mir dazu Fragen zu stellen. Mein Setup funktioniert, aber ich kann teilweise nicht sagen, warum. Gefrickel.
Zur Sache: ich bin seit 35 Jahren auf der Suche nach schönen Lampen, und innerhalb dieser Zeitspanne habe ich genau zwei gefunden von der Sorte, die ich auch bezahlen wollte. Natürlich habe ich in der langen Zeit noch viel anderes schönes Zeugs gefunden, aber meine Bank hat immer den Kopf geschüttelt und gemeint: „so eine teure Lampe brauchen wir nicht“.
Da fielen mir die feuchten Träume meiner Pubertät ein. Nein, nicht die Phantasien über Brigitte, Kirsten und Susanne, sondern bewegliche Bühnenbeleuchtung, heutzutage Moving Heads genannt. Warum nicht solche Wackeldackel unter die Decke hängen und damit nicht nur Farbe und Lichtstärke, sondern auch die Beleuchtungsrichtung steuern? Also beispielsweise eine Szene kreieren, in der drei oder vier Moving Heads die Bilder an der Wand beleuchten, so als Standard-Wohnzimmerszene. Und dann könnte man, wenn man das Heimkino einschaltet, alle bis auf einen ausmachen, und der eine dreht sich so, dass er nun schwach den Wohnzimmertisch beleuchtet. Oder ich bekomme Licht an den Schreibtisch, wenn ich es dort brauche. Oder ich mach ein farbige Kleckse auf den Fußboden, mal hier, mal dort. Was auch immer.
So wie fucking Genesis 1986 mit ihren Vary*lites in der Düsseldorfer Philipshalle. Genau so.
Für mich hörte sich das gut an, also fing ich mich an damit zu beschäftigen. Ich habe gelernt, dass es verschiedene Arten von Moving Heads gibt, die Washer, die Teams und die Spots. Wie bei allen Lampen ist auch hier die Preisskala nach oben offen. Ich hab, um zu testen, dann einen billigen Washer gekauft, ein China-Ding namens Lixada Moving Head Mini LED [1] für 70 Eurodinger .
Um einen Moving Head zu steuern, muss man das DMX-Protokoll verwenden. Die Bühnentechnik verwendet dieses Protokoll. Nur ganz kurz: Die Lampen werden mittels eines dreipoligen Kabels in Reihe miteinander verbunden, an ein Ende kommt eine Art Endwiderstand (soll man machen, hab ich aber nicht getan) und das andere Ende wird in ein Mischpult eingestöpselt. Jeder Lampe wird per Dipswitch an der Lampe eine Adresse zugewiesen. Und am Mischpult kann man dann die Lampen steuern, unter anderem Dim (Lichtstärke), Tilt (vertikale Bewegung), Pan (horizontale Bewegung), und die Farbe des Lichts.
Dabei kann man Lampen verschiedener Hersteller mixen. Ist alles kompatibel. Zumindest mit gutem Willen.
Nun habe ich kein derartiges Mischpult und wollte auch keins im Wohnzimmer haben. Ich wollte für die Steuerung HomeKit verwenden. Also ging’s ans Basteln.
Ich hab also einen Raspi 3 erworben. Auf den habe ich Homebridge installiert - mühsam per Hand - und danach eine Software namens dmx-web [2], witzigerweise auch ein node.js-Modul. Da der Raspi keinen dreipoligen Anschluss anbietet, um dort das DMX-Kabel anzuschließen, habe ich bei dmx4all ein NanoDMX USB Interface [3] für knappe 60 Euro gekauft. Dabei handelt es sich um ein Kabel, das auf der einen Seite den Dreipolstecker hat und auf der anderen Seite einen USB-Stecker. Und der passt ja in den Raspi.
Nur mal so zwischendurch: dieses Wissen musste ich mir erstmal draufschaffen. Wie funktioniert node.js, wie funktioniert DMX, wie funktioniert die Adressierung, wie funktioniert ein Moving Head. Ich hab vorher nichts drüber gewusst, und der Lernprozess hat so seine Zeit gedauert.
Zu dmx-web gibt es nur sehr schmale Doku. Ein einzeiliges bash-Skript hat mehr Inhalt. Nachdem ich die beiliegende Konfigurationsdatei halbwegs verstanden hatte, habe ich sie so verändert, das sie meinen Lixada Washer vernünftig beschrieb. Glückliches Lächeln verzerrte mein Gesicht, als ich den Moving Head dann nach einigen Fehlversuchen per Webinterface, das dmx-web mitliefert, von meinem PC aus steuern konnte. Links, rechts, hoch, runter, rot, blau, gelb, grün. Geilomat.
Für Homebridge gibt es ein Plug-in, das sich homebridge-dmxuniverse [4] nennt. Dieses Plug-in arbeitet mit der API von dmx-web zusammen. Ich kann wiedi, dem Programmierer von dmx-web, nur dafür danken, dass er so was Feines wie diese API programmiert hat, und bluemaex, dem Programmierer von homebridge-dmxuniverse, dafür, dass er diese API nutzt.
Mit dem Plug-in homebridge-dmxuniverse kommt nun zusammen, was zusammen gehört. Allerdings musste ich dafür für meinen Washer einen kleinen Treiber in JavaScript schreiben. Hässlich, hässlich sowas, vor allem, wenn man wie ich keinen blassen Schimmer von JavaScript hat. Ich habe also einen Treiber genommen, der bei homebridge-dmxuniverse für eine ganz andere Lampe dabei war und habe nach einer Weile herausbekommen, wie ich den so verändern konnte, dass damit mein Moving Head funktioniert.
Und was soll ich sagen: die Scheiße geht! Der Washer taucht jetzt in Apples Home App auf, und weil ich noch fies getrickst habe, kann ich nun mit der App Dim, Tilt und Pan einstellen. Und ja, das ist eindeutig besser als das, was mir Brigitte, Kirsten und Susanne damals hätten bieten können.
Kleine Problemchen gibt dann natürlich doch: HomeKit kennt keine Lampen, die sich bewegen können. HomeKit kennt nur Lichtstärke und Farbe, nicht aber eine Richtung. Das bedeutet, dass es kein richtiges Userinterface für Tilt oder Pan gibt. Ich habe mir damit beholfen, dass ich drei Treiber zusammengefrickelt habe: einen für Lichtstärke, einen für Tilt und einen für Pan. Daher taucht der Washer nun dreimal in der Home App auf: als lixada-led, lixada-tilt und lixada-pan. Bei letzteren beiden schiebe am Helligkeitsregler und die Lampe bewegt sich.
Darüber hinaus sind meine Anpassungen der JavaScript-basierten Treiber nicht gerade ein großes Werk. Es funktioniert halt, aber schön ist es nicht.
Und, ok, ich muss es zugeben, so wie Genesis 1986 isses jetzt gerade auch nicht mit dem einen Washer, aber wenn man die Augen zusammenkneift, kann man's so ein bisschen erahnen.
Mein Test ist damit beendet. Demnächst werde ich also drei oder vier Cameo NanoSpot 120 Moving Head Spots [5] beschaffen. Und dann wollen wir mal sehen, ob mein Plan am Ende auch in Gänze aufgeht und das ganze cool funktioniert. Ich muss noch ein bisschen an den Moving Heads basteln, die haben alle laute Lüfter für die Servos und die will ich noch durch leisere austauschen oder schaltbar machen. Und in diesen Dingen bin ich noch schlechter als in JavaScript-Programmierung. Mit dem Lötkolben, über den ich verfüge, kann man auch Dachrinnen reparieren. Immerhin habe ich die erweitere Alexa-Version von Homebridge installiert und kann den Washer nun auch per Alexa steuern.
Dieses Setup ist bestimmt nichts für jedermann, aber ich wollte es euch trotzdem mal vorstellen.
Gruß,
Stefan
[1] https://www.amazon.de/Lixada-D…+head&tag=hktips-forum-21
[2] https://github.com/wiedi/node-dmx
[3] http://www.shop.dmx4all.de/de/…anoDMX-USB-Interface.html
[4] https://github.com/bluemaex/homebridge-dmxuniverse
[5] https://www.thomann.de/de/cameo_nanaspot_120.htm