Releases: kinsaurralde/ws_281x-lights
Releases · kinsaurralde/ws_281x-lights
Simulated Pixels in Webassembly
Connection Manager
- Move connection between webapp and controllers to new class
- Standardized RequestResponse
Simulated Pixels in Webrowser
- Run pixel simulation in browser instead of webapp server
- Uses emsdk to compile c++ controller code into wasm
- Uses same animation code as actual controllers so easier to test
Logging
- Using logging library
- Multiple levels and colors for different types of messages
- Save log to file
Sequencer and Scheduler
Add Sequencer and Scheduler
- Prewrite sequences of animations
- Schedule sequences to run
Add new Animations
- randomCycle: cycle between random colors
- reverser: reverse animation direction and/or static pixels
Pixel Display
Add Pixel Simulation and Display
- Option for webapp to simulate pixel animation functions
- -s command line option to enable
- changed some makefile targets to use simulation
- Use SocketIO to send generated pixels to display on website
- GRB option
- Add helper functions to linter globals
- Label option for version info
- Bug Fixes:
- Reverse arg from webpage now boolean type (was string which caused it to always equal true)
- Pulse animation can have 0 spacing
2.0.0
2.0.0
Rewrote entire project
Description:
This project uses a webapp and either ESP8266s or raspberrypis to controll ws2812 or ws2815 LEDs.
The webapp is hosted on a Flask webserver. It recieves commands from the website it hosts and uses
its config information to send these commands to the correct controller. The webapp also uses
SocketIO to communicate with the website clients which is used to update connected status and
make changes to brightness broadcasted to all.
Full documentation here
Socketio Info
New:
- New info page
- Pixel info uses socketio
- Brightness and power usage shown
- Testing mode for non pi devices
- Argparse handles command line arguments
Websockets / JSON Functions / Webpage Functions
New:
- Websockets for secondary controllers
- JSON Functions
- Can run function stored in JSON format
- Has loops and variables
- Can run function stored in JSON format
- Webpage Functions
- Table with each function and parameters that can be changed
- Lights Functions:
- Pattern
- Blend
- Fade
- Pulse Pattern
- Twinkle
- Ping / Power usage in info page
- Auto Light/Dark theme
Changed:
- Brightness on secondary controllers can be changed
- Small start delay to offset network latency
- Full colors has white and black as defaults
- Full colors starts minimized
- Quick buttons
- Arguments for various light functions
- Defaults for various light functions
Removed:
- Operations, Switch, Pulse, Chase, Wipe, Random web page sections
Tools / Multi Controller / Remote App
New:
- Tools:
- gen_config.py: This python script asks questions to generate a config file
- send_json.py: This python script sends to given json file to the given url in a POST request
- secondary.py: This python script makes the folder containing the files the remote controllers use
- put_files.py: This python script updates remote controllers through sftp
- Remote App
- Runs webserver on other devices to control multiple strips
- remote_app.py:
- No web page
- RemoteController class to handle sending JSON from primary device
- Multi Controller
- Send commands to correct controller
- Functions:
- bounce: sends pulse back and forth across strip
Changes:
- config file format
Info
New:
- Info page
- Show current settings
- Show current power use
- Show color of all LEDs on all strips and controllers
- Setup script
- Config file name can be provided as command line option
Changes:
- Pulse
- Will deactivate itself if overlapping virtual strips cover entire pulse range
Keys
New:
- Key required to change specific strips
- Keys class
- Contains current keys and their data (which strips allowed)
- Can check if key is valid for specific strip and throw assertion error if invalid
- Can Add/Remove/Change keys
- Can Add/Remove strips for each key
- Can return key data for web page
- Web panel has options to change key or strip
- New web page to access/modify keys and their data
- Config file
- Initial Virtual strips
- Initial Keys
Return Data
New:
- All functions that change pixels return status info in json format
- Contains:
- Color of all pixels on current strip
- Current strip data
- Function that was just run
- Error and message if necessary
- Contains:
- Web panel shows errors, warnings, and messages if exception thrown due to invalid parameters, functions, connection errors, etc
- Web panel has sender class which handles sending and receiving requests and their response
- Max milliamps for power supply set, brightness lowered if power usage will be greater