# Steuerung

Man kann Hyperion steuern, indem man bestimmte JSON-Nachrichten sendet.

TIP

Die Eigenschaft tan wird in diesen Aufrufen unterstützt, aber aus Gründen der Kürze weggelassen.

# Abschnitte

# Farbe einstellen

Stellt eine Farbe für alle Leds ein oder gibt ein Muster von LED-Farben vor.

Eigenschaft Typ Erforderlich Anmerkung
color Array true Ein Array von R G B Integer-Werten z. B. [R,G,B]
duration Integer false Dauer der Farbe in ms. Wenn du keine Dauer angibst, ist sie 0 -> unendlich.
priority Integer true Wir empfehlen 50, entsprechend den Priority Guidelines. Min 2 Max 99
origin String true Ein kurzer Name deiner Anwendung, z. B. Hyperion of App. Maximale Länge ist 20, minimale 4.
// Beispiel: Einstellen einer blauen Farbe mit unbegrenzter Dauer auf Priorität 50 
{
  "command":"color",
  "color":[0,0,255],
  "priority":50,
  "origin":"My Fancy App"
}
// Beispiel: Einstellen einer cyanfarbenen Farbe für 12 Sekunden bei Priorität 20
{
  "command":"color",
  "color":[0,255,255],
  "duration":12000,
  "priority":20,
  "origin":"My Fancy App"
}
// Beispiel: Gebe ein Farbmuster vor, das so lange wiederholt wird, bis alle LEDs eine Farbe haben
// In diesem Fall LED 1: Rot, LED 2: Rot, LED 3: Blau.
{
  "command":"color",
  "color":[255,0,0,255,0,0,0,0,255], // eine LED hat 3 Werte (Rot,Grün,Blau) mit einem Bereich von 0-255
  "duration":12000,
  "priority":20,
  "origin":"My Fancy App"
}

# Effekt auswählen

Startet einen Effekt mittels Namen. Die verfügbaren Namen findet man in der serverinfo effect list.

Eigenschaft Typ Erforderlich Bemerkung
effect Object true Objekt mit zusätzlichen Eigenschaften. z. B. "name":"EffectName".
duration Integer false Dauer der Effekte in ms. Wenn du keine Dauer angibst, ist es 0 -> unendlich.
priority Integer true Wir empfehlen 50, entsprechend den Priority Guidelines. Min. 2 Max. 99
origin String true Ein kurzer Name deiner Anwendung wie Hyperion Programm. Maximale Länge ist 20, min. 4.
// Beispiel: Auswählen des Effekts 'Warm mood blobs' mit unbegrenzter Dauer
{
  "command":"effect",
  "effect":{
    "name":"Warm mood blobs"
  },
  "priority":50,
  "origin":"My Fancy App"
}
// Beispiel: Effekt 'Rainbow swirl' für 5 Sekunden auswählen.
{
  "command":"effect",
  "effect":{
    "name":"Rainbow swirl"
  },
  "duration":5000,
  "priority":50,
  "origin":"My Fancy App"
}
// Beispiel: Effekt 'Rainbow swirl' für 1 Sekunde mit überlagertem Argument setzen.
// Jeder Effekt hat unterschiedliche Argumente in der Eigenschaft args, die überschrieben werden können.
// WARNUNG: Wir empfehlen dringend, lieber den Effektkonfigurator in der Benutzeroberfläche zu verwenden. Das Senden von ungültigen Werten kann zu Fehlverhalten oder Absturz des Effekts führen.
{
  "command":"effect",
  "effect":{
    "name":"Rainbow swirl",
    "args":{
      "rotation-time":1
    }
  },
  "duration":5000,
  "priority":50,
  "origin":"My Fancy App"}

# Bild einsetzen

Setzt ein einzelnes Bild. Unterstützt alle Qt5 (opens new window) Bildformate, einschließlich png/jpg/gif.

Eigenschaft Typ Erforderlich Bemerkung
imagedata String true Angaben des Bildes als Base64 (opens new window).
format String true Setze diese Option auf "Auto", damit Hyperion das Bild je nach Dateityp parst.
name String true Der Name des Bildes.
duration Integer false Anzeigendauer des Bildes in ms. Wenn du keine Dauer angibst, ist es 0 -> endlos.
priority Integer true Wir empfehlen 50, entsprechend den Priority Guidelines. Min. 2 Max. 99
origin String true Ein kurzer Name deiner Anwendung wie Hyperion Programm. Maximale Länge ist 20, min. 4.
// Ein Bild für 5 Sekunden einstellen
{
  "command":"image",
  "imagedata":"VGhpcyBpcyBubyBpbWFnZSEgOik=", // als base64!
  "name":"Name of Image",
  "format":"auto",
  "priority":50,
  "duration":5000,
  "origin": "My Fancy App"
}

# Zurücksetzen

Setzt eine Priorität zurück, normalerweise verwendet für set color, set effect oder set image.

// Effekt/Farbe/Bild löschen mit Priorität 50
{
  "command":"clear",
  "priority":50,
}
// Alle Effekte/Farben/Bilder löschen
{
  "command":"clear",
  "priority":-1,
}

WARNING

Wenn du alles löschst, löschst du alle Effekte und Farben, unabhängig davon, wer sie eingestellt hat! Stattdessen empfehlen wir, dass Benutzer eine Liste möglicher Löschziele auf der Grundlage einer Prioritätenliste bereitstellen

# Anpassungen

Anpassungen spiegeln die Farbkalibrierung wider. Man kann alle Eigenschaften von serverinfo adjustments ändern.

Eigenschaft Typ Erforderlich Bemerkung
red Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
green Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
blue Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
cyan Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
magenta Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
yellow Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
white Array false Ein Array von R G B Integer-Werten z. B. [R,G,B]
gammaRed Number (float) false Minimum:0.1 Maximum 5.0 In 0.1 Schritten
gammaGreen Number (float) false Minimum:0.1 Maximum 5.0 In 0.1 Schritten
gammaBlue Number (float) false Minimum:0.1 Maximum 5.0 In 0.1 Schritten
brightness Integer false Minimum: 0 Maximum 100 In 0.1 Schritten
brightnessCompensation Integer false Minimum: 0 Maximum 100 In 0.1 Schritten
backlightThreshold Integer false Minimum: 0 maximal 100. Schritt von 1. (Minimale Helligkeit!) Deaktiviert für Effekt/Farbe/Bild
backlightColored Boolean false Bei true ist die Hintergrundbeleuchtung farbig, bei false ist sie weiß. Deaktiviert für Effekt/Farbe/Bild
id String false Kurze Bezeichnung
// Beispiel: GammaRot auf 1,5 setzen
{
  "command":"adjustment",
  "adjustment":{
    "gammaRed":1.5
  }
}
// Beispiel: Grün auf [0,236,0] setzen
{
  "command":"adjustment",
  "adjustment":{
    "green":[0,236,0]
  }
}
// Beispiel: backlightColored auf true setzen
{
  "command":"adjustment",
  "adjustment":{
    "backlightColored":true
  }
}
// Beispiel: Senden Sie die 3 obigen Beispiele auf einmal
{
  "command":"adjustment",
  "adjustment":{
    "backlightColored":true,
    "gammaRed":1.5,
    "green":[0,236,0]
  }
}

# LED-Mapping

Schaltet das Bild in den LED-Mapping-Modus. Mögliche Werte sind unicolor_mean (LED-Farbe basierend auf der gesamten Bildfarbe) und multicolor_mean (LED-Farben basierend auf der LED-Anordnung)

// Beispiel: Mapping-Modus auf multicolor_mean setzen
{
  "command":"processing",
  "mappingType":"multicolor_mean"
}
// Beispiel: Mapping-Modus auf unicolor_mean setzen
{
  "command":"processing",
  "mappingType":"unicolor_mean"
}

# Video-Modus

Schaltet den Videomodus um. Mögliche Werte sind: 2D, 3DSBS und 3DTAB.

// Beispiel: Videomodus auf 3DTAB einstellen
{
 "command":"videomode",
 "videoMode":"3DTAB"
}
// Beispiel: Videomodus auf 3DSBS einstellen
{
 "command":"videomode",
 "videoMode":"3DSBS"
}

# Komponenten steuern

Einige Komponenten können zur Laufzeit aktiviert und deaktiviert werden. Um den aktuellen Status und die verfügbaren Komponenten zu erhalten, siehe Serverinfo Komponenten. Siehe . auch: Komponenten/IDs erklärt

// Beispiel: LEDDEVICE-Komponente deaktivieren
{
 "command":"componentstate",
 "componentstate":{
   "component":"LEDDEVICE",
   "state":false
 }
}
// Beispiel: SMOOTHING-Komponente aktivieren
{
 "command":"componentstate",
 "componentstate":{
   "component":"SMOOTHING",
   "state":true
 }
}

WARNING

Hyperion selbst muss aktiviert sein! Prüfe den Status von "ALL" in der Komponentenliste, bevor du eine andere Komponente änderst!

# Komponenten/IDs erklärt

Jede Komponente hat eine eindeutige ID. Nicht alle von ihnen können aktiviert/deaktiviert werden - einige von ihnen wie Effekt und Farbe, werden verwendet, um den Quellentyp zu bestimmen, wenn die Prioritätsliste untersucht wird.

ComponentID Component Enable/Disable Comment
SMOOTHING Smoothing Yes Glättungs-Komponente
BLACKBORDER Blackborder detector Yes Komponente zur Erkennung von schwarzen Balken
FORWARDER Json/Proto forwarder Yes Json/Proto-Forwarder-Komponente
BOBLIGHTSERVER Boblight server Yes Boblight-Server-Komponente
GRABBER Platform capture Yes Plattform Erfassungskomponente
V4L V4L capture device Yes USB-Aufnahmegerät-Komponente
LEDDEVICE Led device Yes Led-Gerätekomponente startet/stoppt die Ausgabe des konfigurierten Led-Geräts
ALL SPECIAL: Hyperion Yes Aktivieren oder deaktiviere Hyperion. Wiederherstellen/Speichern des letzten Zustands aller anderen Komponenten
COLOR Solid color No Alle Farben, die eingestellt wurden, gehören zu dieser Komponente
EFFECT Effect No Alle Effekte gehören zu dieser Komponente
IMAGE Solid Image No Dazu gehören alle Einzel-/Festbilder. NICHT für Streaming
FLATBUFSERVER Flatbuffers Server No Alle Bildstream-Quellen vom Flatbuffer-Server
PROTOSERVER Protobuffer Server No Alle Bild-Stream-Quellen vom Protobuffer-Server

# Auswahl der Quelle

Quellen werden immer automatisch nach dem Prioritätswert ausgewählt (der niedrigste Wert hat die höchste Priorität). Man muss den Prioritätswert der Quelle kennen, die man auswählen möchte -- diese Prioritätswerte sind in der Datei serverinfo Prioritäten.

// Beispiel: Priorität 50 auf sichtbar setzen
{
  "command":"sourceselect",
  "priority":50
}

Wenn die Antwort erfolgreich ist, wechselt der priorities_autoselect-Status auf false (siehe serverinfo Autoselection Mode). Du bist jetzt im manuellen Modus, um zurück in den Auto-Modus zu wechseln, sende:

{
  "command":"sourceselect",
  "auto":true
}

Danach wird der Prioritäten_autoselect-Status wieder auf wahr gesetzt.

WARNING

Du kannst nur Prioritäten auswählen, die active:true sind!

# Steuerungsinstanzen

Eine Instanz repräsentiert eine LED-Hardware-Instanz. Sie läuft in ihrem eigenen Bereich mit ihren eigenen Plugin-Einstellungen, LED-Layout und Kalibrierung. Bevor man eine Instanz auswählt, sollte man zunächst Informationen über die verfügbaren Instanzen von serverinfo erhalten.

// Befehl zum Starten der Instanz 1
{
  "command" : "instance",
  "subcommand" : "startInstance",
  "instance" : 1
}
// Befehl zum Stoppen der Instanz 1
{
  "command" : "instance",
  "subcommand" : "stopInstance",
  "instance" : 1
}

# Handhabung der API-Instanz

Bei der Verbindung mit der API wird standardmäßig eine Verbindung zur Instanz 0 hergestellt. Man kann nur eine Instanz gleichzeitig innerhalb einer einzigen Verbindung steuern, und Abonnements sind im Kontext der ausgewählten Instanz.

It's possible to switch to another instance with the following command:

// Zur Instanz 1 wechseln
{
  "command" : "instance",
  "subcommand" : "switchTo",
  "instance" : 1
}

Dies gibt eine erfolgreiche Antwort oder einen Fehler zurück, wenn die Instanz nicht verfügbar ist.

WARNING

Es ist möglich, dass eine Instanz anhält, während man mit ihr verbunden ist. In diesem Fall werden die Verbindungen zu dieser Instanz automatisch auf die Instanz 0 zurückgesetzt. Behalte die Instanzdaten über das Abonnement im Auge, wenn du diesen Vorgang behandeln musst. Siehe: Instance updates.

# Live-Bild-Stream

Man kann einen Livebild-Stream anfordern (wenn die aktuelle Quellpriorität dies unterstützt, andernfalls erfolgt möglicherweise keine Antwort).

{
  "command":"ledcolors",
  "subcommand":"imagestream-start"
}

Es werden "ledcolors-imagestream-update"-Meldungen mit einem base64-kodierten Bild empfangen. Stoppe den Stream durch Senden:

{
  "command":"ledcolors",
  "subcommand":"imagestream-stop"
}

HTTP/S

Diese Funktion ist für HTTP/S JSON-RPC nicht verfügbar.

# Led-Farb-Live-Stream

Mit dieser Funktion kann ein Live-Led-Farbstream mit aktuellen Farbwerten in RGB für jede einzelne Led angefordert werden. Die Aktualisierungsrate beträgt 125ms.

{
  "command":"ledcolors",
  "subcommand":"ledstream-start"
}

Du erhältst "ledcolors-ledstream-update"-Meldungen mit einem Array aller led-Farben. Stoppe den Stream durch Senden:

{
  "command":"ledcolors",
  "subcommand":"ledstream-stop"
}

HTTP/S

Diese Funktion ist für HTTP/S JSON-RPC nicht verfügbar.