# 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.