Error handling
This commit is contained in:
parent
80fc25482c
commit
b66b48fae6
1 changed files with 24 additions and 12 deletions
36
fb_gui.py
36
fb_gui.py
|
@ -62,7 +62,7 @@ time_str = time.strftime(CLOCK_FORMAT, now_parts)
|
||||||
temp_str = TEMP_FORMAT % -10.0
|
temp_str = TEMP_FORMAT % -10.0
|
||||||
|
|
||||||
clock_box=TextBox( (10,10), (300,120), JITTER, (255,255,255), BKGND_COLOR, time_str)
|
clock_box=TextBox( (10,10), (300,120), JITTER, (255,255,255), BKGND_COLOR, time_str)
|
||||||
temp_box =TextBox( (120,180), (190,50), JITTER, (255,0,0), BKGND_COLOR, temp_str)
|
temp_box =TextBox( (100,160), (200,60), JITTER, (255,0,0), BKGND_COLOR, temp_str)
|
||||||
|
|
||||||
display = Framebuffer(1)
|
display = Framebuffer(1)
|
||||||
fb_img = Image.new(mode="RGB", size=DISPLAY_SIZE)
|
fb_img = Image.new(mode="RGB", size=DISPLAY_SIZE)
|
||||||
|
@ -71,14 +71,27 @@ fb_draw = ImageDraw.Draw(fb_img)
|
||||||
mean_temp = 0
|
mean_temp = 0
|
||||||
|
|
||||||
def fetch_temp(bridge, user, sensor):
|
def fetch_temp(bridge, user, sensor):
|
||||||
r=requests.get(f"http://{bridge}/api/{user}/sensors/{str(sensor)}")
|
try:
|
||||||
|
r=requests.get(f"http://{bridge}/api/{user}/sensors/{str(sensor)}")
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
r=None
|
||||||
if r:
|
if r:
|
||||||
return r.json()["state"]["temperature"]/100
|
json = r.json()
|
||||||
|
if 'state' in json and 'temperature' in json['state'] and json['state']['temperature']:
|
||||||
|
return json["state"]["temperature"]/100
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def jitter():
|
def jitter():
|
||||||
return (random.randint(0,JITTER), random.randint(0,JITTER))
|
return (random.randint(0,JITTER), random.randint(0,JITTER))
|
||||||
|
|
||||||
|
def set_brightness(now_parts):
|
||||||
|
if now_parts.tm_hour > 7 and now_parts.tm_hour < 19:
|
||||||
|
subprocess.run(GPIO_TOOL+DAY_BRIGHT)
|
||||||
|
else:
|
||||||
|
subprocess.run(GPIO_TOOL+NIGHT_BRIGHT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Main loop:
|
# Main loop:
|
||||||
jitter_pos = jitter()
|
jitter_pos = jitter()
|
||||||
|
|
||||||
|
@ -86,7 +99,8 @@ old_time=""
|
||||||
old_temp=""
|
old_temp=""
|
||||||
|
|
||||||
subprocess.run(GPIO_TOOL+PWM_MODE)
|
subprocess.run(GPIO_TOOL+PWM_MODE)
|
||||||
subprocess.run(GPIO_TOOL+NIGHT_BRIGHT)
|
|
||||||
|
set_brightness(now_parts)
|
||||||
|
|
||||||
fb_draw.rectangle(((0,0),DISPLAY_SIZE),BKGND_COLOR, BKGND_COLOR,1)
|
fb_draw.rectangle(((0,0),DISPLAY_SIZE),BKGND_COLOR, BKGND_COLOR,1)
|
||||||
temp_time=time.time()
|
temp_time=time.time()
|
||||||
|
@ -96,23 +110,21 @@ try:
|
||||||
|
|
||||||
now = time.time()
|
now = time.time()
|
||||||
now_parts = time.localtime(now)
|
now_parts = time.localtime(now)
|
||||||
|
time_str = time.strftime(CLOCK_FORMAT, now_parts)
|
||||||
|
|
||||||
if now-temp_time > TEMP_DELAY:
|
if now-temp_time > TEMP_DELAY:
|
||||||
cur_temp = fetch_temp("philips-hue", "GQ03rw1saUS0n88G5yj9j7-TsteFIE1yxtlBOgzD", 71)
|
cur_temp = fetch_temp("philips-hue", "GQ03rw1saUS0n88G5yj9j7-TsteFIE1yxtlBOgzD", 71)
|
||||||
if cur_temp:
|
if cur_temp:
|
||||||
mean_temp = cur_temp
|
mean_temp = cur_temp
|
||||||
temp_time = now
|
temp_time = now
|
||||||
|
temp_str = TEMP_FORMAT % mean_temp
|
||||||
|
else:
|
||||||
|
temp_str = "---"
|
||||||
|
|
||||||
if now_parts.tm_sec == 0:
|
if now_parts.tm_sec == 0:
|
||||||
jitter_pos = jitter()
|
jitter_pos = jitter()
|
||||||
|
if now_parts.tm_min == 0:
|
||||||
if (now_parts.tm_min == 0) and (now_parts.tm_hour > 7 and now_parts.tm_hour < 19):
|
set_brightness(now_parts)
|
||||||
subprocess.run(GPIO_TOOL+DAY_BRIGHT)
|
|
||||||
else:
|
|
||||||
subprocess.run(GPIO_TOOL+NIGHT_BRIGHT)
|
|
||||||
|
|
||||||
time_str = time.strftime(CLOCK_FORMAT, now_parts)
|
|
||||||
temp_str = TEMP_FORMAT % mean_temp
|
|
||||||
|
|
||||||
if time_str != old_time:
|
if time_str != old_time:
|
||||||
clock_box.draw_text(fb_img, time_str, jitter_pos)
|
clock_box.draw_text(fb_img, time_str, jitter_pos)
|
||||||
|
|
Loading…
Reference in a new issue