mirror of
				https://github.com/KevinMidboe/Node-Com-Handler.git
				synced 2025-10-29 17:50: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']
 |