feat(idle): add opt-in idle_action "engaged" (never-off float on setpoint) - #405
Open
andgian wants to merge 1 commit into
Open
feat(idle): add opt-in idle_action "engaged" (never-off float on setpoint)#405andgian wants to merge 1 commit into
andgian wants to merge 1 commit into
Conversation
…oint) Adds a fourth idle_action, "engaged", for climate devices that should never fully switch off at idle — an inverter AC that stays on its setpoint and lets the compressor modulate rather than cycling off. It is a never-off variant of "setback": - floats exactly on the setpoint (offset 0, vs setback's DEFAULT_IDLE_SETBACK_OFFSET); - when the unit is found idle in a non-cooling mode (auto/off/dry/fan_only), re-engages a cooling mode (set_hvac_mode before set_temperature) instead of falling back to off — so a device left in "auto" (common on Airstage) keeps holding the setpoint; - is exempt from force_off (snazzybean#368), like idle_action=low: when the room is shut down explicitly it still stays engaged. Users who want the room to turn off on schedule-off/away keep the default idle_action. Opt-in only: existing idle_action values (off/fan_only/setback/low) are unchanged. Added to the websocket rooms/save schema enum. Rationale: for a floor-mounted inverter AC whose onboard sensor reads the cold air pooling at the floor, turning off at idle lets the occupied zone drift warm; keeping the unit engaged on an external room sensor holds true comfort.
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 fourth
idle_action,engaged, for climate devices that should never fully switch off at idle — an inverter AC that stays on its setpoint and lets the compressor modulate rather than cycling off.It is a never-off variant of
setbackand is fully opt-in: the existing idle actions (off/fan_only/setback/low) are unchanged.Motivation
For a floor-mounted inverter AC, the unit's onboard return sensor reads the cold air pooling at the floor and reports "at setpoint" while the occupied zone (desk height) is still warm. With
setback/off, the unit stops at idle and the room drifts warm. Driving the room off an external sensor and keeping the unit engaged on the setpoint holds true comfort — the inverter simply modulates.Behaviour of
engaged0, vssetback'sDEFAULT_IDLE_SETBACK_OFFSET).auto/off/dry/fan_only) it re-engages a cooling mode (set_hvac_modebeforeset_temperature, honoring the Airstage ordering gotcha) instead of falling back to off — so a device left inauto(common on Airstage) keeps holding the setpoint.force_off(Action when schedule is off gets overridden by device "When Idle" setting #368), likeidle_action=low: when the room is shut down explicitly (schedule-off / presence-away) anengageddevice still stays engaged. Users who want the room to turn off on shutdown keep the default idle action.Scope / notes
engagedre-engages cooling for a cool-capable unit; a device already inheatfloats on the heat target, butengageddoes not re-engage heating fromoff(out of scope; the motivating case is an inverter AC).engagedis added to therooms/savewebsocket schemaidle_actionenum. (The frontend dropdown is not touched in this PR — the WS API and headless config accept it; happy to add the UI option in a follow-up if desired.)setback) on an Airstage AC + underfloor hybrid setup; this PR re-expresses it as a clean opt-in action. A maintainer review/test of the exactengagedcode path before merge is welcome.