JSON API - Aircoookie/WLED-wiki-DE GitHub Wiki
Ab Version 0.8.4 implementiert WLED eine leistungsstarke JSON-API über HTTP.
Der Zugriff erfolgt über die Unterseite / json
.
Lichtinformationen abrufen
Durch das Senden einer GET-Anforderung wird ein Objekt zurückgegeben, das dem folgenden Beispiel ähnelt. Die Antwort besteht aus vier Objekten:
state
enthält den aktuellen Zustand des Lichts. Alle Werte können vom Client geändert werden (siehe unten).info
enthält allgemeine Informationen zum Gerät. Mit dieser API kann kein Wert geändert werden.Effekte
enthält ein Array der Namen der EffektmodiPaletten
enthält ein Array der Palettennamen
Sie können diese Objekte auch einzeln über die URLs / json / state`` / json / info
/ json / eff
und / json / pal
erhalten
Neue Werte setzen
Durch Senden einer POST-Anforderung an "/ json" oder "/ json / state" mit (Teilen) des Statusobjekts werden die entsprechenden Werte aktualisiert.
Beispiel: {" on ": true," bri ": 255}
setzt die Helligkeit auf Maximum. {" seg ": [{" col ": [0,255,200](/Aircoookie/WLED-wiki-DE/wiki/0,255,200)}]}
setzt die Farbe des ersten Segments auf blaugrün.
Beispiel für eine JSON-API-Antwort (v0.8.4):
{
"state": {
"on": true,
"bri": 127,
"transition": 7,
"ps": -1,
"pl": -1,
"nl": {
"on": false,
"dur": 60,
"fade": true,
"tbri": 0
},
"udpn": {
"send": false,
"recv": true
},
"seg": [{
"start": 0,
"stop": 20,
"len": 20,
"col": [
[255, 160, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]
],
"fx": 0,
"sx": 127,
"ix": 127,
"pal": 0,
"sel": true,
"rev": false,
"cln": -1
}]
},
"info": {
"ver": "0.8.4",
"vid": 1903252,
"leds": {
"count": 20,
"rgbw": true,
"pin": [2],
"pwr": 0,
"maxpwr": 65000,
"maxseg": 1
},
"name": "WLED Light",
"udpport": 21324,
"live": false,
"fxcount": 80,
"palcount": 47,
"arch": "esp8266",
"core": "2_4_2",
"freeheap": 13264,
"uptime": 17985,
"opt": 127,
"brand": "WLED",
"product": "DIY light",
"btype": "src",
"mac": "60019423b441"
},
"effects": [
"Solid", "Blink", "Breathe", "Wipe", "Wipe Random", "Random Colors", "Sweep", "Dynamic", "Colorloop", "Rainbow",
"Scan", "Dual Scan", "Fade", "Chase", "Chase Rainbow", "Running", "Saw", "Twinkle", "Dissolve", "Dissolve Rnd",
"Sparkle", "Dark Sparkle", "Sparkle+", "Strobe", "Strobe Rainbow", "Mega Strobe", "Blink Rainbow", "Android", "Chase", "Chase Random",
"Chase Rainbow", "Chase Flash", "Chase Flash Rnd", "Rainbow Runner", "Colorful", "Traffic Light", "Sweep Random", "Running 2", "Red & Blue", "Stream",
"Scanner", "Lighthouse", "Fireworks", "Rain", "Merry Christmas", "Fire Flicker", "Gradient", "Loading", "In Out", "In In",
"Out Out", "Out In", "Circus", "Halloween", "Tri Chase", "Tri Wipe", "Tri Fade", "Lightning", "ICU", "Multi Comet",
"Dual Scanner", "Stream 2", "Oscillate", "Pride 2015", "Juggle", "Palette", "Fire 2012", "Colorwaves", "BPM", "Fill Noise", "Noise 1",
"Noise 2", "Noise 3", "Noise 4", "Colortwinkle", "Lake", "Meteor", "Smooth Meteor", "Railway", "Ripple"
],
"palettes": [
"Default", "Random Cycle", "Primary Color", "Based on Primary", "Set Colors", "Based on Set", "Party", "Cloud", "Lava", "Ocean",
"Forest", "Rainbow", "Rainbow Bands", "Sunset", "Rivendell", "Breeze", "Red & Blue", "Yellowout", "Analogous", "Splash",
"Pastel", "Sunset 2", "Beech", "Vintage", "Departure", "Landscape", "Beach", "Sherbet", "Hult", "Hult 64",
"Drywet", "Jul", "Grintage", "Rewhi", "Tertiary", "Fire", "Icefire", "Cyane", "Light Pink", "Autumn",
"Magenta", "Magred", "Yelmag", "Yelblu", "Orange & Teal", "Tiamat", "April Night"
]
}
Werteübersicht
Statusobjekt
JSON-Schlüssel | Wertebereich | Beschreibung |
---|---|---|
am | bool | Ein / Aus-Zustand des Lichts |
bri | 0 bis 255 | Helligkeit des Lichts. Wenn on false ist, enthält es die letzte Helligkeit, wenn das Licht eingeschaltet war (auch bekannt als Helligkeit, wenn on auf true gesetzt ist). Das Setzen von bri auf 0 wird unterstützt, ist jedoch veraltet. Es wird empfohlen, den Bereich 1-255 zu verwenden. Die Zustandsantwort wird niemals den Wert "0" für bri haben. |
Übergang | 0 bis 255 | Dauer der Überblendung zwischen verschiedenen Farben / Helligkeitsstufen. Eine Einheit ist 100 ms, daher führt ein Wert von "4" zu einem Übergang von 400 ms. |
tt | 0 bis 255 | Ähnlich wie beim Übergang, gilt jedoch nur für den aktuellen API-Aufruf. Nicht in der Statusantwort enthalten. |
ps | -1 bis 65535 | ID der aktuell eingestellten Voreinstellung. |
psave | 1 bis 16 | Speichern Sie die aktuelle Lichtkonfiguration im angegebenen voreingestellten Steckplatz. Nicht in der Statusantwort enthalten. |
pl | -1 bis 0 | ID der aktuell eingestellten Wiedergabeliste. Im Moment wird hiermit die voreingestellte Zyklusfunktion eingestellt: "-1" ist ausgeschaltet und "0" ist eingeschaltet. |
nl.on | bool | Nachtlicht derzeit aktiv |
nl.dur | 1 bis 255 | Dauer des Nachtlichts in Minuten |
nl.fade | bool | Wenn "wahr", wird das Licht im Verlauf der Nachtlichtdauer allmählich gedimmt. Wenn "false", wird sofort nach Ablauf der Dauer die Zielhelligkeit angezeigt. |
nl.tbri | 0 bis 255 | Zielhelligkeit der Nachtlichtfunktion |
udpn.send | bool | Senden eines WLED-Broadcast-Pakets (UDP-Synchronisierungspaket) bei Statusänderung |
udpn.recv | bool | Broadcast-Pakete empfangen |
udpn.nn | bool | Senden Sie kein Broadcast-Paket (gilt nur für den aktuellen API-Aufruf). Nicht in der Statusantwort enthalten. |
v | bool | Wenn in einem JSON-POST-Befehl true festgelegt ist, enthält die Antwort das vollständige JSON-Statusobjekt. Nicht in der Statusantwort enthalten. |
Zeit | uint32 | Stellen Sie die Modulzeit auf den Unix-Zeitstempel ein. Nicht in der Statusantwort enthalten. |
Großsegment | 0 bis info.leds.maxseg-1 | Hauptsegment |
seg | Array von Segmentobjekten | Segmente sind Einzelteile des LED-Streifens. In 0.9.0 können auf diese Weise verschiedene Effekte auf verschiedene Teile des Streifens ausgeführt werden. |
Inhalt des Segmentobjekts
** Hinweis: ** start, stop und len können in 0.8.4 nicht geändert werden. Jedes Segment mit id> 0 wird ignoriert. Sofern nicht anders angegeben, kann jeder Wert über eine HTTP-POST-Anforderung geändert werden. Die Tertiärfarbe wird in 0.8.4 nicht gammakorrigiert, sondern in späteren Versionen.
JSON-Schlüssel | Wertebereich | Beschreibung |
---|---|---|
id | 0 bis info.maxseg -1 | Nullindizierte ID des Segments. Kann weggelassen werden. In diesem Fall wird die ID aus der Reihenfolge der Segmentobjekte im Array seg abgeleitet. Als solches nicht in der status Antwort enthalten. |
start | 0 bis info.leds.count -1 | LED das Segment beginnt bei. |
stop | 0 bis info.leds.count | LED das Segment stoppt bei, nicht im Bereich enthalten. Wenn stop auf einen niedrigeren oder gleichen Wert als start gesetzt ist (die Einstellung auf 0 wird empfohlen), wird das Segment ungültig gemacht und gelöscht. |
len | 0 bis info.leds.count | Länge des Segments (stop - start). stop hat die Präferenz. Wenn es also enthalten ist, wird len ignoriert. |
col | Farbreihe | Array mit bis zu 3 Farbarrays als Elementen, der Primär-, Sekundär- (Hintergrund-) und Tertiärfarbe des Segments. Jede Farbe ist ein Array von 3 oder 4 Bytes, die eine RGB (W) -Farbe darstellen. |
fx | 0 bis info.fxcount -1 | ID des Effekts. |
sx | 0 bis 255 | Relative Effektgeschwindigkeit |
ix | 0 bis 255 | Effektintensität |
Kumpel | 0 bis info.palcount -1 | ID der Farbpalette |
sel | bool | true wenn das Segment ausgewählt ist. Bei ausgewählten Segmenten wird der Status (Farbe / FX) durch APIs aktualisiert, die keine Segmente unterstützen (derzeit keine API außer dieser JSON-API). Wenn kein Segment ausgewählt ist, verhält sich das erste Segment (id: 0 ) wie ausgewählt. WLED meldet den Status des ersten (niedrigste id) Segments, das für APIs ausgewählt wurde (UDP-Synchronisierung, HTTP, MQTT, Blynk ...). 0.8.4 gibt in der Statusantwort für das einzige Segmentobjekt immer "true" zurück. |
rev | bool | Kippt das Segment um, wodurch Animationen die Richtung ändern. |
cln | -1 bis info.maxseg -1 | Klont das Segment mit der angegebenen id und spiegelt genau den LED-Inhalt wider. Wenn das zu klonende Segment kürzer ist, werden die verbleibenden LEDs ausgeschaltet. Wenn das zu klonende Segment ungültig ist oder die id des Segments selbst festgelegt ist, wird es auf "-1" zurückgesetzt. Nicht in 0.8.4 implementiert, immer "-1" in der Statusantwort. |
Info Objekt
Mit dieser API darf kein Wert geändert werden.
JSON-Schlüssel | Wertebereich | Beschreibung |
---|---|---|
ver | Zeichenfolge | Versionsname. |
vid | uint32 | Build-ID (YYMMDDB, B = täglicher Build-Index). |
leds.count | 1 bis 1200 | Gesamtanzahl der LEDs. |
leds.rgbw | bool | true wenn LEDs 4-Kanal (RGBW) sind. |
leds.pin | Byte-Array | LED-Streifenstift (e). In 0.8.4 immer ein Element. |
leds.pwr | 0 bis 65000 | Aktueller LED-Stromverbrauch in Milliampere gemäß ABL. 0 wenn ABL deaktiviert ist. |
leds.maxpwr | 0 bis 65000 | Maximales Strombudget in Milliampere für den ABL. 0 wenn ABL deaktiviert ist. |
leds.maxseg | Byte | Maximale Anzahl von Segmenten, die von dieser Version unterstützt werden. |
Name | Zeichenfolge | Freundlicher Name des Lichts. Zur Anzeige in Listen und Titeln vorgesehen. |
udpport | uint16 | Der UDP-Port für Echtzeitpakete und WLED-Broadcast. |
leben | bool | Wenn "true", empfängt die Software derzeit Echtzeitdaten über UDP oder E1.31. |
fxcount | Byte | Anzahl der enthaltenen Effekte. |
palcount | uint16 | Anzahl der konfigurierten Paletten. |
wifi.bssid | Zeichenfolge | Die BSSID des aktuell verbundenen Netzwerks. |
wifi.signal | 0 bis 100 | Relative Signalqualität der aktuellen Verbindung. |
wifi.channel | 1 bis 14 | Der aktuelle WiFi-Kanal. |
arch | Zeichenfolge | Name der Plattform. |
Kern | Zeichenfolge | Version des zugrunde liegenden SDK (Arduino Core). |
freeheap | uint32 | Derzeit verfügbare Bytes des Heapspeichers (RAM). Problematisch wenn <10k . |
Betriebszeit | uint32 | Zeit seit dem letzten Booten / Zurücksetzen in Sekunden. |
opt | uint16 | Wird nur zum Debuggen verwendet. |
Marke | Zeichenfolge | Der Produzent / Verkäufer des Lichts. Bei Standardinstallationen immer "WLED". |
Produkt | Zeichenfolge | Der Produktname. Immer "DIY light" für Standardinstallationen. |
btype | Zeichenfolge | Der Ursprung des Builds. "src", wenn eine Release-Version aus dem Quellcode kompiliert wurde, "bin" für ein offizielles Release-Image, "dev" für einen Entwicklungs-Build (unabhängig von der Herkunft von src / bin) und "exp" für experimentelle Versionen. ogn , wenn das Image vom Hersteller auf Hardware geflasht wird. |
mac | Zeichenfolge | Die hexadezimale Hardware-MAC-Adresse des Lichts, in Kleinbuchstaben und ohne Doppelpunkte. |