You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(ameba): port the "77" exit + teardown fixes, minus the BLE change
Brings node 14's recommission path in line with the esp32 half. The trigger fix itself was
already shared: the debounce lives in hisense_rs485.cpp, so the "asserts for exactly one frame"
correction applies to both halves automatically -- and that was the reason "77" had never fired
anywhere.
Ported:
- Single teardown for every exit (expired / user left / paired). The expiry path previously only
flipped flags and sent exit_77, leaving the CHIP commissioning window OPEN and, when Wi-Fi was
down, BLE advertising indefinitely -- a lapsed window stayed pairable with nothing on the panel
to show it.
- Toggle: pressing the pattern again while the window is open now EXITS, matching the stock
dongle. Enter and exit are identical on the wire (a one-frame pulse), so holding a window is
the only thing that distinguishes them.
- Any non-swing remote button exits, with a 6 s settling grace.
- The driver's new cancel callback is wired to close the window on a sustained release.
SWING IS EXCLUDED from the remote-activity check, and this is the important one: the gesture that
ENTERS "77" is "Horizon Airflow x6" -- the swing button. Including vswing/hswing made entering the
mode instantly exit it. Measured on the esp32 half at window-open 95424 ms, killed 95674 ms, on
every single attempt. The entry gesture can never be the exit signal.
## NOT ported: BLE-always-on during the window
The esp32 half now keeps CHIPoBLE up for the whole window, because IP-only commissionable
discovery does not work here (matter-server's discover_commissionable_nodes returns nothing and
commissioning over IP fails with "Discovery timed out"), so a BLE-suppressed window is invisible.
That reasoning does NOT transfer. The RTL8710C is SINGLE-RADIO: this file already records that
the BLE window starved Wi-Fi via coex and dropped weak-signal units, and the recommission-77
notes list it as a compounding factor in the living-room drops. Forcing BLE on here trades a
discoverable window for the risk of dropping the node that is currently healthy.
So ameba keeps the existing conditional: suppress BLE only when Wi-Fi is actually up, keep it
when Wi-Fi is down (the lockout audit fix). The consequence is that a "77" window on node 14 may
still be hard for a controller to find over IP alone -- unresolved, and it needs a decision about
whether coex risk or discoverability matters more on this hardware.
Host tests: 330 codec + 119 matter-map pass. Ameba builds clean (v10300).
NOTE: node 14 is still RUNNING v1.3.0 without these fixes. version.txt is 1.3.0 and
.released-version is 10300, so shipping them needs a bump to 1.3.1 -- the serial derives from the
version and an equal serial will not switch boot slots.
Assisted-by: AI
0 commit comments