66 lines
1.6 KiB
Python
66 lines
1.6 KiB
Python
import subprocess
|
|
import json
|
|
|
|
def getSensors():
|
|
result = subprocess.run(['sensors', '-j', '-A'], stdout=subprocess.PIPE)
|
|
result = result.stdout.decode('utf-8')
|
|
|
|
devices = json.loads(result)
|
|
|
|
return devices
|
|
|
|
def getTemps():
|
|
devices = getSensors()
|
|
|
|
temps = {}
|
|
for device in devices:
|
|
if "nct" in device:
|
|
continue
|
|
temps[device] = {}
|
|
for sensor in devices[device]:
|
|
for data in devices[device][sensor]:
|
|
if "temp" in data:
|
|
if "input" in data:
|
|
temps[device][sensor] = devices[device][sensor][data]
|
|
return temps
|
|
|
|
def getVoltages():
|
|
devices = getSensors()
|
|
|
|
voltages = {}
|
|
for device in devices:
|
|
if "nct" not in device:
|
|
continue
|
|
|
|
voltages[device] = {}
|
|
for sensor in devices[device]:
|
|
if "in" in sensor:
|
|
for data in devices[device][sensor]:
|
|
if "input" in data:
|
|
voltages[device][sensor] = devices[device][sensor][data]
|
|
return voltages
|
|
|
|
def getFans():
|
|
devices = getSensors()
|
|
|
|
fans = {}
|
|
for device in devices:
|
|
if "nct" not in device:
|
|
continue
|
|
|
|
fans[device] = {}
|
|
for sensor in devices[device]:
|
|
if "fan" in sensor:
|
|
for data in devices[device][sensor]:
|
|
if "input" in data:
|
|
fans[device][sensor] = devices[device][sensor][data]
|
|
return fans
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print(getTemps())
|
|
print("")
|
|
print(getVoltages())
|
|
print("")
|
|
print(getFans())
|