led-controller
LED controller web app for managing profiles, tabs, presets, and colour palettes, and sending commands to LED devices over the serial -> ESP-NOW bridge.
Run
- One-time setup for port 80 without root:
sudo scripts/setup-port80.sh - Start app:
pipenv run run - Dev watcher (auto-restart on
src/changes):pipenv run dev
UI modes
- Run mode: focused control view. Select tabs/presets and apply profiles. Editing actions are hidden.
- Edit mode: management view. Shows Tabs, Presets, Patterns, Colour Palette, and Send Presets controls, plus per-tile preset edit/remove and drag-reorder.
Profiles
- Applying a profile updates session scope and refreshes the active tab content.
- In Run mode, Profiles supports apply-only behavior (no create/clone/delete).
- In Edit mode, Profiles supports create/clone/delete.
- Creating a profile always creates a populated
defaulttab (starter presets). - Optional DJ tab seeding creates:
djtab bound to device namedj- starter DJ presets (rainbow, single colour, transition)
Preset colours and palette linking
- In preset editor, selecting a colour picker value auto-adds it when the picker closes.
- Use From Palette to add a palette-linked preset colour.
- Linked colours are stored as palette references and shown with a
Pbadge. - When profile palette colours change, linked preset colours update across that profile.
API docs
- Main API reference:
docs/API.md
Languages
Python
51.6%
JavaScript
39.5%
HTML
5%
CSS
3.9%