2 Commits
1.4.1 ... 1.5

2 changed files with 28 additions and 13 deletions

View File

@@ -11,11 +11,14 @@ interval: 1
thermalzones:
- name: GPU+SYSTEM
# This is your source temperature.
# This is your source temperature. You can add multiple sources, see thermal zone below for an example.
source: amdgpu/temp1_input
# This is most likely 1000 for your temp sensor as well.
# If not, check what you sensor is outputing if you try to read from it.
# If not, check what you sensor is outputting if you try to read from it.
factor: 1000
# Define all fans that this thermal zone is going to control.
# There is no limit to how many fans one thermal zone can control.
# You can have different limitations on your fans, for example:
@@ -27,24 +30,28 @@ thermalzones:
fan:
- it8686/pwm2
- amdgpu/pwm1: 170
# This is your target temperature. This is one of the main control knobs. Set this to a comfortable temperature for
# your equipment. Don't set this as high as its max temperature allowance, since pid is gonna allow some overshooting.
target: 60
# For understanding PID please have a look at https://en.wikipedia.org/wiki/PID_controller. The forementioned page
# For understanding PID please have a look at https://en.wikipedia.org/wiki/PID_controller. The aforementioned page
# also explains what p, i and d stand for and what they do in detail. These are the second main control knobs.
# Simplified you can view them as:
# p = how heavy should pid weight difference in temperature
# i = how heavy should pid weight difference in temperature over time
# d = how heavy should pid weight rate of chance in temperature
# Simplified you can view them as weights for:
# p = difference in temperature (momentarily)
# i = difference in temperature over time
# d = rate of chance in temperature
pid:
p: 1
i: 1
d: 1.5
- name: CPU
source: coretemp/temp1_input
source:
- coretemp/temp1_input
- amdgpu/temp1_input
factor: 1000
fan:
- it8686/pwm1: [100, 200]
- it8686/pwm1: [ 100, 200 ]
target: 50
pid:
p: 1

View File

@@ -73,6 +73,14 @@ class ThermalZone:
d=int(d)))
def get_temp(self):
if type(self.temp_source) is list:
max_temp = -1.0
for fan in self.temp_source:
if self.read_sysfs(fan):
max_temp = max(float(self.read_sysfs(fan)) * self.factor, max_temp)
return max_temp
else:
if self.read_sysfs(self.temp_source):
return float(self.read_sysfs(self.temp_source)) * self.factor
else:
@@ -88,7 +96,7 @@ class ThermalZone:
self.set_pwm_mode(list(target_fan.keys())[0], value)
else:
self.set_pwm_mode(target_fan, value)
except FileNotFoundError as err:
except FileNotFoundError:
logging.getLogger("pyfan").warning("[%s] pwm not found."
" Try reloading hwmon map..." % self.name)
self.hwmap = self.pyfan.hwmap