dots-of-war/eggs/scripts/casefandeamon.py
2024-12-16 18:19:49 +01:00

55 lines
1.3 KiB
Python
Executable file

#!/usr/bin/env python3
import re
import time
import subprocess
fans=["fan2", "fan3"]
default_fan_speed = 30
def run_fan_check():
fan_speed = default_fan_speed
sensors_out = subprocess.check_output(['sensors'])
sensors_out = sensors_out.decode('UTF-8').splitlines()
tdie_temp = [x for x in sensors_out if x.startswith("Tdie")]
if len(tdie_temp) > 0:
temp = tdie_temp[0]
temp = float(re.findall(r"^Tdie:\s*\+(.*?)°C.+", temp)[0])
# if temp < 50:
# fan_speed = 20
# if temp < 60:
# fan_speed = 30
# elif temp < 70:
# fan_speed = 40
# elif temp < 80:
# fan_speed = 60
# else:
# fan_speed = 100
if temp < 60:
fan_speed = 60
if temp < 60:
fan_speed = 60
elif temp < 70:
fan_speed = 60
elif temp < 80:
fan_speed = 70
else:
fan_speed = 100
print("setting fan speed to " + str(fan_speed) + "%, temp is " + str(temp))
for fan in fans:
subprocess.run(["liquidctl", "set", fan, "speed", str(fan_speed)])
while True:
try:
run_fan_check()
except:
print("There was a problem while running the fan curve")
time.sleep(5)
# cm-rgb-cli
# run as casefan.service (systemctl enable casefan)