Live remote-control page #24
Labels
No labels
area/ai
area/backend
area/frontend
area/infra
area/scheduler
area/wled
good-first-issue
priority/high
priority/low
priority/medium
type/bug
type/chore
type/ci-cd
type/docs
type/feature
type/qa
v1.0.0
v1.1.0
v1.2.0
v2.0.0
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Iris-WLED#24
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
A simple "set the lights right now" control surface: a color wheel / brightness / effect picker that pushes to the device immediately, distinct from the review workflow.
Why it's valuable
Sometimes you just want to grab the lights manually (a party, testing, showing someone). Today that means quick-push buried in the review UI. A dedicated, mobile-friendly control page makes Iris pleasant to use as an everyday remote.
Sketch
POST /wled/quick-push+DELETE /wled/quick-pushendpoints and the auto-revert-at-next-scheduler-event behavior.Acceptance criteria
Proposed enhancement (brainstorm follow-up).
Landed in #135 (squash-merged to
main). All four acceptance criteria met./remote: colour swatches, a custom picker, brightness, effect, speed and intensity — all pushing immediately — plus a one-tap Back to schedule. Laid out for a phone first, because the plausible use is standing in the garden looking at the tree.It drives the existing quick-push endpoint rather than inventing a second push path. That's what makes it safe to hand to someone at a party: quick push saves the controller's state, applies the new one, and hands the night back at the next scheduler event, so nothing the page does can leave the lights somewhere the schedule won't recover from. A second path would have had to reimplement that, and the version that forgot to would be indistinguishable from the working one until the evening it mattered.
Quick push gained
brightness_pct,effect_id,effect_speed,effect_intensity— meaningful only alongside a colour, since a scheme carries its own. All four default to the previous behaviour, and there are tests pinning that specifically:solid_color_stateis shared with the no-event ambient state and the scheduler's fallbacks, so a "harmless" default change here would quietly alter both.Two interaction decisions: tapping a swatch sets and pushes in one action (a second tap on Apply is one too many when you're looking at the lights), and sliders push on release, not on drag (the same reasoning for a control that would otherwise send sixty requests a second).
A real bug turned up while reading the push path.
POST /wled/push— the "Push now" button — built its scheme id directly instead of going through the resolver #74 added, so on an interpolated event the button sent the phase anchor while the scheduler sent the blended day. That's the same drift #93 fixed once already, and #74 added a third asker of the question without my noticing. Fixed, with a test that fails against the old lookup:Verified: 21 new backend tests,
ruff/mypyclean, 780 backend tests, frontendtsc/eslint/vitest/build clean, CI green.