{"repo":"iceteaSA/unifi-fan-control","free":true,"listed":false,"github":"https://github.com/iceteaSA/unifi-fan-control","clone":"git clone https://github.com/iceteaSA/unifi-fan-control.git","description":"Intelligent adaptive fan controller for UniFi OS devices. Multi-fan auto-detection, quadratic response curve, learning PWM optimization. Works on UDM-SE, UDM-Pro-Max, UCG-Max, UCG-Fibre, UXG-Fibre, UDR7, UNVR.","language":"Shell","stars":237,"topics":["ubiquiti","unifi","bash","fan-control","pwm","systemd","temperature-monitoring","thermal-management","udm","udm-se"],"license":"MIT","category":"cli-tools","readme_excerpt":"UniFi Intelligent Fan Control Advanced temperature management for Ubiquiti UniFi OS devices with fan control. Confirmed working on: UCG-Max, UCG-Fibre, UXG-Fibre, UDM-SE, UDM-Pro-Max, UDR7, UNVR Not supported: UniFi switches (USW line). They run BusyBox sh with no bash, no ubnt-systool for temperature, and no systemd — and their fans are firmware controlled rather than exposed as writable /sys/class/hwmon/ /pwm . Confirmed on a USW Enterprise 48 PoE running 7.5.9: no /sys/class/hwmon/ /pwm entries exist at all. This needs consoles and gateways running full UniFi OS. This project is built and maintained independently. If it keeps your UniFi gear cool and quiet, consider supporting it. Features - 🎛️ Four Operational States : - OFF : Fan disabled (temp Note : The script automatically checks for missing configuration parameters and adds them with default values if they're not present in the config file. This ensures that all required parameters are always available, even if you've edited the config file manually. Apply changes: Operational Overview State Trigger Condition Exit Condition Behavior ------------- ---------------------------- ---------------------------------- ----------------------------------- OFF $$ PWM = MIN {PWM} + \\frac{(temp {diff}^2 \\times (MAX {PWM} - MIN {PWM}))}{temp {range}^2} $$ Where: temp diff = current temp - activation temp temp range = MAX TEMP - activation temp - Exponential Smoothing : $$ smoothed {temp} = \\frac{\\alpha \\times previous {smooth} + (","default_branch":null,"files":null,"tree":[],"storefront":"/r/iceteaSA","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/iceteaSA/unifi-fan-control/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}