1.6.0
What's changed
- Set the fan control interval in seconds instead of whole minutes, from 5 seconds to 1 hour. Sub-minute intervals make it practical to drive a CPU cooler whose BIOS curve is too coarse.
- Read Mellanox NIC temperatures through
mget_temp(Mellanox Firmware Tools). Those chips publish no hwmon sensor, so this is the only way to steer a fan by them. Cards are found automatically; a card with SR-IOV enabled is listed once, not once per virtual function. - Add custom temperature sensors: any executable placed in
/boot/config/plugins/fanctrlplus2/sensors.d/becomes an auxiliary sensor named after the file, selectable per fan next to the built-in sources. The script prints the temperature in Celsius and nothing else, or prints nothing and exits non-zero. A script that fails, prints something else, or takes longer than 5 seconds sits out that round of checks only and is tried again on the next one. - Let the FCP History tile refresh every 5, 10, 15 or 30 seconds instead of only once a minute, chosen in the tile header next to the time frame and remembered per browser. One minute remains the default.
- Keep 3000 measurements per fan instead of 1500, so the tile's 4-hour window is still filled at the shortest interval.
- Clamp every temperature reading to 0–200 °C rather than discarding an out-of-range one, for all sources: disks, CPU, hwmon, storcli, NVIDIA, Mellanox and custom scripts.
- An auxiliary sensor that cannot be read is now skipped for that round instead of counting as 0 °C, the same way a spun-down disk already was.
Upgrade compatibility
Existing FanCtrl Plus 2 configurations continue to work and need no migration. An interval saved in minutes keeps exactly the cadence it had: a fan set to 5 minutes runs every 300 seconds, and the setting is rewritten in the new form the first time you save that fan. A rounded minutes value is still written alongside it, so downgrading to 1.5.x keeps working.
The FCP History tile stays disabled by default, and its refresh rate defaults to once a minute, so nothing changes until you ask for it.
Custom sensor scripts are opt-in: the sensors.d directory is created on install and is empty. See the README for the contract and an example.