Eine Abhandlung über den Wahnsinn der Netzwerksteuerung

Heimkino-Automatisierung im Großformat

Wenn ich mir etwas in den Kopf gesetzt habe, muss ich das durchziehen. Seit ich das Heimkino zu meinen Hobbies zähle, hege ich den Wunsch nach einer vollständigen Heimkino-Automatisierung: also dem automatischen Ablauf einer Filmvorführung. Jeder Filmvorführung. Es trägt einfach erheblich zur Kino-Atmosphäre bei, kein DVD-Menü zu sehen und nicht fünf Knöpfe drücken zu müssen um den Film zu starten.

Übersicht über die gesamte App auf einem breiten Bildschirm

Die heute in vielen Geräten verfügbaren Netzwerkschnittstellen bieten diese Möglichkeit nun tatsächlich. Darauf hatte ich 20 Jahre lang in meiner Heimkino-Laufbahn gewartet. Hier nehme ich dich also mit auf einen spannenden Trip durch die Untiefen der Heimkino-Automatisierung – im Großformat!

Erste Schritte zur Heimkino-Automatisierung

Ich habe schon sehr früh diverse Versuche mit individuell konfigurierbaren Universalfernbedienungen unternommen – zuerst mit einer Philips Pronto, später mit einer Logitech Harmony.

Einstiegsbildschirm der App
Startbildschirm meiner App mit den wichtigsten Befehlen für die tägliche Filmvorführung

Das Ergebnis war immer dasselbe: Zwar lassen sich mit Makros gewisse Ereignisse automatisieren – in erster Linie das Einschalten der Geräte, der Filmstart und das Ende – aber trotzdem muss immer noch der richtige Knopf zum richtigen Zeitpunkt gedrückt werden.

Auf Besonderheiten einzelner Filme kann man damit nicht eingehen, zum Beispiel auf Filme, die eine Pause erzwingen, weil sie auf zwei Discs verteilt sind. Wenn Publikum zu Besuch ist und man eine saubere Vorführung haben möchte, ist das schon etwas unentspannt.

Wie cool wäre es denn bitteschön, einfach gar nichts mehr machen zu müssen?

Zugegeben, den Film einzulegen, sich durch das Menü zu quälen und den Film bei 00:00:00 zu pausieren wird als Vorbereitung nicht ausbleiben. Zumindest nicht, solange man Filme in hoher Qualität von der Original-Scheibe sehen will. Alles weitere kann aber vollständig automatisiert ablaufen. Wie ich dieses Ziel erreicht habe, erfährst du in der nachfolgenden Abhandlung.

Warum so kompliziert?

Unter Netzwerksteuerung versteht man schlicht und einfach das Bedienen der Heimkinogeräte – also Receiver, Player, Projektor, Licht und eventuell ein paar andere – über ein Netzwerkkabel oder WLAN. Alle Geräte hängen im heimischen Netzwerk. Die Möglichkeit der Netzwerksteuerung haben die Hersteller geschaffen, um Apps entwickeln zu können, mit denen die Geräte komfortabel vom Smartphone oder Tablet aus bedient werden können.

Dem gegenüber steht die klassische Infrarot-Fernbedienung, die beim Gerät mitgeliefert wird. Anstatt 5 Fernbedienungen auf dem Tisch zu verteilen, legt man sich meist eine Universalfernbedienung zu, die alle in sich vereint, aber letztendlich nach dem selben Prinzip arbeitet.

Wenn es das alles schon gibt, warum betreibe ich den Aufwand, eine eigene Steuerung zu entwickeln? Um die volle Kontrolle zu haben. Die braucht man nämlich für die totale Heimkino-Automatisierung.

Home Screen eines Android-Smartphones mit App-Icon und verschiedenen anderen Apps aus dem Bereich Smart Home
Wie eine ganz normale App: Verknüpfung zur Heimkino-Steuerung auf dem Startbildschirm

Zunächst einmal ist meine Steuerung im Vergleich zu den Hersteller-Apps das, was die Universalfernbedienung zu den Original-Fernbedienungen ist. Es ist eine Universalfernbedienung auf App-Basis, sozusagen eine Universal-App.

Dadurch, dass ich alles selbst entwickle, habe ich die volle Kontrolle darüber, was in der App zu sehen ist, wie Buttons angeordnet sind und wie die einzelnen Elemente funktionieren. Der eigentliche Zauber passiert aber im Hintergrund. Ein kleiner (wirklich kleiner) Server, der auf einem NAS oder Raspberry Pi laufen kann, überwacht permanent den Zustand aller Geräte, und was diese gerade machen. So kann der Server bei bestimmten Ereignissen eingreifen und selbstständig agieren.

Ganz nebenbei ist der Server für die Auslieferung der App zuständig. Weil diese eine ganz normale Anwendung auf Basis von Webtechnologien ist, kann sie auf jedem beliebigen Gerät ohne vorherige Installation verwendet werden:

  • egal ob Android, iPhone oder Windows
  • egal ob Smartphone, Tablet oder Desktop

Jedes Gerät, das einen Browser hat, kann die App ausführen. Einzige Voraussetzung: Es muss im heimischen Netzwerk angemeldet sein.

Große Ansicht der gesamten App auf einem Desktop-PC im Browserfenster
Eine Ansicht der App in einem gewöhnlichen Desktop-Browser

In den folgenden Abschnitten gebe ich dir ein paar Beispiele, wofür ich die volle Kontrolle über alle Geräte benötige. Vieles dürfte dann klarer werden.

Events und Zustandsabfrage

Auf einer Universalfernbedienung hat man üblicherweise zwei Tasten, um beispielsweise die Lautstärke zu regeln. Vielleicht gibt es auch noch Buttons auf dem Touch Screen. Was aber fehlt, ist die Anzeige der aktuellen Lautstärke.

Steuerelemente für einen AV-Receiver
Steuerung des AV-Receivers, unter anderem mit intuitivem Lautstärkeregler

Eine normale Fernbedienung kann die Lautstärke des Gerätes nicht kennen, weil es über Infrarot keinen Rückkanal gibt. Die Apps hingegen zeigen die Lautstärke an, weil sie diese über die Netzwerkschnittstelle abfragen können.

Das ermöglicht eine ganz andere Art von Benutzeroberfläche. Ein Blick auf das Display am Gerät ist kaum noch nötig. Nicht nur die Lautstärke lässt sich abfragen, sondern auch alle anderen Einstellungen:

  • Eingangswahl
  • Soundprogramm
  • Decoder
  • Informationen zur aktuell gespielten Quelle
  • Gerätekonfiguration

Wenn MP3-Dateien abgespielt werden, kann man sich sogar das Cover herunterladen. Was will man mehr?

Ach ja richtig: Woher soll die App wissen, wann sich diese Informationen ändern, damit sie sie aktualisieren kann?

Die Lösung sind Events. Viele Geräte bieten die Möglichkeit, Ereignisse in einen Kanal im Netzwerk zu senden. Die App kann an diesem Kanal “mithören” und wird so über die Ereignisse informiert. Der Weg ist bedingt durch die zugrunde liegende Technologie ein etwas anderer, als die reine Steuerung.

Das ist etwas komplizierter, als das Küchenlicht einzuschalten.

John Hammond, Jurassic Park

Aber auch wenn ein Gerät nicht in der Lage ist, Events zu senden oder man es (aufgrund der mangelnden Dokumentation) nicht schafft, mit diesen umzugehen, kann man sich relativ einfach behelfen.

Das Gehirn der Heimkino-Automatisierung: Die Ausgabe des Servers während dem Betrieb – hier wird gerade Musik von Kodi abgespielt.
Ausgabe des Servers im Betrieb: hier wird gerade Musik von Kodi abgespielt.

So frage ich manche Informationen zum Beispiel alle paar Sekunden vom Gerät ab und prüfe selbst, ob sich bestimmte Werte geändert haben. Das Ergebnis ist das selbe, nur mit ein paar Sekunden Verzögerung. Darauf kommt es aber meistens nicht an.

Mit Automatisierung hat das bisher noch nicht viel zu tun. Ich nutze Events aber nicht nur, um den aktuellen Status aller Geräte in der App anzeigen zu können. Eines der wichtigsten Ereignisse ist es, wenn das aktuelle Abspielgerät (Blu-ray-Player oder Kodi) den laufenden Titel wechselt. Das tritt immer dann auf, wenn

  • ein Film beginnt oder endet
  • das laufende Musikstück wechselt
  • oder auch der Vorspann einer DVD oder Blu-ray durchläuft: Trailer, FSK- und Copyright-Hinweis, Menüs – das sind alles einzelne kurze Filme, technisch gesehen.

Das ist mein Ansatzpunkt für die Heimkino-Automatisierung. Eine Filmvorführung kann automatisiert werden, sobald ich als Entwickler die Information zur Verfügung gestellt bekomme, ob gerade etwas abgespielt wird, was da gerade läuft und wie fortgeschritten die Wiedergabe ist. Alles weitere ist Fleißarbeit und etwas Kreativität.

Mehr dazu unten zum Thema Autopilot. Aber zuerst starten wir mal einen Film.

Start-Timer

Eine ganz wesentliche Sache, die für echte Kino-Atmosphäre sorgt, ist es, nicht zu wissen, wann der Film los geht. Das beinhaltet auch, nichts machen zu müssen, um den Film zu starten.

Bereich zum Starten eines Films
Filmstart über Timer oder Button sowie die Möglichkeit, zuvor noch das Bild auszublenden (“Video Mute”)

Mit vielen handelsüblichen Universalfernbedienungen kann man den Filmstart auf einen einzigen Tastendruck reduzieren, indem man ein Makro anlegt. Das Makro führt alle notwendigen Aktionen der Reihe nach aus:

  • Musik stoppen
  • Eingang wählen
  • Licht aus
  • Lautstärke anpassen
  • Film ab

Die etwas besseren Modelle bieten Timer als Möglichkeit, um Funktionen zeitverzögert auszuführen. Es wird also beispielsweise 30 Sekunden gewartet und dann das Makro ausgeführt. Wenn es diese Funktion nicht gibt, fügt man einfach eine entsprechende Verzögerung fest am Anfang in das Makro ein.

Der Nachteil daran: Es besteht meistens keine Möglichkeit, den Timer für jede Vorstellung zu variieren. Einmal will ich vielleicht 5 Minuten warten, weil ich noch Popcorn machen und was zu trinken organisieren will. Ein anderes mal will ich nicht lange warten oder direkt ohne Verzögerung beginnen.

In die App habe ich hierfür einen Filmstart-Timer eingebaut, der all das löst und noch mehr bietet:

  • Im Countdown-Modus wird eine beliebige Zeit sekundengenau eingestellt. Sobald die Zeit abgelaufen ist, startet der Film. Der Timer steht standardmäßig auf 2 Minuten.
  • Alternativ kann ich den Film zu einer bestimmten Uhrzeit starten lassen. Das ist dann noch ein wenig mehr wie Kino, und wahrscheinlich sogar pünktlicher. Der Standardwert wird ausgehend von der aktuellen Uhrzeit berechnet und auf volle 5 Minuten aufgerundet.
  • Wenn ich den bestmöglichen Übergang von der Pausenmusik zum Film haben will, kann ich den Start automatisch so legen, dass gewartet wird, bis der aktuelle Musiktitel beendet ist.
  • Will ich sofort starten, habe ich immer noch den Start-Button.

Nun kann ich also gemütlich den Timer stellen und die App dann beiseite legen. Der Film startet vollkommen automatisch zur voreingestellten Zeit.

Autopilot

Ganz anders sieht es aus, wenn der Film endet. Das ist deutlich schwieriger, als einen Timer zu programmieren. Bisher habe ich einfach die richtige Taste im richtigen Moment gedrückt. Wie eingangs erwähnt ist das ausgesprochen unentspannt.

Bereich zur Steuerung des Lichts zum Ende eines Films
Filmende mit Lichtsteuerung und Einstellungen für die nächste Vorführung desselben Films

Man sitzt zum Ende des Abspanns mit dem Finger über dem Makro da und wartet den richtigen Moment ab. Wartet man zu lange, brüllt einen das Menü der Blu-ray an. Dabei könnte man längst die Chipstüte aufräumen oder die Gläser einsammeln.

Erschwerend kommt hinzu, dass das Licht wieder an gehen muss, und zwar nicht erst zum Ende des Abspanns, denn man will ja nicht die ganze Zeit im Dunklen sitzen. Gäste können den Abspann nutzen, um sich schon mal vor der Toilette anzustellen, denn ich erwarte von niemandem, dass er sich das ansieht – auch wenn ich den Abspann gerne nutze, um den Film nochmal Revue passieren zu lassen (oder wieder wach zu werden). Jedenfalls brauchen sie dazu Licht.

Das lässt sich nicht über einen einfachen Timer regeln. Zum einen kann es vorkommen, dass ich den Film kurz unterbrechen muss, was jeden fest eingestellten Timer sofort aus der Fassung bringen würde. Zum anderen muss das Licht je nach Film zu einem anderen Zeitpunkt eingeschaltet werden, denn nicht jeder Abspann ist in langweiligem Weiß auf Schwarz gehalten.

Ich schalte das Licht in zwei Stufen ein:

  1. zuerst gedimmt
  2. dann kurze Zeit später voll

Und es gilt zu berücksichtigen, dass viele Filme eine Post Credit Scene haben, für die das Hauptlicht nochmal heruntergefahren wird, damit man auf der Leinwand was erkennt.

So viel zu den Anforderungen. Hierfür war eine sehr ausgefeilte Lösung erforderlich. Überlegen wir aber erstmal, welche Möglichkeiten wir haben.

Lösungsansätze

Das Ende des Films zu erkennen ist nicht weiter schwer. Alles was man wissen muss, ist die Gesamtspielzeit und die Zeit, die schon verstrichen ist. Beides liefert uns der Blu-ray Player oder Kodi, wenn wir sie nett fragen.

Da man den Film zwischendurch pausieren oder Stellen überspringen kann, wird die aktuelle Spielzeit einfach alle paar Sekunden abgefragt. Alle anstehenden Ereignisse werden dabei aktualisiert. Das funktioniert für das Filmende, aber auch für jedes beliebige andere Ereignis mitten im Film. Ein Problem weniger.

Doch wie findet man heraus, wann der Abspann beginnt und das Licht eingeschaltet werden muss?

Kapitelabfrage

Ein Ansatz wäre, das letzte Kapitel der Disc abzupassen und dabei das Licht einzuschalten – vielleicht mit ein paar Sekunden Verzögerung. Das habe ich verworfen, weil es viel zu unzuverlässig wäre.

Es gibt keine Garantie, dass das letzte Kapitel wirklich der Abspann ist. Wenn der Film eine Post Credit Scene hat, ist der Abspann meistens das vorletzte Kapitel. Viele alte Filme haben keinen nennenswerten Abspann, auf den man sich berufen könnte. Zu guter Letzt gibt es Discs ohne Abspann, zum Beispiel die erste Scheibe eines zweigeteilten Films.

Den Filminhalt auswerten

Steuerelemente für einen Projektor
Erweiterte 3D- und Bildeinstellungen für den Projektor

Eine andere Idee, die mir in den Sinn kam: das Bildmaterial auswerten und auf abspann-typische Inhalte prüfen. Das HDMI-Signal lässt sich abgreifen, was ich auch zur Einbindung eines Vorschaubilds in die App nutze. Somit benötigen wir schon mal keine schlechte Lösung wie etwa eine auf die Leinwand gerichtete Webcam.

Der Aufwand, die Bildinhalte zu analysieren wäre dennoch immens. Schließlich bleibt noch das Problem, dass es immer Filme mit Ausnahmen gibt, und zwar viele davon. Ein Abspann, der keinen schwarzen Hintergrund hat oder Outtakes zeigt, fiele einfach durchs Raster. Dunkle Stellen im Film würden wiederum unerwünschte Ergebnisse liefern.

Nein, vergessen wir das schnell wieder. Es musste eine andere Lösung her, die zudem flexibler ist, individuell auf einen Film angepasst werden kann und kein Fehlerpotenzial in sich birgt.

Noch eine Filmdatenbank

Daher entschied ich mich schließlich für eine Datenbank-Lösung. Damit kann zu jedem Film eine individuelle Konfiguration gespeichert werden. Als hätte man als Heimkino-Betreiber nicht schon genug Filmdatenbanken, in denen man seine Schätze verwaltet. Gerade deshalb musste diese Datenbank auch befüllt werden können, ohne viel Aufwand damit zu haben. Es sollte praktisch alles nebenbei von alleine gehen.

Zunächst habe ich, um die Dinge einfach zu halten, einen Ansatz auf Basis von Textdateien gewählt, genauer gesagt im JSON-Format. In einer Node.js-Umgebung ist das ja naheliegend. Noch näherliegender wäre es gewesen, eine dokumentenbasierte Datenbank wie MongoDB einzusetzen. Aber ich sehe große Vorteile darin, alle Daten im Klartext vorliegen zu haben und unabhängig von der App Änderungen daran vornehmen zu können.

// 023349-BD-1-1.json

{
   "id": [
      "023349",
      "BD",
      1,
      1
   ],
   "info": {
      "title": "Inglourious Basterds",
      "version": "",
      "year": 2009
   },
   "markers": [
      {
         "time": 9055000,
         "action": "light-phase1"
      },
      {
         "time": 9091000,
         "action": "light-phase2"
      }
   ],
   "settings": {
      "terminate": "shutdown",
      "volumeAdjustment": -1,
      "dialogLevel": 0,
      "lfeLevel": 0
   }
}

Dieses Beispiel zeigt die Konfiguration für den Film Inglourious Basterds. Im Folgenden gehe ich näher auf die Bedeutung der einzelnen Angaben ein.

ID zur eindeutigen Wiedererkennung

Die ID des Films identifiziert diesen eindeutig – unabhängig von Angaben durch den Benutzer. Sie besteht aus folgenden Komponenten:

"id": [
   "023349",
   "BD",
   1,
   1
]
  • der Spielzeit des Films im Format HHMMSS
  • dem Typ der Disc (BD, DVD, o. ä.) oder FILE, wenn es sich zum Beispiel um eine Datei von USB handelt
  • dem Kapitel des Films auf der Disc oder der Dateiendung bei einer Videodatei (MKV, MP4 o. ä.)
  • einer fortlaufenden Nummer, falls alle vorherigen Angaben nicht eindeutig genug waren.

Alle diese Angaben können im Idealfall automatisiert vom BD-Player oder Kodi ausgelesen werden. Sobald der Film wieder eingelegt wird, erkennt das System ihn anhand seiner Spielzeit wieder. Da verschiedene Filme die selbe Spielzeit haben können, dient das Kapitel und die Art der Disc als zusätzliche Unterscheidungskriterium. Zur Not greift die Nummerierung, was in seltenen Fällen dazu führt, dass man als Benutzer eine Auswahl treffen muss.

Informationen zum Film

Weiter geht es mit einigen Informationen zum Film, die in der App angezeigt werden können. Dazu gehören:

"info": {
   "title": "Inglourious Basterds",
   "version": "",
   "year": 2009
}
  • Titel
  • Version (Kinofassung, Director’s Cut, etc.)
  • Jahr

Die Angaben dienen später als Kontrolle, dass der richtige Film geladen wurde.

Markierungen

Als nächstes folgt der Hauptteil, eine Sammlung von Markierungen. Diese können einerseits dazu dienen, wie der Name schon sagt, eine bestimmte stelle im Film zu markieren. Ein Lesezeichen sozusagen. Gleichzeitig haben sie in der Regel aber eine Funktion:

"markers": [
   {
      "time": 9055000,
      "action": "light-phase1"
   },
   {
      "time": 9091000,
      "action": "light-phase2"
   }
]
  • Die Position der Markierung wird in Form der vergangenen Spielzeit angegeben (in Millisekunden seit dem Beginn).
  • Die Aktion gibt an, welches Ereignis bei erreichen der Markierung ausgeführt werden soll. Typische Ereignisse sind:
    • Licht Phase 1 (halb an, zu Beginn des Abspanns)
    • Licht Phase 2 (voll an, kurze Zeit später)
    • Post Credit Scene (Lichter aus, die die Leinwand direkt anstrahlen)
    • Ende Post Credit Scene (alle Lichter wieder voll an)

Jedes beliebige andere Ereignis ist denkbar, darunter Änderungen an einer Leinwand-Maskierung bei Formatwechseln, oder interessante Spielereien wie Windeffekte oder Blitzlichter. Das wird dann aber in der Praxis bisher eher weniger benötigt.

Allgemeine Einstellungen

Zuletzt gibt es einen Abschnitt mit allgemeinen Einstellungen zum Film. Dieser enthält Anpassungen der üblichen Einstellungen des AV-Receivers und globale Vorgaben.

"settings": {
   "terminate": "shutdown",
   "volumeAdjustment": -1,
   "dialogLevel": 0,
   "lfeLevel": 0
}
  • terminate gibt an, was passieren soll, wenn der Film abgelaufen ist (d. h. wenn die volle Spielzeit erreicht ist). Mögliche Werte sind
    • shutdown: Projektor abschalten und zurück zur Pausenmusik
    • break: zurück zur Pausenmusik, aber Projektor laufen lassen (Bild nur schwarz machen)
    • off: nichts machen
  • volumeAdjustment definiert die Abweichung von der üblichen Lautstärke. Meine Standardlautstärke steht zum Beispiel bei -16.0 dB. Ist ein Film zu laut abgemischt, kann hier beispielsweise -2.0 hinterlegt werden. Dann wird dieser Film immer mit -18.0 dB wiedergegeben. Die Angabe ist relativ. Würde ich als neue Standardlautstärke -24.0 dB definieren, weil ich in Zukunft immer leiser hören will, würde dieser Film immer mit -26.0 dB wiedergegeben. (Tatsächlich verwende ich drei Standardlautstärken – leise, normal und laut – für die ich mich vor Filmbeginn abhängig von Tageszeit und Anwesenheit von Mitbewohnern entscheide.)
  • dialogLevel speichert eine Einstellung, die Yamaha-Receiver ermöglichen. Bei Filmen mit zu leise abgemischten Dialogen (bestes Beispiel: Interstellar) kann so die Dialog-Lautstärke auf ein verständliches Maß angehoben werden.
  • lfeLevel speichert die Anpassung der Subwoofer-Lautstärke. Bei Filmen mit zu viel oder zu wenig Bass kann dieser so angepasst werden, damit es nicht zu einem unerwünschten Besuch der Nachbarn kommt.
Elemente zur Steuerung der Beleuchtung
Kontrolle der Beleuchtung per Funk oder Smart-Home-Schnittstellen über den jbmedia Light-Manager

Ein Großteil der zu erfassenden Daten wird automatisch ermittelt. Die ID unterliegt ohnehin den Befugnissen des Autopiloten und kann nicht geändert werden. Die Filminformationen werden wenn möglich automatisch ausgelesen (aus dem Dateinamen oder der Kodi-Datenbank, sofern entsprechendes Material vorliegt) oder können zur Laufzeit des Films direkt in der App eingegeben werden (bei Discs im Allgemeinen erforderlich). Die Markierungen und ihre zugehörigen Aktionen werden automatisch erfasst, wenn ich die entsprechenden Aktionen manuell ausführe. Das System merkt sich sozusagen, was ich gedrückt habe, und wann ich es gedrückt habe. Die allgemeinen Einstellungen werden bei Bedarf über die App am Gerät gesetzt und dann automatisch für die Datenbank ausgelesen.

Der komplexe und wichtige Teil sind eigentlich die Markierungen, zu welchen Zeitpunkten die Aktionen “Licht an” ausgeführt werden müssen. Wie jetzt zu erkennen sein dürfte, sieht mein Einsatz dieser Datenbank vor, dass alle notwendigen Informationen automatisch erfasst werden, wenn der Film zum ersten Mal läuft. Sobald ich ihn nochmal anschaue, können die Informationen vom System verwendet werden, um meine Handlungen zu kopieren.

Und schon haben wir eine vollständige Heimkino-Automatisierung. Der Filmstart erfolgt kurzfristig geplant oder nach Belieben auf Kommando. Das Licht geht je nach Film individuell im richtigen Moment an und bei Post Credit Scenes nochmal kurz aus. Sobald der Film abgelaufen ist, schaltet das System ohne weiteres Zutun wieder zur Pausenmusik um. Was will man mehr?

Da ich Filme, die ich kaufe, sowieso mehrmals anschaue – und beim ersten Mal meistens alleine – durchläuft jeder Film erstmal das “Einmessen”, also das Ermitteln der Zeitpunkte für die Lichtschaltung. Sobald es dann eine Vorführung mit Gästen gibt, ist schon alles bereit für den vollständig automatisierten Ablauf, den ich besonders in dieser Situation haben möchte.

Die App teilt mir zudem mit, ob es schon einen Datensatz für den aktuellen Film gibt – ich weiß also immer, ob das Licht von selbst an gehen wird, oder ob ich noch aktiv werden muss.

Wapp

Die bis hierhin beschriebene Funktionalität der App war mit Abstand der aufwändigste Teil. Man erkennt daran glaube ich ganz gut, dass ein kommerzielles Produkt so etwas nicht leisten kann. Obwohl der Kern der Sache unabhängig von der eingesetzten Hardware arbeitet, ist doch alles sehr stark auf mein Kino und meine Gewohnheiten einer Filmvorführung zugeschnitten.

Der letzte Anwendungsfall, den ich hier vorstellen möchte, wirkt dagegen wie eine Kleinigkeit. Das ist es im Grunde auch. Trotzdem ist das für mich so nützlich und gleichzeitig so ein witziger, spontaner Einfall, dass ich es dir nicht vorenthalten möchte.

Die Wife-App

Filminformationen abfragen und Nachrichten ins Heimkino senden

Unter dem inoffiziellen Namen Wife-App, kurz WAPP, habe ich eine zweite App aufgesetzt. Technisch gesehen ist es eine abgespeckte Kopie mit deutlich weniger Buttons und ohne konkrete Steuermöglichkeit. Sie läuft parallel auf dem selben Server (es ist einfach nur eine andere HTML-Datei).

Wie der Name vermuten lässt, ist diese App für meine bessere Hälfte gedacht. Sie sitzt zwar auch regelmäßig mit im Kino, ihr Filmgeschmack ist aber deutlich kritischer als meiner, so dass ich viele Filme auch alleine anschaue, während sie sich von den Serien im TV-Programm berieseln lässt.

Die Wapp bietet ein paar wenige aber sehr nützliche Funktionen für sie. Keine davon greift direkt in die Steuerung ein – obwohl das natürlich ohne weiteres möglich wäre.

Abfrage der Restlaufzeit

Mit einem Button kann sie abfragen, wie lange der Film im Kino noch läuft bzw. zu welcher Uhrzeit er beendet sein wird. Das erspart mir vor dem Film die Frage “Wie lange guckst du?”, die ich sowieso nicht beantworten kann, weil ich meistens spontan entscheide, was in den Player kommt, oder ich die Spielzeit nicht genau kenne.

Die Zeit wird bei jeder Abfrage neu ausgelesen. Sollte ich eine Pause einlegen müssen, wird sie danach entsprechend anders berechnet.

Nachrichten

Auch wenn ich das Smartphone zwangsläufig zur Bedienung der App dabei habe, schaue ich während dem Film normalerweise nicht drauf. Eingehende Nachrichten sind mir ziemlich egal, zumindest so lange der Film spannend ist. Für gewisse Nachrichten bin ich trotzdem erreichbar – einfach aus Fairness der Familie gegenüber, wenn ich mich schon fast jeden Abend im Keller verkrieche:

  • Wenn meine bessere Hälfte sich entschließt, nicht auf das Ende des Films zu warten,
  • wenn unsere Tochter eine unruhige Nacht hat,
  • oder einfach nur, wenn der Bass überdurchschnittlich im Wohnzimmer zu spüren ist,

ermöglicht es die Wapp, mir eine Nachricht direkt ins Bild zu schicken. Der Projektor bietet die Funktion, Textmeldungen auszugeben. Die sind zwar an Schönheit und Vielseitigkeit leicht zu überbieten, erfüllen aber ihren Zweck. Natürlich sind auch eigene Texte möglich. So kann ich nichts verpassen, es sei denn, der Film ist so langweilig, dass ich einschlafe.

Eine Nachricht direkt auf der Leinwand – gesendet aus der WAPP
Eine Nachricht direkt auf der Leinwand – gesendet aus der WAPP

Die Einsatzmöglichkeiten der Nachrichten und der Wapp im Allgemeinen sind äußerst vielseitig. Angedacht ist auch schon, Nachrichten schreiben zu können, die erst kurz vor Ende des Abspanns erscheinen, und so nicht den Film stören. Das wäre eine nette Kombination von zwei der oben genannten Techniken. Das eröffnet Möglichkeiten wie “Schatzi, bringst du mir nachher ein Bier aus dem Keller mit?”, auch wenn das in der Form wohl nicht vorkommen wird. Du weißt was ich meine.

Ausblick: Das nächste Level der Heimkino-Automatisierung

Dieser Artikel ist so umfangreich geworden, dass sich ein Ausblick lohnt. Wie geht es weiter, was kommt als nächstes? Ich habe in der Summe über 2 Jahre an dieser App herum entwickelt. Alles was sie können sollte, kann sie inzwischen – zumindest in Ansätzen.

Steuerelemente für Kodi
Navigation in Kodi, in Anlehnung an die offizielle App Kore

Manches ist noch ein wenig unschön gelöst und soll überarbeitet werden. Ich will nicht sagen, dass die App in einem Beta-Stadium oder nur ein Prototyp ist – dazu setze ich sie schon viel zu lange erfolgreich ein. Sie ist immerhin so fortgeschrittenen, dass ich meine Logitech Harmony 900 nach einigen Monaten verkauft habe, weil sie einfach nur noch gelangweilt in der Ecke lag.

Ich arbeite immer wieder an einer Verbesserung der Benutzerführung. Manchmal scrollt man noch ziemlich viel hoch und runter, besonders bei der Vorbereitung für einen Film. Hier dachte ich eher daran, jeweils nur die Bedienelemente einzublenden, die in der aktuellen Situation erforderlich sind. Das läuft manchmal alles noch ein wenig zu sehr ineinander.

Die Apps der Gerätehersteller tun sich da auch recht schwer: man ist oft mehr mit Wischen beschäftigt, bis man die eigentliche Funktion ausführen kann. Das ist auch einer der größten Nachteile gegenüber einer Fernbedienung mit richtigen Tasten.

Einige Änderungen werden sich hinsichtlich der Pausenmusik ergeben. Ich möchte hier mehr Variation reinbringen, indem ich nicht nur Pausenmusik über USB wiedergebe, sondern auch über Kodi oder Streaming-Dienste.

Der Ablauf des Kinoprogramms soll auch wesentlich flexibler werden. Ich möchte Trailer und ein wenig Spaß-Werbung vor dem Film mit Kodi wiedergeben, anschließend aber einen Film vom Blu-ray-Player abspielen lassen. Grundsätzlich funktioniert das mit dem Kodi-Add-on CinemaVision sehr gut; aber leider wird dieses Add-on nicht mehr so richtig weiterentwickelt und ist insgesamt recht pflegeintensiv. Deshalb will ich eine einfachere Lösung dafür mit in die App integrieren.

Preisfrage: Wie kannst du das auch haben?

Steuerelemente für eine PlayStation über HDMI-CEC
Die Möglichkeit zur Kontrolle einer PlayStation: Weil diese keine Schnittstelle bietet, wird die HDMI-Steuerung über den Receiver verwendet.

Eine ganze Menge Zeug also, nur um mal eben ein Heimkino komplett zu automatisieren. Aber ich kann für mich sagen, dass sich die Arbeit gelohnt hat.

Schade ist natürlich, dass das alles sehr individuell auf meine Geräte zugeschnitten ist. Ich habe nur das entwickelt, was ich selbst benötige. Es handelt sich hierbei also nicht um eine große Bibliothek mit allen möglichen Geräten, die man nur mal eben konfigurieren muss.

Auch ist der ganze Ablauf des Kinoprogramms sehr stark auf meine Vorlieben optimiert. Da spielt unter anderem auch die Verkabelung der Geräte und ihre Konfiguration eine große Rolle. Nicht zuletzt verhalten sich unterschiedliche Geräte anders, wenn man bestimmte Funktionen aufruft, was sich mindestens in den Wartezeiten zwischen den Befehlen niederschlägt.

Von Zeit zu Zeit arbeite ich weiter daran, das alles zu verallgemeinern und in möglichst wiederverwendbaren Paketen abzulegen. Vielleicht wird es so tatsächlich einmal möglich, das für Hobby-Programmierer zum Download anzubieten oder Teile davon in andere Umgebungen einzubinden.

Leider nicht öffentlich

Dummerweise kann ich dir das Projekt an dieser Stelle nicht als Download frei zugänglich anbieten. Zum einen deshalb, weil du schon ziemlich ausgebaute Programmierkenntnisse haben müsstest, um die Anwendung zum Laufen zu bringen und weiterhin für dich anzupassen.

Zum anderen – selbst wenn du diese Kenntnisse hättest – würdest du mir immer noch wochenlang Löcher in den Bauch fragen, wie dies und jenes funktioniert und wie du das anpassen kannst. Dafür fehlt mir einfach die Zeit. Zumal die Chancen ziemlich gut stehen, dass du irgendwann entnervt aufgeben würdest.

Deshalb biete ich dieses Projekt nicht öffentlich an (und auch nicht auf Nachfrage). Du müsstest gewillt sein, einen höheren 4-stelligen Betrag dafür auf den Tisch zu legen, damit ich das im Auftrag für dich einrichten kann.

Weil du aber bis hierher drangeblieben bist und alles fleißig gelesen hast, kann ich dir hier eine Demo der App anbieten. Sie ist etwas abgespeckt und nicht ganz auf dem aktuellsten Stand, aber um mal selbst ein Gefühl dafür zu bekommen, reicht das völlig.

Keine Angst, du kannst darin rumklicken so viel du willst. Du wirst mein Heimkino damit nicht steuern können. Wäre ja noch schöner.

Lass dich inspirieren

Stattdessen soll dieser Beitrag als Inspiration für dich dienen, ähnliche Schritte zu gehen – wenn auch nicht ganz so durchgeknallt, wie ich das gemacht habe. Manches davon hat dich vielleicht schon auf Ideen gebracht.

  • Erstelle dir ein Filmstart-Makro mit den Mitteln, die dir zur Verfügung stehen und arbeite daran so lange, bis es perfekt läuft.
  • Versuche einen Timer einzurichten, und sei es auch nur eine fixe Zeitverzögerung im Filmstart.
  • Übernimm etwas von der Lichtsteuerung zum Filmende für dich.

Vielleicht ist das auch nur der Auslöser für dich, erste Schritte mit Open-Source-Lösungen wie ioBroker oder FHEM zu gehen. Es gibt viele Möglichkeiten auch abseits der handelsüblichen Fernbedienungen.


Ich hoffe, dieser etwas umfangreichere Einblick war interessant für dich und hilft dir vielleicht weiter, eine ähnliche Steuerung zu verwirklichen. Ich freue mich in jedem Fall über dein Feedback!

In diesem Video zeige ich dir die wichtigsten Funktionen nochmal in Aktion.

Sie sehen gerade einen Platzhalterinhalt von Youtube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

34 Gedanken zu „Heimkino-Automatisierung im Großformat

  1. Hat wirklich Spaß gemacht den Artikel zu lesen. *Daumen hoch*

    Mach ja sowas ähnliches mit Netzwerksteuerung, hier geht es aber darum Steckdosen zu schalten, bspw. Licht an im Garten, wenn Sonnenuntergang + 5 Minuten (was ja auch jeden Tag anders ist).

    Das mache ich auch per Netzwerk, wusste aber ehrlich gesagt gar nicht (ich schäme mich), dass die anderen Geräte schon von Haus aus eine Netzwerkschnittstelle mitbringen.

    Wo bekommt man den die (technische) Beschreibung des Prokotolls her?
    Bspw. für meinen Fernseher Panasonic TX-L37ETW5. Dafür gibt’s ja ne Android App -> ergo hat das Ding auch eine Netzwerkprotokoll.

    Wo bekomme ich die Beschreibung her? Ist das gleich pro Hersteller oder gibt’s da Foren dazu?

    Meine Idee ist sowas wie “Babyphone an, Licht im Eck aus, wenn Fernseher an geht”. RaspberryPi mit PHP Server läuft sowieso schon…

    Grüße

    Christoph

    1. Hey Christoph alte Hütte 😀

      Das kommt ganz auf den Hersteller an. Die einen haben das in ihrer Bedienungsanleitung mit drin, bei anderen ist es eine separate Anleitung, die es zum Download gibt. Andere, wie Yamaha, machen ein ziemliches Geheimnis draus und man findet nur vereinzelt Informationen, wenn man ein bisschen hartnäckiger googelt. Ich hab mich zuerst mit Bruchstücken begnügt und dann mal den Support angeschrieben. Nachdem ich denen versichert hatte, dass ich keine App damit bauen will, die verkauft werden soll, haben sie mir mehr Material zugeschickt.

      Nimmst du immer noch das ConAir zur Funksteuerung? Gibt’s ja leider nicht mehr. Hab mir überlegt, ob ich das Teil von Brennenstuhl mal probieren soll, obwohl das ziemlich schlechte Bewertungen bezüglich der Reichweite hat. Ich such da noch was vernünftiges, weil mir der aktuelle Light Manager (der einzige mit integriertem Webserver) einfach zu teuer ist.

      Ich kann dir aber echt nur Node.js als Backend empfehlen. Wenn der Server mal was an die Clients melden soll, fluppt das einfach viel mehr.

  2. Hol dir doch das Teil von Brennenstuhl, kost ja nicht all zuviel (~50,- €) und zurückgeben kannst es immer noch, wenn die Reichweite so schlecht ist. Beim ConnAir kann ich mich nicht beklagen, deckt locker das ganze Haus (+Garten) ab.

    Mittlerweile habe ich auch die XML Beschreibung für meinen TV bekommen und kann daraus jetzt mal was kleines Basteln. Yeah!

    Meine Idee ist zu erkennen ob der TV aktuell läuft (leider geht das nur über getVolume() oder dergleichen, die aktuelle Sendung/Programm bekomme ich leider nicht heraus, zumindest habe ich keine Möglichkeit gefunden. ;(

    Würde das mit nem Conrjob prüfen so alle 5 Minuten und aus den Messdaten einen Google Kalender befüllen. Würde gerne mal mein TV Verhalten protokollieren und der Google Kalender wird bei mir sowieso für die Steckdosen Steuerung verwendet.

    Gruß

    Christoph

    1. Die TVs stellen sich doch heute meistens im Netzwerk als Bildwiedergabegeräte zur Verfügung. Das passiert meines Wissens nach über UPnP bzw. über einen Kanal, an dem man mitlauschen kann. Die IP liegt irgendwo im ganz oberen Bereich, irgendwas mit 235. Wenn du da mithören würdest, wüsstest du auch immer ziemlich schnell, ob der TV da ist, und du müsstest nicht mal das Netzwerk vollspammen.

    1. Hallo Andreas,

      danke für das Lob. Ja das stimmt, als Nicht-Programmierer ist man damit ziemlich aufgeschmissen. Es ist kein massentaugliches Produkt wie eine Logitech Harmony, bietet dafür aber auch Features, die die Masse gar nicht will.

      Langfristig will ich einen Stand erreichen, bei dem auch jemand mit wenig technischer Erfahrung und vor allem ohne Programmierkenntnisse etwas damit anfangen kann. Das ist aber ausgesprochen schwierig zu erreichen und wird mit Sicherheit noch lange dauern.

      Viele Grüße
      Bert

      1. Stehe noch so ziemlich am Anfang meines Heimkinos (bin gerade bei der Baffle Wall mit akustisch Transparenter Leinwand) Manchmal wünsche ich mir ich könnte was Programmieren. Aber einen Rasberry Pi werde ich mir noch besorgen und schauen ob ich Cinema Vision irgendwie installiert bekomme. Ansonsten würde ich gerne mit Rasberry Pi eine Vollautomatisierung hinbekommen wollen

  3. Hi, super Artikel, danke dafür!
    Ich finde mich teilweise wieder – auch bei der separaten App mit WAF (Women Acceptance Factor ;-).
    Mein Anwendungsfall ist zunächst viel einfacher:
    Hausautomatisierung mit SPS, Multimediaserver/NAS mit Debian-Linux, Wohnzimmer-Abspieler mit Kodi -> 5.1/beamer und Multiroom mit VLC -> Deckenlautsprecher.
    Nach Vorgabe meiner Frau (Technik darf man nicht sehen) steht der alte Yamaha RX-V430RDS jetzt neben dem (headless)Linux-Server im Technikraum im Keller und wird notdürftig über einen IR Verlängerer im Blindflug bedient.
    Nach einigen erfolgreichen Gehversuchen mit curl Befehlen zu Ansteuerung einer Netzwerksteckdosenleiste traue ich mir auch YNC/YNCA zu und werde vermutlich einen neuen(alten) AV-Receiver kaufen, der YNC/YNCA beherrscht. Eine Anfrage beim Yamaha-Support läuft bereits und insbesondere das einfacher erscheinende YNCA in eine curl einzubauen habe ich noch nicht kapiert…
    Zitat: Vielleicht wird es so tatsächlich einmal möglich, das alles für Hobby-Programmierer zum Download anzubieten. (Bis dahin: Fragen kostet nichts.) Zitatende
    Ich frage hiermit ganz höflich nach den Programmen/Scripten und insbesondere dem so empfohlenen Node.js-Umgebung (was ist das? nie gehört?).
    Ich glaube zwar, alle persönlichen Interaktionen über 4 verschiedene Apps: Yamaha, Unified Remote (Kodi), Wago (SPS-Visualisierung) und Siemens (Heizung) sowie Remote Desktop mit VNC (Linux) machen zu können aber für Timer-Aktionen (cronjobs) und kombilierte Events wären batch-Lösungen sowie eine übergreifende eigene App mit WAF ein Traum…
    Beste Grüße aus Bayern

    1. Hi Thomas,

      da hast Du ja ganz ordentlich was vor!

      Mein Code ist gerade in einer kleinen Umbruch-Phase, weshalb es sinnvoller wäre noch ein paar Wochen zu warten. Ich schlage vor, dass Du Dir mal Node.js ansiehst und entscheidest, ob das was für Dich ist. Du solltest außerdem in JavaScript fit sein und keine Berührungsängste vor HTML und CSS haben. Und dann schreibst Du mich einfach mal per Mail an. 🙂

      Viele Grüße
      Bert

      1. Hi Bert,
        ist alles bereits realisiert, lediglich die IP-Fernsteuerung des AV-Receivers fehlt noch…
        Nein, ich bin nicht fit in JavaScript, weiß nur, daß es das gibt und HTML/CSS kenne ich nur aus der Vergangenheit als ich mal eine eigene homepage mit MS-Frontpage gemacht habe. Ich möchte auch lediglich die YNC/YNCA Befehle in (bash-) scripts verpacken könne und ggf. per cronjob starten. Dafür erhoffe ich mir mit Deiner Lösung ein howto 😉 Insbesondere zu YNCA habe ich bisher nix gefunden… LG Thomas

          1. Hi Bert,
            nach genau 1 Jahr kurzes feed-back:
            1. Yamaha A3030 gebraucht erstanden.
            2. YNC/YNCA Befehle unter Kontrolle.
            3. node-red gelernt und als zentrale Steuer-App zwischen Yamaha und SPS auf dem Debian-Server laufen.
            Nutzung: Alle zu automatisierenden, geräteübergreifenden Dinge, z.B. Weckfunktion mit Rollos hoch, Bayern 3 im Schlafzimmer, Kaffeemaschine in der Küche an.
            4. Für nicht zu automatisierende Dinge nutze ich problemlos unterschiedliche Apps unter Android, Win7 oder Tux.
            5. Ausblick:
            Einbindung einer Wii-Spielkonsole im Wohnzimmer (zur Erinnerung ansonsten sind nur Beamer und Lsp im WZ, Rest im Technikraum in Keller).
            Integration des Beamers (Sony VPL) ohne Netzschnittstelle (heute nur isoliert per IR vom Smartphone)
            Weiter gutes Gelingen!

  4. Hallo Bert,

    ich lese schon seit einiger Zeit dein Blog und es hat mir auch sehr beim Bau meines Heimkinos geholfen – danke dafür.

    Mittlerweile gehen mir aber auch die ganzen Fernbedieungen aufn Keks und ich habe angefangen ebenfalls zu automatisieren. Der Pi ist schon installiert und ich kämpfe im Moment mit Kodi (Tonprobleme und öftere Bildausfälle). Da ich fast alle Filme auf Scheiben habe, möchte ich ungern alles digitalisieren (über 1200 Filme sind einfach zu viel 😉 ).

    Was mich nun mehr interessiert ist, wie du deine Handyapp programmiert hast und wie du die Geräte abfragst. Ich selbst kenne mich mit HTML, PHP, CSS aus. JS ist mir zwar nicht unbekannt, aber auskennen würde ich dazu nicht sagen.

    Vielen Dank für deine Tipps,

    Grüße
    Oliver

    1. Hallo Oliver,

      und wieder einmal werde ich daran erinnert, dass ich dazu mal noch mehr schreiben sollte. Danke dafür! 😉

      Meine App in ihrem momentanen Zustand ist leider kein Sonntagnachmittag-Spaziergang. Mal eben installieren und loslegen ist damit nicht drin. Wenn Du viel Zeit hast und Dich vorab mal ein bisschen mit Node.js beschäftigst, kann ich Dir mal was zuschicken. Anderenfalls würdest Du fast bei Null anfangen, und da wäre es einfacher, wenn Du die Artikel hier in dieser Kategorie nutzt, um Dir das nötige Wissen zu erarbeiten und eigene Experimente zu machen.

      Ich versuche immer noch eine gute Lösung zu finden, wie man das etwas massentauglicher machen kann…

      Viele Grüße
      Bert

      1. Hallo Bert,

        danke für die Info. Ich muss mich auch auf der Arbeit nun mehr mit JavaScript auseinander setzten. Das kommt mir gerade recht :-).

        Ich hätte dennoch eine Frage. Hast du deine Automation auch auf einen RasPi? Wenn ja auf welchem Betriebssystem? Ich habe Raspbian (Jessie) und Kodi 15.2. Allerdings habe ich dauernd Bildausfälle und Tonprobleme. Mit der OSMC läuft alles flüssig und sauber – da bin ich fast am verzweifeln. Da ich noch mit LIRC und einer Steuerung meiner Funksteckdosen arbeiten möchte wäre mir Raspbian eigenlich lieber, oder geht das auch mit OSMC?

        Danke.
        Oliver

        1. Mit Raspbian hab ich Kodi noch nicht probiert. Ich kann mir vorstellen, dass das problematisch ist. Die Leistung muss schon sehr gut optimiert sein, damit alles flüssig läuft. Deshalb kann ich nur spezielle Distributionen wie OSMC oder OpenElec empfehlen.

          Verschiedene Software zur Steuerung sollte sich auch unter OSMC installieren lassen. Ich habe darunter auch schon diverse Tests gemacht, unter anderem ffmpeg, vlc und nginx. Es ließ sich alles installieren, wurden halt diverse Pakete nachgeladen.

          Ich würde Dir empfehlen, für Kodi auf OSMC umzusteigen und diesen Raspberry Pi nichts anderes machen zu lassen. Für diverse andere Experimente würde ich mir einen zweiten Pi holen. Da reicht ja wahrscheinlich auch irgend ein 1er-Modell. Kostet zwar ein paar Euro mehr, ist aber die sauberste Lösung. Gerade im Hinblick auf Updates und Backups ist das auch viel sicherer. Oder Du investierst etwas mehr und nimmst den jbmedia Light-Manager Air für die Funksteckdosen. Das ist dann deutlich komfortabler und vor allem vielseitiger anwendbar.

  5. Hallo Bert,

    Da ich mir in naher Zukunft ein zweites Heimkino zulegen darf (Ja, ein zweites :D) habe ich mir überlegt gehabt, soetwas in die Richtung selber zu machen.
    Nun da ich auf diesen wunderbaren Artikel gestoßen bin, hätte ich die Frage, ob du mir mal die Dateien etc. zuschicken könntest. Ich kenne mich schon sehr gut mit PHP, CSS, Java, … aus und würde mir das sehr gerne mal anschauen und eventuell in mein Heimnetz integrieren 🙂

    Vielen Dank,
    Jan

  6. Hallo Bert,
    ich muß mich bei dir bedanken, du hast eine super interessante Seite und durch dich habe ich Cinemavision u.a. auch mit Aktionen und Lichtsteuerung eingebunden und mein Heimkino völlig automatisiert (vorher hatte ich lediglich Macros).
    So ist es echt ein Luxuss der wirklich jedesmal Spaß macht.
    Ich kann dir dafür gar nicht genug danken.

    Was ich jetzt noch zur Perfektion benötigte, wäre wenn die Credit Scene bei Sekunde xy läuft, Kodi eine aktion (Licht hochdimmen) ausführen würde so wie bei dir oben beschrieben.
    Meine idee war es in jeden Filmordner eine zusätzliche chapter.xml datei zu legen, da es diese Funktion in Cinemavision leider noch nicht gibt.

    Wenn dieses Chapter dann bei Sekunde 5784 erreicht wird soll kodi die Aktion starten. Leider funktioniert das nicht.
    Weist du wo der Fehler liegen könnte oder hast du da einen einfachen Ansatz?
    Bin mir nicht sicher ob man mit Bookmarks oder ähnlichem sowas hinbekommen kann.

    Danke
    Jens

    1. Hallo Jens,

      schön, dass Dir mein Geblubber hier schon weiter geholfen hat. 😀

      Mit einer chapter.xml kommst Du wahrscheinlich nicht weit, weil Kodi die meines Wissens nach nicht unterstützt, und CinemaVision wohl erst recht nicht. Dann müsstest Du ein Kapitel ja auch noch mit einem Script verknüpfen können. Zu viele Hürden.

      In einer CinemaVision-Action kannst Du nicht mit einem sleep://5784 arbeiten, weil das nicht asynchron läuft. Die Action würde für die gesamte Dauer laufen, dann das Licht hoch dimmen und dann erst den Film starten.

      Du bräuchtest einen separaten Prozess, den Du mit der Action einfach nur anstartest und der dann parallel im Hintergrund läuft und nach der angegebenen Zeit den Befehl für das Licht ausführt. Ich könnte mir vorstellen, dass man unter Linux mit einem Bash-Script etwas derartiges machen kann:

      1. Datei im Ordner auslesen und Angaben darin verarbeiten
      2. für die angegebene Zeit warten
      3. Licht-Befehl ausführen

      Ein Bash-Script (*.sh) müsste sich aus einer CinemaVision-Action heraus anstoßen lassen. Das Lesen der Datei und die Zeitverzögerung könnte mit kleinen Tools vielleicht auf System-Ebene funktionieren (weiß nicht, ob sleep dafür das richtige Werkzeug ist).

      Dann sollte das aber auch noch für Post Credit Scenes mit mehreren Befehlen funktionieren.

      Und als letzte Schwierigkeit hast Du noch den Fall, wo Du mal im Film kurz Pause machen musst. Dafür kannst Du aber von Kodi die aktuelle Spielzeit vom Film abfragen und die auswerten.

      Ist alles nicht ganz trivial. Aber ne coole Idee auf jeden Fall, die Daten in einer Datei neben dem Film abzulegen. Es muss ja auch kein Bash-Script sein, was das ganze ausführt. Aber irgendwas mit “programmieren” solltest Du schon können, um das hinzubiegen. Auf jeden Fall würde ich mich sehr freuen, von Deiner Lösung zu hören.

  7. Hallo Bert,

    Könntest du mir einen Rat geben mit welchem Gerät man Kodi unproblematisch nutzen kann? Ich suche schon lange danach. Weis aber nicht was ich dafür nutzen soll. Über einen Tip wäre ich dankbar.
    Geht auch über EMail.
    Danke im Voraus

  8. Hallo Bert,

    ich hatte ja schon einmal hier gepostet.
    Nach gut einem Jahr JavaScript und schon einigen Apps auf der Arbeit will ich mich nun auch der eigenen Steuerung des Kinos widmen. node.js wurde auch schon gequält ;-). Du hattest ja angeboten 1-2 Tipps oder “Anschauungsmaterial” zukommen zu lassen, was mich sehr freuen würde.

    Derzeit habe ich viel über Cinemavision gesteuert. Aber alleine das vorherige einlegen der Disc auf Pause usw. geht mir schon aufn Keks. Ebenso möchte ich auch eine Filmdatei anlegen, in der dann die “Zeiten” für Licht wieder an usw. gespeichert werden sollen.

    Eine weitere Frage noch: Hast du dein Vorschauprogramm, also Trailer, Audiobumper u.ä. noch über Cinemavision laufen oder auch über das eingene Tool? Das würde mich noch interessieren.

    Vielen Dank nochmal.

    Gruß
    Oliver

    1. Hi Oliver,

      Du hast Post. 🙂

      Das Einlegen der Disc wirst Du so schnell nicht umgehen können. Aber die App stellt natürlich die passenden Bedienelemente bereit, um das möglichst einfach zu gestalten.

      Ich lasse das Vorprogramm immer noch über CinemaVision laufen. Es wäre Quatsch, das nachzuprogrammieren.

      1. Hallo Bert,

        Vielen Dank.

        Ich werde mich da am Wochenende mal dransetzen. Aktuell läuft bei mir alles über nen Raspi. Das wird bestimmt auch noch eine Herausforderung das alles dort zum Laufen zu bekommen.

        Ich kann ja mal berichten wie es gelaufen ist.

        Gruß
        Oliver

  9. Guten Abend Bert
    Ich befasse mich mit dem Kauf einer Universalfernbedienung für Licht, TV, Kabel-Settop-Box, Apple TV, Bluray, Bose-Lautsprecher mit Internet-Radio. Die Geräte sind ca. 2-3 Jahre alt. Früher hatte ich eine Harmony One mal programmiert. Aber jetzt liegen etwa sechs Fernbedienungen auf dem Sofa. Ist der Light Manager Air das Richtige Produkt? Schaffe ich die Programmierung? Gibt es eine einfachere Lösung?
    Noch ein dickes Kompliment für deine Webseite.
    Schöne Grüsse

    Bruno

    1. Hallo Bruno,

      du würdest nach wie vor mit einer Logitech Harmony am besten fahren. Ich würde da gleich einmal richtig in die Logitech Harmony Elite investieren, dann bist du mit dem Thema erstmal durch.

      Den Light-Manager brauchst du nur, wenn du auch Licht per Funk steuern willst. Bekanntere Systeme wie Philips Hue gehen auch direkt über die Harmony Elite.

      Und natürlich schaffst du die Programmierung. Logitech hat einen guten Support. Aber du musst schon immer wieder mal ein wenig Zeit investieren, bis alles perfekt läuft.

      1. Hallo Bert
        Besten Dank für die schnelle Antwort. Ich habe 3 verschiedene Lichtsteuerungen mit Funk installiert: iluminize LED Dimmaktor Artikel 500.201, RICISUNG IR-Fernbedienung Controller für 5050 SMD RGB LED Strip, Dimmer-Micromodul (AWMD-250) von jbmedia
        Mit der Universalfernbedienung möchte ich diese Licht-Steuerungen zusammen mit den Geräten der Unterhaltungselektronik wie Panasonic Flachbildschirm, Blueray-Player, Apple TV, Bose Soundbar mit Subwoofer und Client in der Küche sowie einer Settopbox für den TV-Empfang steuern. Kann das mit der Logitech Harmony Elite verwirklicht werden oder geht das auch mit dem Light Manager alleine? Ich habe sehr viel Zeit, da ich pensioniert bin.

        Schöne Grüsse
        Bruno Hasler

        1. Es wäre falsch, zu behaupten, das würde nicht gehen. Denn im Grunde kannst du mit dem Light-Manager alles steuern, was eine Infrarot-Fernbedienung hat. Damit fallen nur diverse TV-Boxen raus, die mit Bluetooth o. ä. arbeiten.

          Aber Light-Manager ist, wie der Name schon sagt, für Licht etc. gemacht. Er bietet keine Oberfläche, mit der sich diverse Geräte schön und intuitiv steuern lassen. Du müsstest dir eine eigene Oberfläche für’s Smartphone/Tablet basteln. Dafür brauchst du verdammt viel Know-how und Erfahrung.

          Daher: Logitech Harmony + Light-Manager und du kannst alles steuern was du willst.

          1. Besten Dank. Ich werde zuerst mit einer Harmony Elite Erfahrungen sammeln.
            Schöne Grüsse
            Bruno

  10. Hallo Bert,

    vielen Dank erstmal für den schönen Artikel. Er ist ja nun ein paar Tage alt, hat aber immernoch Relevanz. Wie sieht es mittlerweile mit einer Download-Version zum “Nachbau” aus? Ist daraus etwas geworden, oder sind inzwischen wieder zu viele andere Projekte dazwischen gerutscht?
    Der Hintergrund meiner Frage ist etwas komplexer und ich würde mich freuen, wenn ich Dir den kurz per Telefon erklären könnte, anstatt einen Roman zu schreiben… Vielleicht kannst du mir auch kurz auf meine Mail-Adresse antworten, wenn das besser passt!?

    Vielen Dank vorab und mach’ weiter so!
    Gruß,

    Thomas

    1. Hallo Thomas,

      ich hab das leider nach wie vor nicht veröffentlicht, weil das Verhältnis von Aufwand zu Nutzen geradezu unterirdisch schlecht ist. Habe das oft und lange durchdacht, aber ich komme immer wieder zum selben Ergebnis.

      Wenn deine Frage trotzdem noch relevant ist, schreib mir gerne eine kurze Mail.

  11. Moin! Das ist ja wirklich ein sehr spannender Artikel. Ich nutze immer noch Cinema Vision und habe sehr viele Aktoren (über 80). Auch zum Beispiel sämtliche Fenster fahren mit elektrischen Rollläden. Ich nutze den Light Manager für zum Beispiel sich Infrarot gesteuerte LED Kerzen. Auch die Leinwand, der Beamer alles mögliche wird zum Beispiel mit Harmony Elite gesteuert. Liebe Grüße aus dem Harz Michael

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