Repository navigation
Disable the Reboot Timeouts on the Example Devices - #261
Conversation
An example device flashed to a bench unit is never adopted by Home Assistant, so the API's default 15 minute reboot_timeout restarted it every 15 minutes. Each example device now sets api_reboot_timeout and wifi_reboot_timeout to 0s, and the change-detection job fails one that does not, so a new example device cannot regress.
|
A recorded local strict-review pass covers head |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 49 minutes. View limit details
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Document and enforce timeout requirements .github/workflows/test-pull-request.yml, OPERATIONS.md |
Operations guidance specifies both timeout substitutions. The pull-request workflow checks each test/*.yaml file and fails if either setting is missing or not 0s. The Heltec bench note refers readers to the shared guidance. |
Set timeout values in example configurations test/*.yaml, README.md, HISTORY.md |
The example-device test configurations set both timeouts to 0s. Version 2.4 release notes describe the settings and their bench-use context. |
Priority:
Estimated code review effort: 2 (Simple) | ~12 minutes
Change: Bug fix
Possibly related PRs
- ptr727/ESPHome-Config#260: Added the M5Stack Dial example configuration, which this PR updates with zero-second API and Wi-Fi reboot timeouts.
Merge Risk: 
Minimal · up to af245
-
The example-device timeout changes are consistently configured and enforced by CI, with no actionable merge risk identified.
Pre-merge checks: 
5
-
Full details: Title check
-
Explanation
The title "Disable the Reboot Timeouts on the Example Devices" matches the main change. The changeset sets api_reboot_timeout and wifi_reboot_timeout to 0s in the test/ example-device configurations, adds a CI check that enforces both settings, and documents the rule in OPERATIONS.md, HISTORY.md, and README.md. The title is short, specific, and free of file lists or vague terms.
Full details: Docstring Coverage
-
Explanation
No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (28 skipped: 28 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #261 +/- ##
========================================
Coverage 43.07% 43.07%
========================================
Files 1 1
Lines 130 130
========================================
Hits 56 56
Misses 74 74
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🔵 Needs a closer look
The CI guard must accept semantically valid single-quoted zero-duration substitutions.
No open issues 🎉
What changed in this PR
This pull request prevents example devices flashed without Home Assistant or network connectivity from rebooting every 15 minutes.
Changes:
- Sets
api_reboot_timeoutandwifi_reboot_timeoutto0sin all 24 example device configurations. - Adds CI enforcement for both timeout overrides.
- Documents the behavior in
README.md,OPERATIONS.md, andHISTORY.md.
| File | Description |
|---|---|
test/wemos-lolin32-lite.yaml |
Disables both reboot timeouts. |
test/waveshare-esp32-s3-eth.yaml |
Disables both reboot timeouts. |
test/unexpectedmaker-pros3d.yaml |
Disables both reboot timeouts. |
test/sonoff-th10.yaml |
Disables both reboot timeouts. |
test/sonoff-s31.yaml |
Disables both reboot timeouts. |
test/smarthome-ceilsense.yaml |
Disables both reboot timeouts. |
test/rocket-astra.yaml |
Disables both reboot timeouts. |
test/norvi-enet-ae06-r.yaml |
Disables both reboot timeouts. |
test/m5stack-dial.yaml |
Prevents periodic bench reboots. |
test/m5stack-cores3.yaml |
Disables both reboot timeouts. |
test/konnected-blaq.yaml |
Disables both reboot timeouts. |
test/kincony-kc868-asr.yaml |
Disables both reboot timeouts. |
test/heltec-wifi-lora32-v4-r8.yaml |
Disables both reboot timeouts. |
test/gls10-bluetooth-proxy.yaml |
Disables both reboot timeouts. |
test/esp32-s3-wroom-2-n32r8v.yaml |
Disables both reboot timeouts. |
test/esp32-s3-wroom-2-n16r8v.yaml |
Disables both reboot timeouts. |
test/esp32-s3-wroom-1-n16r8.yaml |
Disables both reboot timeouts. |
test/esp32-s3-devkitc.yaml |
Disables both reboot timeouts. |
test/elecrow-thinknode-m7.yaml |
Disables both reboot timeouts. |
test/efun-sh331.yaml |
Disables both reboot timeouts. |
test/easystart.yaml |
Disables both reboot timeouts. |
test/apollo-plt-1b.yaml |
Disables both reboot timeouts. |
test/aoycocr-x5p.yaml |
Disables both reboot timeouts. |
test/adafruit-esp32-s3-feather.yaml |
Disables both reboot timeouts. |
README.md |
Records the bench-device timeout behavior. |
OPERATIONS.md |
Documents the timeout rule and related guidance. |
HISTORY.md |
Records the change in release history. |
.github/workflows/test-pull-request.yml |
Enforces both overrides; the matcher currently rejects valid single-quoted 0s values. |
Review effort: Lite
|
A recorded local strict-review pass covers head |
|
Answering the review headline "The CI guard must accept semantically valid single-quoted zero-duration substitutions": fixed in 2b66e8f. The guard patterns now hold a real single quote, |
An example device flashed to a bench unit is never adopted by Home Assistant, so the API's default 15 minute
reboot_timeoutrestarted it every 15 minutes. That was the M5Stack Dial's periodic reboot on the bench, confirmed from its console:No clients; rebooting, thenReset Reason: Reboot request from apion the next boot.test/example device setsapi_reboot_timeoutandwifi_reboot_timeoutto0sin itssubstitutions:.Accepted Trade-Off
With every example device overriding both timeouts, no CI compile exercises the templates'
15mindefaults (api.yaml,wifi.yaml, and the Konnected, CeilSense and Apollo templates). The maintainer accepted this: the defaults are plain duration literals, the deployed device configs compile them at every install, and a broken one fails a consumer's compile loudly.The CI-parity linters (editorconfig-checker, actionlint, markdownlint, cspell, shellcheck, shfmt) and the prose gate pass locally.
🤖 Generated with Claude Code
Summary by CodeRabbit