Anwendungsbeispiel: Hyperion-Steuerung

Ich habe mich in der letzten Zeit mal etwas mit Hyperion beschäftigt.Hyperion ist ein Open-Source-Ambilight-System.

Ich bin mit meiner einfachen Einrichtung zufrieden, allerdings ist natürlich alles immer komplizierter. Ich habe wenig Lust, die entsprechende Konfiguration für das aktuelle Szenario auszuwählen, so dass ich mich an die Automatisierung mittels Node-Blue machen musste. Es gibt diverse Möglichkeiten zur Fernsteuerung, ich habe mich für die Steuerung mittels Http und JSON-API entschieden, alle anderen Varianten hatten diverse Nachteile. Die Beschreibung der API befindet sich hier:

https://docs.hyperion-project.org/en/developer/json-rpc/intro

Meine Anforderungen sind folgende:

  • Hyperion ist aus, wenn das Ausgabegerät aus ist (Kodi läuft durch, es wird immer nur der Fernseher ein oder ausgeschaltet)
  • Hyperion benötigt eine andere Konfiguration ob der Fernseher oder der Beamer benutzt wird.
  • Ich kann Effekte manuell starten

Ich habe Hyperion mit 3 Led-Hardware-Instanzen konfiguriert, die default-Instanz enthält aber keine Leds. Es gibt dann noch eine für den Beamer und eine Instanz für den Fernseher.
So kann man die Funktionen testweise starten:

  • BEAMER schaltet die Konfiguration für den Beamer ein
  • TV schaltet die Konfiguration für den Fernseher ein
  • NONE schaltet die Ausgabekonfigurationen BEAMER und TV aus
  • FIRE schaltet den Effekt Fire ein
  • CLEAR schaltet den aktuellen Effekt aus

Die Lösung arbeitet mittels eines Subflows.

Im php-Node werden (bis zu zwei) Hyperion-Kommandos erstellt, an Ausgang 0 oder 1 geleitet und dann per http an die Hyperion Instanz gesendet. (Beide http-Knoten zeigen auf die gleiche Instanz, allerdings wird nur das Ergebnis des ersten Kommandos aus dem Subflow rausgegeben.)

hyperion-flow.txt (2,8 KB)

2 Likes