From e7e9ff31a8c41114db061171f9bd2ada7dfb7e2a Mon Sep 17 00:00:00 2001 From: Tom Clancy Date: Fri, 17 Jul 2026 15:43:27 -0400 Subject: [PATCH 1/2] fix(zap): raise repeat_count 6->15 for reliable receiver latch 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 --- devices/zap_lights.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/zap_lights.yaml b/devices/zap_lights.yaml index dc01a8b..d04706e 100644 --- a/devices/zap_lights.yaml +++ b/devices/zap_lights.yaml @@ -11,7 +11,8 @@ timing: short_us: 184 # 1-alpha segment (measured; rtl_433 timing distribution) long_us: 548 # 3-alpha segment (~3x short_us; ideal 552, measured 548) sync_gap_us: 5684 # long LOW after the sync pulse (~31x short_us) - repeat_count: 6 # remote repeats while held; receiver needs a few clean ones + repeat_count: 15 # factory remote sends ~47/press; chairs receiver latches ON + # unreliably off 6 (OFF fine, other lamps fine) — see PROTOCOL.md # Full 12-symbol tri-state code per button (no address/command factoring — # the capture is the source of truth; see the design spec deviation note). From f30b22ec4cc607b9c51a0dbb2fb27be11a66d6cd Mon Sep 17 00:00:00 2001 From: "dispatch-bot[bot]" <3106185+dispatch-bot[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:58:17 -0400 Subject: [PATCH 2/2] docs(protocol): document chairs ON repeat_count diagnosis Co-Authored-By: Claude Fable 5 --- PROTOCOL.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/PROTOCOL.md b/PROTOCOL.md index 57055e2..5d9997b 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -146,3 +146,17 @@ except a one-hot `1` that walks left one symbol per outlet position (pos 2 → symbol 9, pos 3 → 8, pos 4 → 7, pos 5 → 6), and the last two symbols are `01` = ON, `10` = OFF. The YAML stores full 12-symbol codes per button, so this structure is documentation only. + +### Repeat count — chairs (pos 5) ON reliability + +The chairs outlet latched ON only intermittently at `repeat_count: 6`, +independent of transmitter distance; OFF and the other three lamps were +reliable. Diagnosis ruled out a code bug: the chairs ON pulse train is +byte-correct (matches the factory remote's decoded `ea8afc8`) and +structurally identical to the working lamps' ON trains. The differentiator +is frame count — the factory remote sends ~47 frames per press vs our 6. +That outlet's receiver needs more consecutive clean frames to latch ON than +6 provides. Raised `repeat_count` to **15** (352 ms/transmit, well under the +5 s firmware budget); chairs ON then switched reliably across repeated +trials. Fix is YAML-only (timings/repeats are read from the profile at send +time — no reflash).