Multi-controller support (spec §16.3) #13

Open
opened 2026-07-07 16:52:10 +00:00 by claude-bot · 0 comments
Contributor

Goal

Manage more than one WLED controller, each with its own segment configuration, scheme assignments, and push schedule; controllers may share or independently configure schemes.

Design (from spec §16.3)

  • Add a controller_id FK to segments, schemes, schedule_log, and settings.
  • UI gains a controller selector.
  • The v1 WLEDController class was already abstracted to make this possible without rewriting the integration layer — instantiate controllers: dict[str, WLEDController] in place of the singleton.

Why it was deferred

The entire v1 data model is single-controller; supporting multiple controllers is a significant schema migration and UI rework. This is the one v2 item that already shaped v1 code (the WLEDController abstraction).

Acceptance criteria

  • Schema migration adds controller_id across the relevant tables
  • Multiple controllers can be configured and pushed independently
  • UI controller selector
  • Migration + tests

Deferred v2 item carried over from the spec.

## Goal Manage more than one WLED controller, each with its own segment configuration, scheme assignments, and push schedule; controllers may share or independently configure schemes. ## Design (from spec §16.3) - Add a `controller_id` FK to `segments`, `schemes`, `schedule_log`, and `settings`. - UI gains a controller selector. - The v1 `WLEDController` class was **already abstracted** to make this possible without rewriting the integration layer — instantiate `controllers: dict[str, WLEDController]` in place of the singleton. ## Why it was deferred The entire v1 data model is single-controller; supporting multiple controllers is a significant schema migration and UI rework. This is the one v2 item that already shaped v1 code (the `WLEDController` abstraction). ## Acceptance criteria - [ ] Schema migration adds `controller_id` across the relevant tables - [ ] Multiple controllers can be configured and pushed independently - [ ] UI controller selector - [ ] Migration + tests Deferred v2 item carried over from the spec.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rbrooks/Iris-WLED#13
No description provided.