diff --git a/deploy/roles/collectd/templates/leds.py b/deploy/roles/collectd/templates/leds.py index 27699f4..2d3ab9c 100644 --- a/deploy/roles/collectd/templates/leds.py +++ b/deploy/roles/collectd/templates/leds.py @@ -1,78 +1,78 @@ #!/usr/bin/env python2 import collectd import serial import subprocess from math import floor DEBUG = 1 -PORT = '/dev/ttyS0' +PORT = '/dev/ttyS1' SPEED = 9600 CORES = int(subprocess.check_output('nproc')) LEDS_NUMBER = 8 # number of leds in a column LEDS_MAX = 100 LEDS_NOCOL = '0 0 0 ' FAN_MAX = 255 fan_last = 0 TEMP_LOW = 40 temp_last = 0 COLORS = [ '0 %d %d ' # cyan '%d 0 %d ',# magenta '%d %d 0 ',# yellow '%d 0 0 ', # red '0 %d 0 ', # green '0 0 %d ', # blue ] hosts = set() def debug(msg): if DEBUG: f = open('/tmp/debug', 'a+') f.write(str(msg) + "\n") f.close() def color(value, index): nb = len(COLORS[index].split('%d')) - 1 return COLORS[index] % tuple([value]*nb) def write(vl, data=None): global hosts line = '' hosts.add(vl.host) index = list(hosts).index(vl.host) if vl.plugin == 'thermal': temp_last = max(temp_last, values[0]) if temp_last > TEMP_LOW: line += 'f 50' pass if vl.type == 'if_octets': pass if vl.type == 'load': load1 = vl.values[0] load1 = load1 if load1 <= CORES else CORES LEDS_ON = LEDS_NUMBER / CORES * load1 LEDS_TR = 0 if LEDS_ON==0 else LEDS_ON - int(floor(LEDS_ON)) LEDS_OFF = LEDS_NUMBER - LEDS_ON line += "L%d %s" % \ (index, color(LEDS_MAX, index) * int(floor(LEDS_ON)) \ + color(LEDS_MAX * LEDS_TR, index) \ + LEDS_NOCOL * int(floor(LEDS_OFF))) debug(line.strip()) if line != '': ser = serial.Serial(PORT, SPEED) ser.write(line.strip() + "\n") ser.close() collectd.register_write(write);