2026-06-16 08:11:48 +00:00
|
|
|
# /etc/fan-control.env — config for the fan-control ACTUATOR (chmod 600).
|
2026-06-09 08:45:33 +00:00
|
|
|
# Deployed manually to the PVE host; the real file holds a secret token and is
|
|
|
|
|
# NOT committed. Copy this template, fill HA_TOKEN, scp to /etc/fan-control.env.
|
2026-06-16 08:11:48 +00:00
|
|
|
#
|
|
|
|
|
# The control logic lives in Home Assistant (curve + bias + hysteresis +
|
|
|
|
|
# setpoint). This daemon only reads the HA-computed % and applies it over IPMI.
|
2026-06-09 08:45:33 +00:00
|
|
|
|
|
|
|
|
# Long-lived ha-sofia access token (Home Assistant -> Profile -> Security ->
|
2026-06-16 08:11:48 +00:00
|
|
|
# Long-lived access tokens). Used to read COMMAND_ENTITY. Empty/unreachable =>
|
|
|
|
|
# the actuator hands the fans to Dell auto (it cannot compute a setpoint itself).
|
2026-06-09 08:45:33 +00:00
|
|
|
HA_TOKEN=
|
|
|
|
|
|
|
|
|
|
# --- optional overrides (defaults shown) ---
|
|
|
|
|
# HA_URL=http://192.168.1.8:8123
|
2026-06-16 08:11:48 +00:00
|
|
|
# COMMAND_ENTITY=sensor.r730_fan_command_pct # HA-computed fan %; we only apply it
|
|
|
|
|
# STALE_SECS=1800 # command older than this => stale. Loose on purpose:
|
|
|
|
|
# # staleness only happens when CPU temp is flat (so the
|
|
|
|
|
# # held value is still valid); a rising temp re-renders it.
|
|
|
|
|
# HA_GRACE_SECS=300 # on a transient HA miss, HOLD the last applied % this
|
|
|
|
|
# # long before handing the fans to Dell auto (anti-flap)
|
2026-06-09 08:45:33 +00:00
|
|
|
# LOOP_INTERVAL=15
|
2026-06-16 08:11:48 +00:00
|
|
|
# CEILING=83 # degC: hand back to Dell auto at/above this (hardware safety)
|
2026-06-09 08:45:33 +00:00
|
|
|
# RESUME_BELOW=75
|
|
|
|
|
# RESUME_STABLE=120
|
|
|
|
|
# MAX_IPMI_FAILS=3
|
2026-06-16 08:11:48 +00:00
|
|
|
# MIN_STEP=3 # smallest fan-% change worth an IPMI write (anti-jitter)
|
2026-06-09 08:45:33 +00:00
|
|
|
PUSHGATEWAY_URL=http://10.0.20.100:30091
|