#!/usr/bin/env python import json import re import subprocess from block import * CRIT = 90.0 CHIP_BLACKLIST = [] SENSOR_BLACKLIST = [r'^AUXTIN[0-9]'] ICON = '\uf2c7' class Temp(Block): def in_blacklist(self, identifier, blacklist): for entry in blacklist: if entry == identifier or re.match(entry, identifier): return True return False def execute(self): sensors_data = json.loads(subprocess.check_output( ['sensors', '-j']).decode('utf-8')) max_temp = 0.0 for chip, sensors in sensors_data.items(): if self.in_blacklist(chip, CHIP_BLACKLIST): continue for sensor, readings in sensors.items(): if self.in_blacklist(sensor, SENSOR_BLACKLIST): continue if type(readings) == str: continue for name, value in readings.items(): if not re.match(r'^temp._input$', name): continue if value > max_temp: max_temp = value color = '#ffffff' if max_temp > CRIT: color = '#dd0000' return self.color_text( self.safe_text('{:.1f}°C'.format(max_temp)), color=color, ) def main(): block = Temp(ICON) block.render() if __name__ == '__main__': main()