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())