I know that usually the websockets or REST api are used to turn on/off the WLED. But can I use an UDP packet to turn off the WLED as well? Perhaps sending a brightness of 0?
You can send any API command using (properly formatted) UDP packet/message.
Really? How do I do this? Cause in the documentation I can’t find anything about turning if on/off. I can see brightness/color/effect etc. But not on/off
Look into udp.cpp in source. Then you are welcome to update the docs.
Ahh thank you! I found what you are talking about. I’ll try to figure out how to use it in my code:
// API over UDP
udpIn[packetSize] = '\0';
if (udpIn[0] >= 'A' && udpIn[0] <= 'Z') { //HTTP API
String apireq = "win&";
apireq += (char*)udpIn;
handleSet(nullptr, apireq);
} else if (udpIn[0] == '{') { //JSON API
DynamicJsonDocument jsonBuffer(2048);
DeserializationError error = deserializeJson(jsonBuffer, udpIn);
JsonObject root = jsonBuffer.as<JsonObject>();
if (!error && !root.isNull()) deserializeState(root);
}
Quick question here, if I use the UDP packet to send JSON does it have a performance hit compared to real-time color changes?
I use UDP now for changing the colors in real-time, but once the packets stop… the color returns to the original set color. If I use the JSON API this should change the color ‘more permanently’ right? Can I do this a the same speed that I do the real-time changes?
send: "live":true
and WLED will remain in realtime mode
Still. What you are trying to achieve should be done in a different way IMO.
Please enlighten me. Cause I was using websockets. Then I switched to UDP WARLS which is made for real-time light changing right? What do you think I should be using?
I only use the JSON over UDP for turning on the WLED strip. And I’ll add “live”: true to that request
If you want to control individual LEDs use standard protocol like E131 or ArtNet or DDP.
Possibly using off-the shelf software (OSS or not).
If you want to learn then delve into the (WLED) code.
Alright, I’ll do that! Thanks