# Schnittstellen

Die folgenden Seiten beinhalten eine Beschreibung über der verschieden Schnittstelle für die Steuerung von LEDVIZ von außen. Über diese Schnittstellen können externe Trigger, z.B. über vMix oder auch jede andere Anwendung an LEDVIZ übergeben werden. Die Ausgabe der LED Bande kann dadurch im Verbund mit anderen Programmen und Anzeigen (z.B. Videowand) gesteuert werden.

# REST-API

Im folgenden wird näher auf die Funktionalität und Befehle der Rest-API eingegangen.

## Anwendungsbereich

Die Rest-API stellt einen einfachen Zugriff für externe Anwendungen zur Verfügung. Der Zugriff erfolgt dabei über das HTTP Protokoll. Befehle werden dabei wie der Aufruf einer Webseite an LEDVIZ gesendet. Die aufgerufenen Seite werden dabei als Befehle interpretiert. Anwendungen wie vMix sind in der Lage solche HTTP Request zu senden.

Wird z.B. ein bestimmtes Video gespielt, kann dies mit einem solchen Aufruf verknüpft werden, um gleichzeitig den richtigen Content auf der Videowand und der LED Bande anzuzeigen. Dies kann zum Beispiel bei der Vorstellung einer Mannschaft vor einem Spiel genutzt werden.

## Einstellungen

In Bezug auf die Rest-API gibt es nicht viel einzustellen. Den Dialog dazu erreichen Sie oben über die Menüleiste im Hauptprogramm unter dem Punkt "Steuerung".

Grundsätzlich stehen 2 Parameter zur Verfügung:

[![dialog_settings_restapi.png](https://docs.ledviz.com/uploads/images/gallery/2022-01/scaled-1680-/n8ZjBKqLW164svUm-dialog-settings-restapi.png)](https://docs.ledviz.com/uploads/images/gallery/2022-01/n8ZjBKqLW164svUm-dialog-settings-restapi.png)

Über die Option "Rest-API aktivieren" wird der Port zur externen Ansteuerung geöffnet. Im Gegensatz zu den anderen Schnittstellen, ist diese Schnittstelle immer aktiv. Zusätzlich haben sie hier die Möglichkeit den gewünschten Port anzugeben.

Als Standard ist hier der Port 12400 eingestellt.

Der externe Trigger muss hierbei über den ausgewählten Port und das HTTP Protokoll an LEDVIZ weitergeleitet werden.

<p class="callout danger">Secured Socket Layer Anfragen über HTTPS werden von LEDVIZ aufgrund des fehlenden Zertifikates nicht unterstützt</p>

Folgende Befehle stehen über die Rest-API zur Verfügung:

### Befehle

#### Sequenzen abspielen

<p class="callout info">http://localhost:12400/play  
http://localhost:12400/play/5  
http://localhost:12400/play/5?beispiel.xml</p>

Mit dem ersten Befehl wird nur der Play-Button getriggert, während der zweite Befehl direkt die Sequenz 5 im aktuellen Projekt ansteuert. Der letzte Befehl erweitert den Trigger um ein Projekt.

Über den Play Befehl kannst auch eine Sequenz mit DMX oder MIDI ID triggern.  
**Wichtig:** Die Suche nach dieser ID erfolgt immer in allen Projekten!

<p class="callout info">http://localhost:12400/play/dmx/25  
http://localhost:12400/play/midi/ABC</p>

Im Gegensatz dazu steht das Abspielen über vordefinierte Tasten. Genauso wie im Programm direkt, können auch die Short-cuts, also F1 bis F20 und 0 bis 9, angesprochen werden:

<p class="callout info">http://localhost:12400/key/F1</p>

#### Abspielen pausieren

Folgender Befehl triggert den Pause-Button in der Anwendung um den Abspielvorgang anzuhalten:

<p class="callout info">http://localhost:12400/pause</p>

#### Abspielen stoppen

Folgender Befehl triggert den Stop-Button in der Anwendung um den Abspielvorgang komplett anzuhalten:

<p class="callout info">http://localhost:12400/stop</p>

#### Abspielen fortsetzen

Folgender Befehl triggert den Pause-Button in der Anwendung um den Abspielvorgang fortzusetzen:

<p class="callout info">http://localhost:12400/continue</p>

#### Shortcut-Sequenz beenden und zurück zur ursprünglichen Playlist

Folgender Befehl beendet das Abspielen einer Sequenz, die über einen Short-Cut aufgerufen wurde und kehrt zurück zur ursprünglichen Position in der Playlist. Nach dem Rücksprung wird die ursprüngliche Sequenz neu gestartet und von Anfang an gespielt.

<p class="callout info">http://localhost:12400/resume</p>

Für den Fall das es sich bei der Sequenz um einen Overlay handelt, so können diese über folgenden Befehl zurückgesetzt werden

<p class="callout info">http://localhost:12400/overlay/reset</p>

#### Zur nächsten Sequenz springen

Folgender Befehl triggert den Next-Button in der Anwendung um die nächste verfügbare Sequenz in der Liste abzuspielen:

<p class="callout info">http://localhost:12400/next</p>

#### Zur vorherigen Sequenz springen

Folgender Befehl triggert den Back-Button in der Anwendung um die vorherige verfügbare Sequenz in der Liste abzuspielen:

<p class="callout info">http://localhost:12400/prev</p>

#### Ausgabe auf Schwarz blenden (Fade-To-Black)

Folgender Befehl triggert den FTB-Button in der Anwendung um Ausgabe auf Schwarz auszublenden:

<p class="callout info">http://localhost:12400/ftb</p>

#### Gesamte Helligkeit und Helligkeitszonen regeln

Folgender Befehl triggert den Schieberegler um die globale Helligkeit zu steuern:

<p class="callout info">http://localhost:12400/brightness/???</p>

Anstelle der **???** muss hier ein Wert zwischen 0 und 100 angegeben werden. Der Wert repräsentiert den prozentualen Transparenzwert eines Schwarzen Layers, der On-Top der Ausgabe gezeichnet wird.

Als Zusatz wird zur Unterstützung der StreamDeck TurnWheels, neben den exakten Werten, auch die Werte "up" and "down" bereitgestellt, die jeweils die Helligkeit um +/- 5% ändern

<p class="callout info">http://localhost:12400/brightness/up  
http://localhost:12400/brightness/down</p>

Um Helligkeitszonen anzusprechen ist der entsprechende Wert der Zone hinzuzufügen, z.B. "/brightness1/" bis "/brightness8/". Die Variablen sind analog zur gesamten Helligkeit anzuwenden.

#### Sequenzen sperren / entsperren

Um Sequenzen zu sperren oder freizugeben bitte folgenden Befehl verwenden

<p class="callout info">http://localhost:12400/sequence/lock/10</p>

10 ist dabei die Sequenz und der Befehl würde für das aktuelle Preset angewendet werden. Wenn der Befehl in einem bestimmten Preset ausgeführt werden soll, dann den gewünschten Preset mit : anhängen, also z.B.:

<p class="callout info">http://localhost:12400/sequence/lock/10:3</p>

Dieser Befehl sperrt die 10te Sequenz im 3ten Preset. Analog dazu lautet der Befehl zum entsperren ".../unlock/..."

<p class="callout info">http://localhost:12400/sequence/unlock/10  
[http://localhost:12400/sequence/unlock/10:3](http://localhost:12400/sequence/unlock/10:3)</p>

#### Presets der Sequenzen auswählen

Zur Auswahl der Sequenzen die abgespielt werden sollen, besteht die Möglichkeit direkt eine Auswahl am rechten Bildschirmrand von LEDVIZ zu treffen. Diese Auswahl wird in einem Preset zusammengefaßt und gesteuert.

Über die API können die vorhanden Presets 1 - 9 direkt ausgewählt werden.

<p class="callout info">http://localhost:12400/preset/&lt;preset&gt;</p>

Der Tag &lt;preset&gt; kann hierbei eine Nummer von 1 bis 9 enthalten. Unabhängig davon ob die Presets umbenannt wurden verbleibt die Angabe des &lt;preset&gt; immer bei 1 - 9. Eine Auswahl über den Namen wird nicht unterstützt.

#### LiveText ansteuern

Um einen Tag Wert für die LiveText Darstellung an LEDVIZ zu übergeben, verwenden sie folgenden Befehl

<p class="callout info">http://localhost:12400/tags/&lt;tag-name&gt;?&lt;tag-value&gt;</p>

#### CuePoints setzen und aufrufen

In einer PlayList können über die REST-Api Sprungmarken gesetzt und auch wieder aufgerufen werden. Das ermöglicht die gezielte Ansteuerung einzelner Sequenzen z.B. als Rücksprung aus Sequenzen mit ShortCuts

CuePoints werden mit der Option /set/ gesetzt. Der Name kann dabei ein belibiger Alphanumerischer String sein.

<p class="callout info">http://localhost:12400/cue/set/&lt;cue-point-name&gt;</p>

Um zu einem gespeicherten CuePoint zurück zu kehren wird der CuePoint mit seinem Namen direkt aufgerufen

<p class="callout info">http://localhost:12400/cue/&lt;cue-point-name&gt;</p>

Eine zusätzliche Angabe von XML Dateien als Parameter ist bei CuePoints nicht nötig. Der CuePoint enthält bereits den Verweis auf die entsprechende XML Datei.

CuePoints werden nicht gespeichert und stehen nur während der Laufzeit zur Verfügung in der sie auch erstellt wurden. Nach einem Neustart ist die Liste der CuePoints leer. Sollen feste Sprungmarken vergeben werden, so kann das über "midi" oder "dmx" Kennungen realisiert werden.

#### Steuerungen aktivieren / deaktivieren

Mit den Steuerungsmodulen können neben der der RestAPI auch andere verschiedene Protokolle für die Steuerung von LEDVIZ genutzt werden. Steuerungen können über die API wie folgt aktiviert oder deaktiviert werden

<p class="callout info">http://localhost:12400/control/hippo/true  
http://localhost:12400/control/hippo/false </p>

<p class="callout info">http://localhost:12400/control/dmx/true  
http://localhost:12400/control/dmx/false </p>

<p class="callout info">http://localhost:12400/control/midi/true  
http://localhost:12400/control/midi/false </p>

#### Sonderfunktionen ausführen

Über die Sonderfunktionen einer Sequenz kann ein bestimmtes Verhalten beim Abspielen von Animationen durchgeführt werden. Eine dieser Funktion ist z.B. stop / continue beim Abspielen von Videos.

Sollte eine Sequenz an einer Stop-Marke stehen kann sie über folgenden REST-Api Befehl forgesetzt werden

<p class="callout info">http://localhost:12400/gfx/continue </p>

#### Sprungmarken aufrufen

Über die Sonderfunktionen gesetzten Sprungmarken könne auch geziel aufgerufen werden. Das gilt sowohl für Sprungmarken vor und hinter dem aktuellen Abspielpunkt. Der Aufruf erfolgt über folgenden Befehl:

<p class="callout info">http://localhost:12400/gfx/jump/&lt;stop&gt;</p>

Der Wert von Stop kann hier die Werte 1 - 4 haben.

#### Ändern von Content

Geladene Videos können über die REST-Api von extern über folgenden Link geändert werden:

<p class="callout info">http://localhost:12400/file/dmx/1/&lt;filename&gt;  
http://localhost:12400/file/midi/ABC/&lt;filename&gt;</p>

# DMX512 ArtNET

LEDVIZ besitzt ebenfalls eine Unterstützung für das DMX512 ArtNET Protokoll, das vor allem im Zusammenspiel mit Lichttechnik verwendet wird. Hier kann LEDVIZ z.B. über eine ARKAOS System remote und synchron zu anderen Elementen gesteuert werden.

<p class="callout warning">Aufgrund der extremen hohen Frequenz mit der DMX512 Befehle gesendet werden, eignet sich das DMX512 Protokoll nicht zur Übertragung über ein reguläres Ethernet. Es sollte immer ein separates Netzwerk aufgebaut werden, z.B. über einen zusätzlichen USB - ETHERNET Adapter, damit der Zugriff auf das Netzwerk als solches nicht gestört wird.</p>

## Anwendungsbereich

Über das DMX Protokoll werden in der Praxis vor allem Lichteinheiten im showprogramm gesteuert. Über die gesendeten Werte können Helligkeit, Farbwerte und X/Y/Z for Spots gesteuert werden.

Im Zusammenspiel mit der LED Band können dann gezielt Abläufe eines Showprogrammes gesteuert werden.

## Einstellungen

Bevor die DMX Steuerung genutzt werden kann müssen einige Parameter eingestellt werden. Den Dialog für die Einstellungen erreichen Sie über die Menüleiste oben unter dem Punkt Steuerung.

[![dialog_settings_dmx.png](https://docs.ledviz.com/uploads/images/gallery/2022-01/scaled-1680-/IuO3GiXDupuWGjBJ-dialog-settings-dmx.png)](https://docs.ledviz.com/uploads/images/gallery/2022-01/IuO3GiXDupuWGjBJ-dialog-settings-dmx.png)

Grundsätzlich besteht das Protokoll aus einer reinen Abfolge von Werten. Jede Liste wird durch eine ID, dem Universe gekennzeichnet. Dem Universe folgen 512 Werte, die jeweils von 0 bis 255 gehen können. Die genutzen Kanäle für LEDVIZ sind immer aufeinanderfolgend. Es muss deshalb nur der erste Kanal angegeben werden. Dabei werden folgende Werte unterstützt:

<table border="1" class="align-center" id="bkmrk-1-helligkeit-2-seque" style="width: 54.19753086419753%; border-collapse: collapse;"><tbody><tr><td class="align-center" style="width: 14.876493124029402%;">**Kanal + 0**</td><td class="align-left" style="width: 51.90032744767906%;">Helligkeit</td></tr><tr><td class="align-center" style="width: 14.876493124029402%;">**Kanal + 1** </td><td class="align-left" style="width: 51.90032744767906%;">Sequenz ID</td></tr><tr><td class="align-center" style="width: 14.876493124029402%;">**Kanal + 2**</td><td class="align-left" style="width: 51.90032744767906%;">Geschwindigkeit der Animation</td></tr><tr><td class="align-center" style="width: 14.876493124029402%;">**Kanal + 3**</td><td class="align-left" style="width: 51.90032744767906%;">Trigger für den Play Button (Wert 255 = Play)</td></tr></tbody></table>

<p class="callout success">Hinweis: Der Play-Befehl wird nur getriggert, wenn zuvor ein Wert empfangen wurde, der kleiner 255 ist!</p>

Die Überwachung von eingehenden DMX Befehlen ist für den Zeitraum aktiv, für die Abfrage aktiv ist. Über das Menü "Steuerung" kann diese Überwachung aktiviert werden. Ein aktive DMX Überwachung wird durch einen blauen Balken oberhalb der Playliste deutlich gekennzeichnet.

[![bar_dmx.png](https://docs.ledviz.com/uploads/images/gallery/2022-01/scaled-1680-/INzhmyceTIYxcZ3m-bar-dmx.png)](https://docs.ledviz.com/uploads/images/gallery/2022-01/INzhmyceTIYxcZ3m-bar-dmx.png)

Zusätzlich werden oben rechts durch das aufblinken des DMX512 Symbols eingehenden Befehle angezeigt. Bleibt das Symbol grau, bedeuted die das LEDVIZ keine DMX Befehle erkennt.

<p class="callout info">Sollte es Probleme mit dem Empfang vom DMX Befehlen geben, bitte überprüfen Sie ob der UDP Port **6454** in der Firewall geöffnet und die Daten auf dem PC empfangen werden können.</p>

# MIDI

Neben dem DMX und Rest-API unterstützt LEDVIZ auch das MIDI Protokoll. Über diese Protokoll können sehr einfach externe Bedieneinheiten angeschlossen und somit in LEDVIZ z.B. die Helligkeit über Schieberegler oder Sequenzen direkt auf Knopfdruck angesteuert werden.

