You can now use WLED with the popular Ambilight software Hyperion.
Just configure Hyperion to use an UDP device with protocol 0 on port 19446!
Additionally, WLED offers a way to directly drive the connected LEDs via UDP. The protocol is referred to as WLED [Audio-Reactive-Led-Strip](https://github.com/scottlawsonbc/audio-reactive-led-strip) (WARLS), since the support of that project was its primary goal. However, it can also be used for other realtime applications like an ambilight.
Byte 0 of the UDP packet tells the server which realtime protocol to use.
Value | Description
--- | ---
1 | WARLS
2 | DRGB
3 | DRGBW
0 | WLED Notifier
In every protocol, Byte 1 tells the server how many seconds to wait after the last received packet before returning to normal mode, in practice you should use 1-2 (seconds) here in most cases so that the module returns to normal mode quickly after the end of transmission.
After this the LED color information is transmitted like this:
This mode has the difference that the LED indices are not part of the packet, instead every LED is updated. This leads to a higher speed when all LEDs are changed, but a drastically lower speed if only one LED is updated per packet.
Byte | Description
--- | ---
2 + n*3 | Red Value
3 + n*3 | Green Value
4 + n*3 | Blue Value
DRGBW:
Like DRGB, but supports the White value for RGBW strips.
When WARLS mode starts, all LEDs will be black. However, you don't have to change all LEDs using one packet.
Changing a single LED therefore only requires a packet of 2+4 bytes. All LEDs maintain their color until it is changed or the module exits WARLS mode because of a timeout.
1. Download [audio-reactive-led-strip](https://github.com/scottlawsonbc/audio-reactive-led-strip) and follow its installation instruction. Use python 3! You can also use my (untested) [fork](https://github.com/Aircoookie/audio-reactive-led-strip). In that case, you can skip step 2 and it should also work with python 2.