Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have been doing some investigation into minimizing latency and adapting more commercial grade standards which lead me to this PR.
E1.31 is a popular lightweight streaming protocol that supports a lot of cool things like multi-casting (not yet supported). Turns out Hundemeier just recently wrote a python library for this which makes it super easy to integrate. So this PR adds support for communicating with any E1.31 client and driving various types of LEDs (including our beloved WS2812Bs). There are a ton of controllers out there, but what is relevant to this application is ESPPixelStick which is a ESP8266 FW that supports WS2812Bs. The firmware supports a ton of great features (web interface, local animations, websocket connect, json apis to query things like LED counts, etc) so check it out. Still doing some performance testing, but so far it seems to be significantly better on my network than the current ESP8266 solution. And has lots of bonus features :)
Try it out and let me know how it performs on your network!
NOTE: This adds a new dependency: pip install sacn. Unfortunately the sacn library only functions on python 3.6+ so your environment might need to be updated