feat: add Auto/Manual operating modes - #15
Merged
Merged
Conversation
Adds an Operating Mode select (Auto / Manual) alongside the existing temperature-driven curve: - Auto (default): unchanged 5-point fan curve, clamped to Fan Min %. - Manual: Manual Fan switch (on/off) + Manual Fan Speed number (0-100 %); off forces 0 %. The resolved-speed template sensor (fan_speed_pct) now branches by mode and remains the single driver of the LEDC output, so "Fan Speed" always reflects the actual duty applied. Safety failsafes are preserved and apply in ALL modes: NaN read and >60 s sensor stall still force 100 %, including in Manual. Temperature alarm stays indicator-only. Mode + manual entities are grouped on the web UI via web_server sorting groups. The stock web page can't hide entities by state, so the manual controls are always shown but inert in Auto; per-mode UI belongs in a Home Assistant dashboard. Docs updated: PROJECT_PLAN F7, CHANGELOG, README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a second operating mode so the fan can be driven manually as well as by the temperature curve.
select—Auto/Manual(persisted, defaultAuto).Fan Min %.switch(on/off) + Manual Fan Speednumber(0–100 %, slider). Off forces 0 %.Design
fan_speed_pct) now branches by mode and stays the single driver of the LEDC output, soFan Speedalways reflects the actual duty in both modes.component.updateso manual edits apply without the 1 s tick delay.Safety (preserved in all modes)
NaN reading and the >60 s sensor-stall failsafe still force the fan to 100 % even in Manual. The temperature alarm stays indicator-only (unchanged).
Web UI note
The stock ESPHome web page can't hide entities by state, so the manual controls are always visible (inert in Auto). They're organised via
web_serversorting groups. Per-mode conditional UI belongs in a Home Assistant dashboard keyed onOperating Mode.Validation
esphome config✅esphome compile✅F7, CHANGELOG[Unreleased]/Added, README entity table + "Operating modes" section.Post-merge: OTA to the device and verify Auto unchanged → Manual on/off + speed → confirm sensor-stall still forces 100 % in Manual.
🤖 Generated with Claude Code