From 7da902b97af4106122448e522e6b3d0988b5a03d Mon Sep 17 00:00:00 2001 From: saqriphnix Date: Sat, 27 Apr 2024 01:01:46 +0300 Subject: [PATCH] add sensors --- requirements.txt | 1 + sensors.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 sensors.py diff --git a/requirements.txt b/requirements.txt index 0704b2d..69c8e04 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ +colorama==0.4.6 psutil==5.9.8 diff --git a/sensors.py b/sensors.py new file mode 100644 index 0000000..5ef3767 --- /dev/null +++ b/sensors.py @@ -0,0 +1,54 @@ +from dataclasses import dataclass +from psutil import sensors_temperatures + + +@dataclass +class TemperatureSensor: + sensor_type: str + sensor_label: str + current_temp: float + highest_temp: float | None = None + critical_temp: float | None = None + + +class Sensors: + @staticmethod + def get_temperatures() -> dict[str, list[TemperatureSensor]]: + temp_sens = sensors_temperatures() + + temp_sensors = {} + + for k, v in temp_sens.items(): + if k not in temp_sensors.keys(): + temp_sensors[k] = [] + match(k): + case "nvme": + for i in v: + temp_sensors[k].append(TemperatureSensor( + sensor_type=k, + sensor_label=i.label, + current_temp=i.current, + highest_temp=i.high, + critical_temp=i.critical + )) + case "amdgpu": + temp_sensors[k].append(TemperatureSensor( + sensor_type=k, + sensor_label="Integrated GPU", + current_temp=v[0].current, + )) + case "k10temp": + temp_sensors[k].append(TemperatureSensor( + sensor_type=k, + sensor_label="AMD CPU", + current_temp=v[0].current, + critical_temp=95.0 # hardcoded because we have R9 7900X + )) + + + return temp_sensors + + +if __name__ == "__main__": + for i in Sensors.get_temperatures(): + print(i)