mirror of
https://github.com/KevinMidboe/Node-Com-Handler.git
synced 2025-10-29 09:40:27 +00:00
49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
|
|
from functools import partial
|
|
from os import path
|
|
|
|
|
|
class LinuxCpuTemperatureReader():
|
|
files = [
|
|
'/sys/devices/LNXSYSTM:00/LNXTHERM:00/LNXTHERM:01/thermal_zone/temp',
|
|
'/sys/bus/acpi/devices/LNXTHERM:00/thermal_zone/temp',
|
|
'/proc/acpi/thermal_zone/THM0/temperature',
|
|
'/proc/acpi/thermal_zone/THRM/temperature',
|
|
'/proc/acpi/thermal_zone/THR1/temperature'
|
|
]
|
|
|
|
@classmethod
|
|
def get_reader(cls):
|
|
readers = {
|
|
cls.files[0]: cls.reader1,
|
|
cls.files[1]: cls.reader1,
|
|
cls.files[2]: cls.reader2,
|
|
cls.files[3]: cls.reader2,
|
|
cls.files[4]: cls.reader2
|
|
}
|
|
for file in cls.files:
|
|
if path.exists(file):
|
|
reader = readers.get(file)
|
|
if reader:
|
|
print(reader(file))
|
|
return reader(file)
|
|
|
|
@classmethod
|
|
def reader1(cls, file):
|
|
def reader(file):
|
|
temperature = open(file).read().strip()
|
|
temperature = int(temperature) // 1000
|
|
return temperature
|
|
return partial(reader, file)
|
|
|
|
@classmethod
|
|
def reader2(cls, file):
|
|
def reader(file):
|
|
temperature = open(file).read().strip()
|
|
temperature = temperature.lstrip('temperature :').rstrip(' C')
|
|
return int(temperature)
|
|
return partial(reader, file)
|
|
|
|
|
|
__all__ = ['LinuxCpuTemperatureReader']
|