mirror of
				https://github.com/KevinMidboe/Node-Com-Handler.git
				synced 2025-10-29 17:50:27 +00:00 
			
		
		
		
	Trying to find a good way to get cpu temp
This commit is contained in:
		
							
								
								
									
										48
									
								
								v1/linuxcpureader.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								v1/linuxcpureader.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  |  | ||||||
|  | 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'] | ||||||
		Reference in New Issue
	
	Block a user