Skip to content

Releases: andrebrait/fanctrlplus

1.8.3

Choose a tag to compare

@andrebrait andrebrait released this 22 Aug 04:08

What's changed

  • Fix the plugin's description on the Plugins page. Unraid builds that column from the README packaged inside the plugin, and the release was packaging the project's README, so the description was the whole thing — badges, install instructions and licence notes in a table cell. It is now a description written for that column.

Upgrade compatibility

Existing configurations continue to work and need no migration. Nothing about fan control changes; this affects only the text Unraid shows for the plugin itself.

1.8.2

Choose a tag to compare

@andrebrait andrebrait released this 21 Aug 18:30

What's changed

  • Fix the reorder arrows on the first and last fan configuration. The disabled one could point a different way from the working one beside it — a left arrow next to a down arrow — and a page showing a single configuration used left and right on a phone.

Which arrow a button shows is now a question about the layout alone, answered once for the whole page: along the row where configurations sit side by side, down the column where they do not. Whether the button works stays a question about where its configuration sits in the list. The two no longer influence each other.

Upgrade compatibility

Existing configurations continue to work and need no migration. This changes only which arrow is drawn on the reorder buttons; reordering itself, and everything else, behaves as it did in 1.8.1.

1.8.1

Choose a tag to compare

@andrebrait andrebrait released this 21 Aug 17:33

What's changed

  • A failed sensor read no longer drives the fan to maximum. mget_temp sometimes returns 10000 or -10000 when it cannot read a Mellanox card, exiting successfully as it does so; that was being pulled into range as 200 °C, hotter than any real sensor. A value outside −100…300 °C is now treated as no measurement at all, so the sensor sits that round out and is tried again on the next one. Reported by @7leman7 on #1.
  • The same flaw applied to a custom sensors.d script printing a sentinel, and to a disk reporting a nonsense SMART value such as 65535. Both now sit the round out instead.
  • A reading inside the plausible range is reported as measured rather than trimmed to 200 °C, so a genuinely hot sensor shows its real temperature. A sub-zero reading is still floored to 0, because a fan curve has nothing below it.

Upgrade compatibility

Existing configurations continue to work and need no migration. Nothing about how a fan is configured or how its speed is calculated changes; only which readings count as readings.

A sensor that errors does not repeat its last value: telling "errored" apart from "has nothing to report" matters, because a spun-down disk reports nothing and should let the fan drop to its Idle Speed. A sensors.d script that wants to hold its last good reading can cache it itself.

1.8.0

Choose a tag to compare

@andrebrait andrebrait released this 21 Aug 16:30

What's changed

  • Reorder fan configurations with a button per direction instead of dragging. Dragging was unusable on a phone: it fought the page scroll, gave no reliable idea of where a block would land, and flickered while a finger was down. Each configuration now carries two arrows where the drag handle used to be, shown while sorting is unlocked. The one at each end of the list is disabled, and the arrows point along the row or across it depending on where the block would actually land.
  • Fix a fan configuration being wider than a phone screen, introduced in 1.7.0 by the wrapping layout.
  • Save the order one request at a time. Two quick moves could previously race, and the slower one could be what ended up saved.
  • Run the test suite on every pull request and on main, and show the icon and badges in the README.

Upgrade compatibility

Existing configurations continue to work and need no migration, and the saved arrangement of fan configurations is unchanged.

Dragging is removed rather than hidden: reordering is done with the arrows, on a desktop as well as a phone. The lock in the header still controls whether the order can be changed at all.

1.7.0

Choose a tag to compare

@andrebrait andrebrait released this 21 Aug 10:29

What's changed

  • Lay the fan configuration blocks out as one list that wraps: they sit side by side and continue on the next row when the window runs out of width, so a wide screen shows three or more across and a phone shows one. Dragging reorders that single list.
  • Fix the disk and auxiliary sensor menus opening away from their field, near the top left of the page. On a phone that also scrolled the view away from what you were editing.
  • Stop the open sensor menu pushing the page sideways on a phone: it is now no wider than its field, and scrolls within itself instead. Its options keep their single-line layout.
  • Shorten the row labels so a configuration block fits a phone screen: Include Disk(s): becomes Disk(s):, Fan Speed on Idle: becomes Speed on Idle:, Fan Speed Range: becomes Speed Range:, the three temperature ranges become Range:, the two monitor toggles become Monitor:, and Include Sensor(s): becomes Sensor(s):. The full wording stays in each label's tooltip.
  • Line the disk group rows up with the rows above them, at every window width.
  • Offer 5, 10 and 15 minute time frames on the FCP History tile, alongside the existing 30 minutes to 4 hours. At a short interval the 30 minute window is already too dense to show the detail those intervals exist for.
  • Draw the history trace up to the current time instead of stopping at the last measurement, so the graph keeps moving between readings rather than appearing to stall. The tip carries no marker, and says what speed is being held and when it was last measured.
  • Keep a dragged block's borders: it was drawn faded, which faded the borders with it, and it is lifted with a shadow instead.

Upgrade compatibility

Existing configurations continue to work and need no migration.

The block arrangement in order.cfg is now a single list. Files written by earlier versions are read and converted automatically, keeping the order the blocks appeared in, and are rewritten in the new form the next time an arrangement is saved. Downgrading after that point leaves the older version unable to read the file, in which case every block appears unordered; rearranging them once fixes it.

The FCP History tile keeps its settings: still disabled by default, still one minute between refreshes, still a one hour window unless you chose otherwise.

1.6.0

Choose a tag to compare

@andrebrait andrebrait released this 21 Aug 06:48

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.

1.5.2

Choose a tag to compare

@andrebrait andrebrait released this 17 Jul 06:20
1791763

What's changed

  • Shorten the history tile title to FCP History in the Dashboard tile and the General Settings switch.

Upgrade compatibility

The configuration format is unchanged. Existing FanCtrl Plus 2 configurations continue to work without a migration.

1.5.1

Choose a tag to compare

@andrebrait andrebrait released this 17 Jul 03:15
1d55557

What's changed

  • Draw history-graph markers exactly as thick as the line (2 px, borderless): they blend into a populated trace but keep isolated points visible while the history is still sparse, such as right after enabling the tile or upgrading the plugin.

Upgrade compatibility

The configuration format is unchanged. Existing FanCtrl Plus 2 configurations continue to work without a migration.

1.5.0

Choose a tag to compare

@andrebrait andrebrait released this 17 Jul 01:09
2d84ee9

What's changed

  • Add an FCP Fan Speed History Dashboard tile: one graph per fan configuration, showing the fan speed over time as a single line color-coded by the temperature source driving the PWM (same colors as the fan-curve chart).
  • Show the driving source, its temperature, and the resulting fan speed and PWM in a tooltip when hovering over the graph.
  • Keep the previous driving source's attribution when two sources tie at the same PWM, so a source cooling into a tie does not flip the graph color or the reported source.
  • Record fan-speed history once per control-loop measurement to RAM, capped per fan; collection stops entirely while the tile is disabled.
  • Add a General Settings switch to enable or disable the tile (disabled by default).
  • Offer 30-minute to 4-hour time windows via a header selector styled like the built-in Network tile; the graph refreshes and scrolls once per minute.

Upgrade compatibility

The configuration format is unchanged. Existing FanCtrl Plus 2 configurations continue to work without a migration. The new tile is disabled by default; enable it in Settings → FanCtrl Plus 2 → General Settings.

1.4.5

Choose a tag to compare

@andrebrait andrebrait released this 15 Jul 07:43
0699df4

What's changed

  • Plot a live current-temperature marker on every configured disk, CPU, and auxiliary-sensor curve.
  • Clamp live markers to each curve's configured minimum and maximum while preserving the measured temperature in tooltips.
  • Keep markers for spun-down disk groups, with unavailable temperatures shown as -.
  • Remove decorative curve points, marker borders, and the redundant chart footer; keep chart reference lines and tooltips legible.
  • Detect stale first-party UI assets and prompt for a cache-busting reload when CSS or JavaScript changes.
  • Separate disk groups visually, align their compact remove buttons on desktop and mobile, and confirm group removal.
  • Keep the mobile reload button contained within its notice.
  • Load saved PWM labels into the Identify controls so saving without edits cannot clear them accidentally.
  • Move the FCP Airflow Dashboard tile and its help into a dedicated General Settings section.
  • Use selected CPU and auxiliary-sensor temperatures for preview markers before settings are applied; auxiliary previews use the hottest selected sensor.

Upgrade compatibility

The configuration format is unchanged. Existing FanCtrl Plus 2 configurations continue to work without a migration.