Mit dem iPhone das Homecinema steuern

In meinem eigenen Blog habe ich mein Homecinema vorgestellt, darin kann ich das gesamte Heimkino per iPhone steuern. Von einem ‚Remote TouchPad für Vista, zu einer Lichtsteuerung und einem iPhone Interface ist alles dabei, was das iPhone-Herz begehrt. Bevor wir ab morgen mit neuen Apps überflutet werden, wollte ich euch meine Lösung vorstellen, welche natürlich gerne zum Nachahmen anregen soll und um euch die Zeit bis heute Abend zu verkürzen.

Ich schreibe hier nur über die iPhone Steuerung, wer sich für das gesamte Homecinema interessiert, findet hier alle Beiträge.

iPhone Steuerung von Vista

Um eine vollständige Steuerung von Vista per iPhone zu ermöglichen, müssen einige Programme zusammenarbeiten. Für die Steuerung des Vista Mediacenters habe ich mich für TouchPad Pro mit der MediaServer Erweiterung entschieden.

Mediacenter TouchPad Pro

TochPad Pro ist ein natives Tool für das iPhone welches auf VNC setzt. So muss auf dem zu steuernden System ein VNC Server laufen. Anders als andere VNC Lösungen für das iPhone, zeigt TouchPad Pro kein RemoteScreen (ist zwar einschaltbar) sondern macht den iPhone Screen zum Touchpad wie auf einem Notebook. Die MultiTouch Fähigkeiten des iPhones werden dabei voll ausgereizt.
Der MediaServer für TouchPad Pro erweitert die Remote Fähigkeiten um einige Media-Steuerungs-Befehle. TouchPad Pro kann in seinem Standard-Funktionsumfang nur Tastaturbefehle senden; mit dem MediaServer sind auch die wichtigsten Media Befehle wie Play, Pause, Stop, Spulen, etc. möglich. Die MediaServer Erweiterung ist ein eigenes Programm welches auf dem zu steuernden System installiert werden muss.

Mit der Touchpad Pro und MediaServer Kombination, wird das iPhone zur perfekten Remote Steuerung fürs Vista MediaCenter.

Wenn ich mein Mediacenter mit dem iPhone steuern kann, dann will ich auch die Lichter ein und ausschalten oder dem Soundsystem sagen welcher Audiokanal gewählt werden soll. Wenn am Abend meine Lieblings-Fernsehserie angeschaut ist, will ich auf einen Knopf drücken und das ganze Homecinema soll sich abschalten.

Solch eine Lösung habe ich mir gebaut, aus verschiedenen Komponenten:

Infrarotsteuerung

Infrarot-Befehle sind nichts anderes als eine bestimmte Abfolge von blinkenden Infrarot LEDs. Diese können von einem IR-Empfänger aufgenommen werden und über IR-LEDs wieder abgegeben werden. Für Linux gibt es eine Software, welche sich LIRC nennt, damit kann mit entsprechender Hardware IR-Codes von jeder Fernbedienung aufgenommen und danach wieder versendet werden. Findige Leute haben herausgefunden wie es möglich ist, dem NSLU einen IR-Empfänger und Sender zu verpassen. Dafür muss die NSLU geöffnet werden und ein bisschen mit dem Lötkolben gespielt werden. Nun besitze ich an der NSLU einen IR-Empfänger und zwei IR-LEDs, welche ich direkt vor die IR-Empfängern des Receivers und des TVs geleitet habe. Nachdem ich die IR-Codes der Fernbedienungen aufgenommen habe, kann ich per Kommandozeile auf dem NSLU jeglichen Code an den Receiver oder den TV senden, ohne dafür eine Fernbedienung in die Hand zu nehmen.

Mediacenter - IR LED

Da es ziemlich unbequem wäre, sich immer per SSH mit dem iPhone auf die NSLU einzuloggen, um dann per Kommandozeile die Befehle abzusenden, habe ich auf der NSLU einen Webserver installiert um mit einem PHP Script die Kommandozeilen Befehle auszuführen. Diese Webseite wurde natürlich speziell für das iPhone erstellt – damit auch die Optik stimmt!

Mediacenter - IR Led

Lichter- Subwoofer- und PC-Steuerung

Die beiden Lampen und den Subwoofer des Soundsystems kann ich leider nicht per Infrarot steuern, so war die einzige Möglichkeit eine Lösung zu suchen, bei denen ich die Stromzufuhr direkt steuern kann. Gefunden habe ich eine solche Lösung mit zwei Entwicklerboards von Velleman. Das Erste ist das K8055, dieses habe ich während meiner Ausbildung gebaut und erlebt heute seine persönliche Renaissance. Es besitzt fünf digitale und zwei analoge Eingänge und acht digitale und zwei analoge Ausgänge, diese können per USB gesteuert werden. Das Beste daran: Es gibt eine Linux Portierung um die Eingänge und Ausgänge zu konfigurieren. Damit habe ich es geschafft, dass Board über meine NSLU zu betreiben.
Mit den digitalen Ausgängen kann man aber noch keine Lichter steuern, dafür benutze ich das K8056 ebenfalls von Velleman. Dieses Board besitzt acht Relais welche entweder per RS232 oder über acht digitale Eingänge gesteuert werden können, da das K8055 acht digitale Ausgänge besitzt, passen diese beiden Entwicklerboards perfekt zusammen. Damit ich jedes einzelne Relais schalten kann, war Programmieraufwand gefordert, da die Linuxportierung der Software für das K8055 über einen 8-Bit Code nur alle Ausgänge gleichzeitig schalten kann. Damit jeder einzeln geschaltet werden kann musste ich eine Software schreiben, welche zuerst herausfindet, ob das zu schaltende Relais aktuell ein oder ausgeschaltet ist und dann je nach Status alle Ausgänge neu definiert.
Um eine sichere Handhabung mit dem 230V Strom zu besitzen, habe ich die beiden Entwicklerboards in eine Plastikkiste gepackt und dort Steckdosen angebracht. So steuere ich mit den Relais die Steckdosen, an welche ich jegliche Geräte anschließen kann.

Mediacenter - Gerätesteuerung

Um den Mediacenter-Computer per Remote zu starten, gab es zwei Möglichkeiten: Wake-on-LAN oder direkte Steuerung über das Kurzschließen der Power Kontakte auf dem Mainboard. Da mindestens noch ein Relais auf dem Board frei ist, habe ich die Power Kontakte des Mainbaords an ein Relais geführt. So muss ich nur kurz das Relais einschalten und wieder ausschalten und der Computer fährt entweder hoch oder geht in den Ruhezustand. Wie auch bei der Infrarotsteuerung können die Relais per Kommandozeile ein- und ausgeschaltet werden. Damit dies schöner und einfacher funktioniert habe ich ein WebGUI für das iPhone programmiert.

iPhone Webseite

Per Apache und PHP ist es sehr einfach Kommandozeilenbefehle auszuführen, damit eine Webseite auch iPhone-like aussieht gibt es einige kleine Frameworks in Javascript welche einem diese Aufgabe abnehmen. Ich habe mich für iUI entschieden, da es die wichtigsten Funktionen wie Listen, Hoch- und Querformat, ON/OFF Buttons anbietet. Ein Beispiel für iUI findet sich hier. In einem Webbrowser sieht das Ganze nicht sehr schön aus, hier kann ich iPhoney empfehlen, es emuliert das Mobile Safari des iPhone-Bildschirms.
iUI besitzt zwar die Möglichkeit Seiten per AJAX nachzuladen, aber nicht eine gesamte Webseite im Hintergrund mit AJAX aufzurufen (z.B. mit einem Kommandozeilenbefehl), sobald auf einen Listeneintrag oder einen ON/OFF Button gedrückt wird. Um diese Fähigkeiten habe ich iUI erweitert, falls jemand Interesse daran hätte, soll er sich bei mir melden. Zusätzlich habe ich die Funktion eingebaut, dass der aktuelle Stand (On oder Off) der Lichter und des Subwoofers, mit den Toggle Buttons ON/OFF angezeigt wird. So weiß ich immer ob das Licht gerade ein oder ausgeschaltet ist, auch wenn ich nicht daneben stehe.
Neben den normalen Ein- und Ausschaltbefehlen für einzelne Komponenten habe ich mir auch ein Script gebaut, welches die wichtigsten Komponenten (Sound, TV, Computer) einschaltet und ein Ausschaltscript, welches alle laufenden Komponenten ausschaltet, so kann man auf dem Weg ins Bett sein Homecinema ausschalten. Mit nur einem Klick.

Ich werde in den nächsten Tagen ein kleines Video über die Funktionsweise aller Komponenten erstellen, bis dahin gibt es erst einmal Screenshots.

Mediacenter - iPhone

Fazit

Mit all diesen verschiedenen Hardware und Software Komponenten ist es mir möglich, das gesamte Homecinema per iPhone zu steuern. Zurzeit läuft es noch über einen Webbrowser, sobald die neue iPhone Version mit dem SDK veröffentlicht wurde, werde ich überlegen eine native Software zu programmieren, welche die Geräte-Steuerung und das TouchPad Pro kombiniert.

Wie viele Projekte wird auch mein Homecinema / Mediacenter Projekt nie abgeschlossen sein, immer wieder kommen einem neue Ideen. So plane ich bereits, wie ich die sichtbaren Lautsprecher und den Receiver verschwinden lassen könnte oder die Lichtsteuerung nicht nur auf das Wohnzimmer beschränke. Eine Steuerung für alle Lichter in der ganzen Wohnung welche vom iPhone bedient wird, wäre schon etwas Feines.

Ich bin immer offen für neue Ideen und Anregungen, wer gerne eine Live-Präsentation hätte, kann bei mir in der Schweiz vorbeikommen.