# led-controller LED controller web app for managing profiles, tabs, presets, and color 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, Color 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 `default` tab (starter presets). - Optional **DJ tab** seeding creates: - `dj` tab bound to device name `dj` - starter DJ presets (rainbow, single color, transition) ## Preset colors and palette linking - In preset editor, selecting a color picker value auto-adds it when the picker closes. - Use **From Palette** to add a palette-linked preset color. - Linked colors are stored as palette references and shown with a `P` badge. - When profile palette colors change, linked preset colors update across that profile. ## API docs - Main API reference: `docs/API.md`