Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Plugin] FanCrtl Plus

Featured Replies

I found this when doing some research into the ITE IT87 Driver from CA

https://github.com/frankcrawford/it87
"Fix it8689 control issues. Some Gigabyte motherboards with it8689 don't allow for manual control. This is a known issue and the fix is known but complex. For now, a BIOS curve workaround is required for manual control. If you truly want/need fan control for these boards set this curve in the BIOS for each fan channel: (Note that some boards don't allow for 90C so manual control may stop above that threshold temp)."

My system temps and fans are detected Dynimax AutoFan Plugin, but they won't identify with the FanCTRL plugin.
Based in the info above, I'm guessing this is why I'm not able to identify with the FanCTRL plugin.

I'll toss my info here for @CkChong incase they return to active development.

ALTERNATE SOLUTION - EXTERNAL HARDWARE FIX
I've pretty much given up on getting this to work and have went with a different cooling method via hardware:
https://www.amazon.com/dp/B0DHZQ8VZY
https://www.amazon.com/dp/B0FK5666QQ

I pretty much have this stack of 5 fans setup in front of my case and it passes additional cooling through the entire case - a significant temperature drop that keeps my drives around 30 degrees when idle and allows me to complete a full parity check without stopping during the hotter summer months.

Yes, the fans are controllable via the included dial box - seriously the best money I've spent on my unRAID box (besides more drives)


My board: Gigabyte Z690 GAMING X DDR4

CODE INPUT TO GRAB DEVICE INFO

echo "=== hwmon devices ==="
grep -H . /sys/class/hwmon/hwmon*/name
echo ""echo "=== Available PWM controllers (safe check) ==="for d in /sys/class/hwmon/hwmon*; do
name=$(cat "$d/name" 2>/dev/null)
echo "-- $d ($name) --"ls "$d"/pwm* 2>/dev/null
done

OUTPUT

=== hwmon devices ===
/sys/class/hwmon/hwmon0/name:nvme
/sys/class/hwmon/hwmon1/name:gigabyte_wmi
/sys/class/hwmon/hwmon2/name:coretemp
/sys/class/hwmon/hwmon3/name:acpitz
/sys/class/hwmon/hwmon4/name:it8689

=== Available PWM controllers (safe check) ===
-- /sys/class/hwmon/hwmon0 (nvme) --
-- /sys/class/hwmon/hwmon1 (gigabyte_wmi) --
-- /sys/class/hwmon/hwmon2 (coretemp) --
-- /sys/class/hwmon/hwmon3 (acpitz) --
-- /sys/class/hwmon/hwmon4 (it8689) --
/sys/class/hwmon/hwmon4/pwm1                        /sys/class/hwmon/hwmon4/pwm3_freq
/sys/class/hwmon/hwmon4/pwm1_auto_channels_temp     /sys/class/hwmon/hwmon4/pwm4
/sys/class/hwmon/hwmon4/pwm1_auto_point1_temp       /sys/class/hwmon/hwmon4/pwm4_auto_channels_temp
/sys/class/hwmon/hwmon4/pwm1_auto_point1_temp_hyst  /sys/class/hwmon/hwmon4/pwm4_auto_point1_temp
/sys/class/hwmon/hwmon4/pwm1_auto_point2_temp       /sys/class/hwmon/hwmon4/pwm4_auto_point1_temp_hyst
/sys/class/hwmon/hwmon4/pwm1_auto_point3_temp       /sys/class/hwmon/hwmon4/pwm4_auto_point2_temp
/sys/class/hwmon/hwmon4/pwm1_auto_slope             /sys/class/hwmon/hwmon4/pwm4_auto_point3_temp
/sys/class/hwmon/hwmon4/pwm1_auto_start             /sys/class/hwmon/hwmon4/pwm4_auto_slope
/sys/class/hwmon/hwmon4/pwm1_enable                 /sys/class/hwmon/hwmon4/pwm4_enable
/sys/class/hwmon/hwmon4/pwm1_freq                   /sys/class/hwmon/hwmon4/pwm4_freq
/sys/class/hwmon/hwmon4/pwm2                        /sys/class/hwmon/hwmon4/pwm5
/sys/class/hwmon/hwmon4/pwm2_auto_channels_temp     /sys/class/hwmon/hwmon4/pwm5_auto_channels_temp
/sys/class/hwmon/hwmon4/pwm2_auto_point1_temp       /sys/class/hwmon/hwmon4/pwm5_auto_point1_temp
/sys/class/hwmon/hwmon4/pwm2_auto_point1_temp_hyst  /sys/class/hwmon/hwmon4/pwm5_auto_point1_temp_hyst
/sys/class/hwmon/hwmon4/pwm2_auto_point2_temp       /sys/class/hwmon/hwmon4/pwm5_auto_point2_temp
/sys/class/hwmon/hwmon4/pwm2_auto_point3_temp       /sys/class/hwmon/hwmon4/pwm5_auto_point3_temp
/sys/class/hwmon/hwmon4/pwm2_auto_slope             /sys/class/hwmon/hwmon4/pwm5_auto_slope
/sys/class/hwmon/hwmon4/pwm2_auto_start             /sys/class/hwmon/hwmon4/pwm5_enable
/sys/class/hwmon/hwmon4/pwm2_enable                 /sys/class/hwmon/hwmon4/pwm5_freq
/sys/class/hwmon/hwmon4/pwm2_freq                   /sys/class/hwmon/hwmon4/pwm6
/sys/class/hwmon/hwmon4/pwm3                        /sys/class/hwmon/hwmon4/pwm6_auto_channels_temp
/sys/class/hwmon/hwmon4/pwm3_auto_channels_temp     /sys/class/hwmon/hwmon4/pwm6_auto_point1_temp
/sys/class/hwmon/hwmon4/pwm3_auto_point1_temp       /sys/class/hwmon/hwmon4/pwm6_auto_point1_temp_hyst
/sys/class/hwmon/hwmon4/pwm3_auto_point1_temp_hyst  /sys/class/hwmon/hwmon4/pwm6_auto_point2_temp
/sys/class/hwmon/hwmon4/pwm3_auto_point2_temp       /sys/class/hwmon/hwmon4/pwm6_auto_point3_temp
/sys/class/hwmon/hwmon4/pwm3_auto_point3_temp       /sys/class/hwmon/hwmon4/pwm6_auto_slope
/sys/class/hwmon/hwmon4/pwm3_auto_slope             /sys/class/hwmon/hwmon4/pwm6_enable
/sys/class/hwmon/hwmon4/pwm3_auto_start             /sys/class/hwmon/hwmon4/pwm6_freq
/sys/class/hwmon/hwmon4/pwm3_enable
  • 2 weeks later...
  • Replies 221
  • Views 35.8k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Thanks for the feedback. CPU temperature monitoring is planned for a future version, but not the upcoming release. Just need a bit of time to figure out the logic and test things properly — stay tune

  • Thanks! CPU support is already in the works — just need a bit more time 🙂

  • I’m aware that Unraid 7.2.0 will bring a major UI overhaul. Because of that, I’ve decided to hold off on any new UI features until after the new design is finalized — otherwise it’s very likely things

Posted Images

Would it be possible to support different temperature ranges for different sets of drives?

EDIT: for the same fan

e.g. I have HDDs and SSDs being cooled by the same fan and I'd like the fan to react to temperature changes in both, but the range of temperature for my HDDs is 30~45ºC (25% fan speed to 100% fan speed) and for the SSDs that range would be from 40~65ºC.

I assume, other than adding the ability to add an arbitrary set of Drive Selector + Temperature Range elements on the GUI, this would require the percentage formular to change to something along the lines of (pseudo-algorithm):

let x = select_speed(hdd_temp, 30, 45, idle_hdd_speed)
let y = select_speed(ssd_temp, 40, 65, idle_ssd_speed)
let final_speed = max(x, y)

Edited by andrebrait

Plugin appears to be unstable with 7.3.0. Happy to provide whatever logs would assist in debugging issues. Fan speed is no longer displayed across the bottom of the UI and the RPM/PWM data goes missing on the dashboard. It returns post reboot.

Edit: Downgraded to 7.2.5, where it was previously working, and that has since stopped working as well.

Edited by thisguyneedsabeer

Yup, not working anymore. Guess it was update to 7.2.6. I updated now to 7.3.1 and it's not working too. Sad, this was the only fan control plugin that worked on my system. I hope for an update sooner or later

I'm on 7.3.0 and mine is still working, just as a data point. Is it not displaying, or not spinning the fan correctly, or what?

Hey all,

ive seen a fork of this awesome plugin to add extra support for HBA's and GPUs etc. any thoughts on how to get it installed or if these features will come to the original release? many thanks

https://github.com/protheus313/fanctrlplus

1 hour ago, Zass said:

Hey all,

ive seen a fork of this awesome plugin to add extra support for HBA's and GPUs etc. any thoughts on how to get it installed or if these features will come to the original release? many thanks

https://github.com/protheus313/fanctrlplus

I think this project has been abandoned but however you installed this one, just substitute protheus313/fanctrlplus for ck9393/fanctrlplus, e.g. in Docker Compose

On 5/30/2026 at 12:12 PM, ElNosoLoco said:

I'm on 7.3.0 and mine is still working, just as a data point. Is it not displaying, or not spinning the fan correctly, or what?

Not spinning the fans down anymore, stuck at 1500rpm, identify (pause fan) doesn't work either for me. Maybe problems with the IT87 driver?

Now I just tried the Dynamix Auto Fan Plugin, but stuck at 1500rpm too.

6 minutes ago, fnrod said:

Not spinning the fans down anymore, stuck at 1500rpm, identify (pause fan) doesn't work either for me. Maybe problems with the IT87 driver?

Now I just tried the Dynamix Auto Fan Plugin, but stuck at 1500rpm too.

Sounds likely, if two different plugins are failing. Did you see xDmOx's post above about the IT87 driver and their external solution?

34 minutes ago, ElNosoLoco said:

Sounds likely, if two different plugins are failing. Did you see xDmOx's post above about the IT87 driver and their external solution?

Yeah, will try the BIOS Curve later, or tomorrow.

Edit: tried the BIOS Curve, not working either. I will now just wait and hope that someday it is working again 😅

Edited by fnrod

Yep, it seems that this Plugin is not working as expected anymore with the newes Unraid release... I have rolled back to @alturismo 's PWM Fan plugin even if it is not as customizable as this one. Instead of the CPU Fan I am now controlling another case fan that helps cooling the upper compartment of the NAS with CPU temp and the lower one based on HDD temps... CPU itself is handled via BIOS directly...

A pity that this one seems to have been abandoned now...

Why do I loose my labels (names) and settings every time I need to reboot my server? To be more precise, I do not fully loose my settings but it's applying an outdated version of my settings.

Am I doing something wrong? Where does FanCtrl Plus save its config?

27 minutes ago, fae_76 said:

Why do I loose my labels (names) and settings every time I need to reboot my server? To be more precise, I do not fully loose my settings but it's applying an outdated version of my settings.

Am I doing something wrong? Where does FanCtrl Plus save its config?

Looks like /boot/config/plugins/fanctrlplus/*.cfg

Soo, I just went to my unraid webui and noticed that my fans are controlled again. I restarted the server and I can still control the fans.

Power Consumption went down 1W after Appdata Backup updated my apps on Monday morning. Maybe it was an app or plugin related issue for me.

On 6/12/2026 at 11:11 AM, fnrod said:

Soo, I just went to my unraid webui and noticed that my fans are controlled again. I restarted the server and I can still control the fans.

Power Consumption went down 1W after Appdata Backup updated my apps on Monday morning. Maybe it was an app or plugin related issue for me.

Did you adjust anything in the meantime? Upgrade, downgrade, modifications?! If so, maybe you should tell us what did the trick so others can follow accordingly 😉

  • 2 weeks later...

I'm new to this plugin, but I've got a MSI PRO Z690-A DDR4 motherboard on Unraid 7.3.1, with the Nuvoton NCT6687 Driver.

The plugin keeps "forgetting" my PWM assignments. I was manually correcting that but then I noticed it was just creating duplicate profiles in the config file, so I had to clean those up by hand.


Even though the plugin is set to sync every 2 minutes, there are no sync updates going to the log file, and the fans just stick at whatever % speed they were at the last time I ran a manual sync. I guess for now this is tolerable, as they are stuck at 100%.

Sounds like the plugin is not actively maintained at the moment. Bummer. /

Anyone else having issues where when the plugin looks at drive or CPU temps it drops everything to 0 and stops working?

On 6/18/2026 at 9:20 AM, buscopina said:

Did you adjust anything in the meantime? Upgrade, downgrade, modifications?! If so, maybe you should tell us what did the trick so others can follow accordingly 😉

The only thing i changed was the BIOS curve, but it didn't fix it instantly, It randomly started working again. But after a few days it stopped working.

I upgraded to 7.3.2 this night, IT87 drivers were updated, but no luck. So we are in the same boat again

image.png

FanCtrlPlus widget showing wrong/blank fan sensor instead of configured it8696 fan sensor

Hi, I’m having an issue with the FanCtrlPlus dashboard/widget showing an incorrect fan reading.

I’m using Unraid on a GIGABYTE B860I AORUS PRO ICE motherboard. The board’s real fan readings are coming from the it8696 sensor chip, but the FanCtrlPlus widget appears to be picking up a blank/bogus acpi_fan entry instead.

The actual fans are working and reporting correctly from terminal:

root@UnraidNas:~# for h in /sys/class/hwmon/hwmon*; do
  echo "===== $(cat "$h/name" 2>/dev/null) : $h ====="
  for f in "$h"/fan*_input; do
    [ -e "$f" ] && echo "$(basename "$f"): $(cat "$f" 2>/dev/null) RPM"
  done
done

===== nvme : /sys/class/hwmon/hwmon0 =====
===== acpi_fan : /sys/class/hwmon/hwmon1 =====
fan1_input:  RPM
===== gigabyte_wmi : /sys/class/hwmon/hwmon2 =====
===== coretemp : /sys/class/hwmon/hwmon3 =====
===== acpitz : /sys/class/hwmon/hwmon4 =====
===== it8696 : /sys/class/hwmon/hwmon5 =====
fan1_input: 1121 RPM
fan2_input: 1229 RPM
fan5_input: 1403 RPM

The problem is that the widget shows FAN 1 = 0 RPM, even though the actual CPU fan is clearly reporting correctly under:

/sys/class/hwmon/hwmon5/fan1_input

Confirmed directly:

root@UnraidNas:~# cat /sys/class/hwmon/hwmon5/fan1_input
1126

The bogus/blank sensor appears to be this ACPI fan device:

root@UnraidNas:~# readlink -f /sys/class/hwmon/hwmon1
/sys/devices/platform/INTC1042:00/INTC1063:00/hwmon/hwmon1

root@UnraidNas:~# udevadm info -a -p $(readlink -f /sys/class/hwmon/hwmon1) | head -80

looking at device '/devices/platform/INTC1042:00/INTC1063:00/hwmon/hwmon1':
  KERNEL=="hwmon1"
  SUBSYSTEM=="hwmon"
  DRIVER==""
  ATTR{name}=="acpi_fan"

looking at parent device '/devices/platform/INTC1042:00/INTC1063:00':
  KERNELS=="INTC1063:00"
  SUBSYSTEMS=="platform"
  DRIVERS=="acpi-fan"

The actual usable motherboard fan sensor is:

root@UnraidNas:~# readlink -f /sys/class/hwmon/hwmon5
/sys/devices/platform/it87.2624/hwmon/hwmon5

So it looks like the widget is either:

  1. Grabbing the first fan1_input it finds, even if it is blank/unreadable.

  2. Not honoring the configured/identified FanCtrlPlus sensor labels.

  3. Not allowing the user to exclude bad hwmon devices like acpi_fan.

  4. Showing stale/wrong sensor mapping in the dashboard widget.

Feature/fix request:

Could the widget ignore fan inputs that return blank/unreadable values, or allow users to explicitly select/exclude hwmon sources for the widget? In my case, the plugin should use:

it8696 / hwmon5 / fan1_input = CPU fan
it8696 / hwmon5 / fan2_input = Top exhaust
it8696 / hwmon5 / fan5_input = Array fans

and ignore:

acpi_fan / hwmon1 / fan1_input = blank

This seems like either a widget bug or a sensor-selection issue. The real fan readings are correct from /sys/class/hwmon, but the widget is displaying the wrong source.

Thanks.

Hey

I'm having trouble getting this plugin to work properly and am hoping someone is able to help me.

  • I have installed the plug in along with the ITE driver

  • I have set all fans to PWM mode in bios and to run at 100%

  • Smartfan finds the pwm controller and I can identify the fans

  • After a couple of minutes (or 1 or 2 fan speed manipulations) the plugin loses the ability to control the fans anymore /

I had the same problem with dynamix fan control, which I have now uninstalled as this plugin is much cleaner and more developed.

My motherboard is a Gigabyte b650 gaming x ax on the AM5 platform.

Grateful for any help!

On 1/23/2026 at 4:17 AM, OrdinaryButt said:

Somehow FanCtrlPlus reads (or calculate wrong) disk temperature. I have a fan job monitoring 4 disks, only one active at the moment and reporting 33°C but FC+ shows 33°C and PWM values are high. No change after clicking the run/refresh button on the Dashboard page.image.pngimage.png

Did you ever identify the problem here? I just recently started having the same issue with incorrect HHD temps being displayed.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.