Skip to content

fix(zap): raise repeat_count 6→15 for reliable chairs ON latch - #14

Merged
tclancy merged 2 commits into
mainfrom
claude/zap-repeat-count
Jul 17, 2026
Merged

fix(zap): raise repeat_count 6→15 for reliable chairs ON latch#14
tclancy merged 2 commits into
mainfrom
claude/zap-repeat-count

Conversation

@metaframework-dispatch-bot

Copy link
Copy Markdown

Symptom

The chairs (pos 5) outlet latched ON only intermittently, independent of transmitter distance. OFF worked reliably, and the other three lamps' ON worked reliably.

Diagnosis (systematic-debugging, no guessing)

Ruled out a code bug by evidence before touching anything:

  • Re-decoded the saved factory captures offline — the remote's chairs ON decodes cleanly and consistently to ea8afc8 (our stored code) across ~47 frames; OFF to ea8af38. Our stored code is correct.
  • Generated and compared the pulse trains — chairs ON is 25 well-formed pairs (three timing values, within firmware limits) and structurally identical to the speaker ON train that works.
  • Logical squeeze: chairs OFF works → the chairs address prefix transmits fine; other lamps' ON works → the ON tail transmits fine. A deterministic bug can't single out chairs ON.

Root cause: frame count. The factory remote sends ~47 frames/press; we sent 6. That outlet's receiver is marginally less sensitive on the ON latch and needs more consecutive clean frames than 6 provides — which is exactly why it's distance-independent and unit-specific.

Fix

repeat_count 6 → 15 (YAML-only; timings are read from the profile at send time, no reflash). Chairs ON = 352 ms/transmit, well under the 5 s firmware budget. Bench-confirmed: chairs ON switched reliably across repeated trials at 15 where it was intermittent at 6.

All 65 tests pass. PROTOCOL.md documents the diagnosis. Companion PWA regen: homelab#259.

🤖 Generated with Claude Code

tclancy and others added 2 commits July 17, 2026 15:43
Chairs (pos5) outlet latched ON only intermittently off 6 repeats,
distance-independent; OFF and the other three lamps were reliable.
Pulse train is byte-correct and structurally identical to working
lamps, so the differentiator is frame count: the factory remote sends
~47 frames/press vs our 6. 15 frames (352ms, well under the 5s budget)
gives a marginal receiver enough clean frames to latch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tclancy
tclancy merged commit 02ca25c into main Jul 17, 2026
1 check passed
@tclancy
tclancy deleted the claude/zap-repeat-count branch July 17, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant