Skip to content

Add fan speed override for Mover and Parity Check - #55

Open
Pross wants to merge 1 commit into
ck9393:mainfrom
Pross:feature/mover-parity-fan-override
Open

Add fan speed override for Mover and Parity Check#55
Pross wants to merge 1 commit into
ck9393:mainfrom
Pross:feature/mover-parity-fan-override

Conversation

@Pross

@Pross Pross commented Aug 31, 2026

Copy link
Copy Markdown

Adds an optional per-fan override so a fan can be forced to a fixed speed whenever the array is busy with Mover or a parity check/sync/rebuild, instead of following its normal disk/CPU curve. Handy for drive bays that need full airflow during those windows but can idle the rest of the time.

How it works

  • New "Override on Mover/Parity Check" toggle + speed field on each fan block.
  • The loop script checks for a running mover process (pgrep) and for an active parity check/sync/rebuild (mdcmd status, mdResync), and if either is true it overrides the disk/CPU result with the fixed speed.
  • Dashboard/log show (Mover) or (Parity) as the source so it's clear why the fan ramped up.
  • Off by default — no change in behavior for existing configs until a fan opts in.

Testing

  • Verified the detection + override logic against a mocked mdcmd/PWM setup locally.
  • Ran a test build on my own server through an actual parity check, confirmed the fan jumped to the configured override speed and the dashboard labeled it correctly.

Adds a per-fan "Override on Mover/Parity Check" option so a fan can be
forced to a fixed speed whenever the array is busy, instead of following
the normal disk/CPU curve. Useful for drive bays that need full airflow
during a parity check or mover run but can otherwise idle quietly.

The loop script detects mover via pgrep and parity/sync/rebuild via
mdcmd status (mdResync), takes priority over the disk/CPU calculation,
and reports back as "(Mover)" or "(Parity)" in the dashboard/log so it's
clear why the fan ramped up. Off by default, so existing configs are
unaffected until a fan opts in.

Tested locally against a mocked mdcmd/PWM setup and on a live server
during an active parity check.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant