fan-control: estimate + expose fan power (fan_watts_est)
The iDRAC reports only total DCMI watts + RPM (no per-fan power), so add a cube-law fan-power estimate: fan_W ~= 0.0205*(RPM/1000)^3, calibrated to the 2026-06-05 sweep (fits within ~3W; ~2W floor -> ~99W full). The daemon reads live RPM each loop and pushes pve_fan_control_fan_rpm + _fan_watts_est. Surfaced in HA as sensor.r730_fan_power_est + a "Fan Power (est)" card on the dashboard-it Server view, next to total power. 46 bash tests green; verified live (9120rpm -> ~15W est). [ci skip] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
324f2dc3bf
commit
51456a96f6
4 changed files with 41 additions and 7 deletions
|
|
@ -103,10 +103,19 @@ Manual fan mode bypasses the iDRAC's own protection, so it is backstopped:
|
|||
|
||||
## Observability
|
||||
|
||||
Pushes to the existing Pushgateway (`http://10.0.20.100:30091`, job
|
||||
`fan_control`): `pve_fan_control_cpu_temp_celsius`, `_fan_percent`, `_mode`
|
||||
(1 quiet / 2 cool / 0 fallback), `_ha_reachable`, `_fallback`. The existing CPU-
|
||||
temp alert is unaffected.
|
||||
Pushes to the Pushgateway (`http://10.0.20.100:30091`, job `fan_control`):
|
||||
`pve_fan_control_cpu_temp_celsius`, `_fan_percent`, `_mode` (1 quiet / 2 cool /
|
||||
3 manual / 0 fallback), `_ha_reachable`, `_fallback`, `_fan_rpm`, and
|
||||
`_fan_watts_est`.
|
||||
|
||||
**Fan power is ESTIMATED** — the iDRAC exposes only total DCMI watts + RPM (no
|
||||
per-fan power), so `_fan_watts_est` models it from RPM via the fan affinity law
|
||||
(power ∝ RPM³), calibrated to the 2026-06-05 sweep: `fan_W ≈ 0.0205·(RPM/1000)³`
|
||||
(≈2 W at the floor → ~99 W at full; fits the sweep within ~3 W). Surfaced in HA
|
||||
as `sensor.r730_fan_power_est` + a "Fan Power (est)" card on the dashboard-it
|
||||
Server view, next to total power (`sensor.r730_power_consumption`, redfish) — so
|
||||
the fan tax of the control curve is visible. The existing CPU-temp alert is
|
||||
unaffected.
|
||||
|
||||
## Testing
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,10 @@ 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).
|
||||
|
||||
Monitoring sensors on the same view: `sensor.r730_fan_speed` (redfish exporter),
|
||||
`sensor.r730_fan_control_target` + `sensor.r730_fan_control_mode` (Pushgateway).
|
||||
`sensor.r730_fan_control_target` + `sensor.r730_fan_control_mode` +
|
||||
`sensor.r730_fan_power_est` (Pushgateway). `r730_fan_power_est` is an ESTIMATE of
|
||||
total fan power (the iDRAC reports no per-fan power) — modelled from RPM via the
|
||||
fan affinity law (∝ RPM³), calibrated to the power sweep (~2 W floor → ~99 W full).
|
||||
|
||||
The HA objects (helpers, the auto-revert automation, the REST sensors in
|
||||
`rest_resources/{idrac_redfish_exporter,fan_control}.yaml`, and the dashboard
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue