New event architecture
This release replaces the opaque watchdog mechanism with an explicit three-layer event model:
Event types
| Layer |
Events |
| RAW |
press, release, orphan_release, release_timeout |
| CALCULÉS (best-effort) |
long_press, long_release |
| UX |
single_press |
What changed
single_press — new UX event, fires on press or on a coherent orphan_release (when the press telegram was lost but the release was received). One per interaction. Recommended for simple toggle/scene automations.
orphan_release — new RAW event replacing the silent release that was emitted when no prior press was known.
release_timeout — fires after 8 s of silence when no release is received. Replaces the previous synthetic long_release emitted by the watchdog.
long_release — no longer synthesized by a timer. Now emitted alongside release when a real release arrives after a long_press. Both release and long_release fire together.
- Implicit cycle end — any new press cancels the pending
release_timeout timer and resets state.
Migration guide
| Automation pattern |
Before |
After |
| Toggle / scene |
to: press |
to: single_press (more reliable) |
| Stop dimming |
to: long_release only |
Add to: release_timeout as additional stop trigger |
Breaking changes
orphan_release is emitted instead of release when press was not received.
release_timeout is emitted instead of a synthetic long_release when release is lost.
LONG_PRESS_WATCHDOG_SECONDS constant removed (use RELEASE_TIMEOUT_SECONDS).