0. blinks RED when a query is blocked
1. blinks GREEN when a query is provided from cache
2. blinks BLUE when a query is forwarded
3. not used
4.5.6. shows load1, load5 and load15 as scale blue->green->yellow->red
7. blinks WHITE when DHCP is assigned
My apologies for maybe non-pythonic code... This is my first python script compiled from several sources.
Running from cmd line:
/usr/bin/tail -f /var/log/pihole.log | stdbuf -oL /home/pi/python/piblikac.py
piblikac.py:
#!/usr/bin/python3 -u
import sys
import re
import os
import blinkt
import time
import threading
import random
FPS = 30
brightness = 0.2
delay = 1
loadbrightness = 0.05
random.seed(1)
def blikaj():
while True:
line = sys.stdin.readline()
if re.search("0.0.0.0", line):
blinkt.set_pixel(0,255,0,0,brightness)
#print(line + " r")
if re.search("cached", line):
blinkt.set_pixel(1,0,255,0,brightness)
#print(line + " g")
if re.search("forwarded", line):
blinkt.set_pixel(2,0,0,255,brightness)
if re.search("DHCP", line):
blinkt.set_pixel(7,255,255,255,brightness)
#print(line + " b")
load1, load5, load15 = os.getloadavg()
if load1 < 0.1:
blinkt.set_pixel(4,0,0,255,loadbrightness)
elif load1 < 0.2:
blinkt.set_pixel(4,0,128,255,loadbrightness)
elif load1 < 0.3:
blinkt.set_pixel(4,0,255,255,loadbrightness)
elif load1 < 0.4:
blinkt.set_pixel(4,0,255,128,loadbrightness)
elif load1 < 0.5:
blinkt.set_pixel(4,0,255,0,loadbrightness)
elif load1 < 0.6:
blinkt.set_pixel(4,128,255,0,loadbrightness)
elif load1 < 0.7:
blinkt.set_pixel(4,255,255,0,loadbrightness)
elif load1 < 0.8:
blinkt.set_pixel(4,255,128,0,loadbrightness)
elif load1 < 0.9:
blinkt.set_pixel(4,255,0,0,loadbrightness)
if load5 < 0.1:
blinkt.set_pixel(5,0,0,255,loadbrightness)
elif load5 < 0.2:
blinkt.set_pixel(5,0,128,255,loadbrightness)
elif load5 < 0.3:
blinkt.set_pixel(5,0,255,255,loadbrightness)
elif load5 < 0.4:
blinkt.set_pixel(5,0,255,128,loadbrightness)
elif load5 < 0.5:
blinkt.set_pixel(5,0,255,0,loadbrightness)
elif load5 < 0.6:
blinkt.set_pixel(5,128,255,0,loadbrightness)
elif load5 < 0.7:
blinkt.set_pixel(5,255,255,0,loadbrightness)
elif load5 < 0.8:
blinkt.set_pixel(5,255,128,0,loadbrightness)
elif load5 < 0.9:
blinkt.set_pixel(5,255,0,0,loadbrightness)
if load15 < 0.1:
blinkt.set_pixel(6,0,0,255,loadbrightness)
elif load15 < 0.2:
blinkt.set_pixel(6,0,128,255,loadbrightness)
elif load15 < 0.3:
blinkt.set_pixel(6,0,255,255,loadbrightness)
elif load15 < 0.4:
blinkt.set_pixel(6,0,255,128,loadbrightness)
elif load15 < 0.5:
blinkt.set_pixel(6,0,255,0,loadbrightness)
elif load15 < 0.6:
blinkt.set_pixel(6,128,255,0,loadbrightness)
elif load15 < 0.7:
blinkt.set_pixel(6,255,255,0,loadbrightness)
elif load15 < 0.8:
blinkt.set_pixel(6,255,128,0,loadbrightness)
elif load15 < 0.9:
blinkt.set_pixel(6,255,0,0,loadbrightness)
#print (line)
def zhasinaj():
while True:
stoj = random.random()/4
time.sleep(stoj)
blinkt.set_pixel(0, 0, 0, 0)
stoj = random.random()/4
time.sleep(stoj)
blinkt.set_pixel(1, 0, 0, 0)
stoj = random.random()/4
time.sleep(stoj)
blinkt.set_pixel(2, 0, 0, 0)
stoj = random.random()/4
time.sleep(stoj)
blinkt.set_pixel(7, 0, 0, 0)
#time.sleep(delay/4*3)
#blinkt.set_brightness(brightness/2)
#time.sleep(delay/4)
#blinkt.set_brightness(0)
if __name__ == '__main__':
threading.Thread(target = blikaj).start()
threading.Thread(target = zhasinaj).start()
while True:
blinkt.show()
time.sleep(1.0/FPS)
Žiadne komentáre:
Zverejnenie komentára