fan-control: document the HA Fan Lock (opt out of 60-min auto-revert) [ci skip]

A manual/cool/quiet override in HA auto-reverts to `auto` after 60 min. Add a
Fan Lock (`input_boolean.r730_fan_lock`) that gates that automation so a
deliberate override persists, with a visible "🔒 FAN CONTROL LOCKED" banner on
the dashboard-it Server view so it isn't forgotten. The automation re-checks the
lock after the hour (locking mid-countdown cancels the revert) and the 83 °C
ceiling still wins. HA-side only (helper + automation + dashboard live on
ha-sofia, auto-git-tracked there); these docs are the infra-repo record.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Viktor Barzin 2026-06-05 12:22:00 +00:00
parent 51456a96f6
commit d17b25cdcc
2 changed files with 15 additions and 3 deletions

View file

@ -133,7 +133,11 @@ Delivered ahead of the cron migration (which is Vault-gated) by teaching the
`input_number.r730_fan_manual_pct`. `auto` = the garage-presence curve above;
cool/quiet force that curve; manual holds a fixed %; `CEILING` still overrides.
HA owns the setpoint + a 60-min auto-revert-to-auto automation
(`automation.r730_fan_mode_auto_revert`) — the daemon just polls and actuates.
(`automation.r730_fan_mode_auto_revert`), which an `input_boolean.r730_fan_lock`
toggle can disable so a deliberate override persists (a "🔒 LOCKED" banner shows
on the view while engaged; the ceiling still wins, and the automation re-checks
the lock after the delay so locking mid-countdown cancels the revert) — the
daemon just polls and actuates.
Monitoring + control live on the dashboard-it "Server" view (REST sensors: fan
RPM from the redfish exporter; mode/target-% from the Pushgateway). The same
logic already exists in the Python controller (`r730-fan-control/`) for the

View file

@ -17,11 +17,19 @@ HA — **dashboard-it → "Server" view → Fans**:
- `input_select.r730_fan_mode`**auto** (garage-presence curve, default),
**cool** / **quiet** (force that curve), **manual** (hold a fixed %).
- `input_number.r730_fan_manual_pct` — the % used in `manual` mode (slider).
- `input_boolean.r730_fan_lock`**lock** the current override so the 60-min
auto-revert leaves it alone (a 🔒 banner shows on the view while engaged).
Any non-`auto` override **auto-reverts to `auto` after 60 min**
(`automation.r730_fan_mode_auto_revert` on ha-sofia), so a forgotten override
can't run the fans wrong indefinitely. `CEILING` (83 °C) still overrides
everything → Dell auto. An HA change is applied within one daemon loop (~15 s).
can't run the fans wrong indefinitely — **unless you engage the Fan Lock**
(`input_boolean.r730_fan_lock`, toggle on the same view). While locked the
override persists indefinitely and a "🔒 FAN CONTROL LOCKED" banner appears on
the view so you remember to unlock; unlocking restarts the 60-min timer. The
automation re-checks the lock *after* the hour, so locking mid-countdown also
cancels the pending revert. `CEILING` (83 °C) still overrides everything → Dell
auto — **the lock does not defeat the ceiling**. An HA change is applied within
one daemon loop (~15 s).
Monitoring sensors on the same view: `sensor.r730_fan_speed` (redfish exporter),
`sensor.r730_fan_control_target` + `sensor.r730_fan_control_mode` +