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 Effektmodi
  • Paletten 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.