| @@ -240,7 +240,7 @@ def display_site_measure(epd, titel, titel_pos, val): | |||||
| draw.text((156, 110), "Abbrechen", font = font_label, fill = 0) | draw.text((156, 110), "Abbrechen", font = font_label, fill = 0) | ||||
| epd.display(epd.getbuffer(dp)) | epd.display(epd.getbuffer(dp)) | ||||
| def display_site_main(epd, cl, ph): | |||||
| def display_site_main(epd, cl, ph, clm, phm): | |||||
| dp = Image.new('1', (epd.height, epd.width), 255) | dp = Image.new('1', (epd.height, epd.width), 255) | ||||
| newimage = Image.open(os.path.join(picdir, 'tankgrafik.bmp')) | newimage = Image.open(os.path.join(picdir, 'tankgrafik.bmp')) | ||||
| dp.paste(newimage, (0,0)) | dp.paste(newimage, (0,0)) | ||||
| @@ -255,9 +255,11 @@ def display_site_main(epd, cl, ph): | |||||
| draw.rectangle((10, 78, 114, 85), outline = 1, fill = 1) | draw.rectangle((10, 78, 114, 85), outline = 1, fill = 1) | ||||
| if cl < 20: | if cl < 20: | ||||
| draw.rectangle((10, 90, 114, 97), outline = 1, fill = 1) | draw.rectangle((10, 90, 114, 97), outline = 1, fill = 1) | ||||
| if cl < ALARM_LEVEL_CM: #todo and email | |||||
| draw.rectangle((10, 54, 114, 109), outline = 1, fill = 1) | |||||
| draw.text((37, 53), "X", font = font_huge, fill = 0) | |||||
| if cl < ALARM_LEVEL_CM: | |||||
| if clm == 1: | |||||
| draw.text((37, 53), "X", font = font_huge, fill = 0) | |||||
| else: | |||||
| draw.rectangle((10, 54, 114, 109), outline = 1, fill = 1) | |||||
| if ph < 80: | if ph < 80: | ||||
| draw.rectangle((135, 54, 239, 61), outline = 1, fill = 1) | draw.rectangle((135, 54, 239, 61), outline = 1, fill = 1) | ||||
| if ph < 60: | if ph < 60: | ||||
| @@ -266,9 +268,11 @@ def display_site_main(epd, cl, ph): | |||||
| draw.rectangle((135, 78, 239, 85), outline = 1, fill = 1) | draw.rectangle((135, 78, 239, 85), outline = 1, fill = 1) | ||||
| if ph < 20: | if ph < 20: | ||||
| draw.rectangle((135, 90, 239, 97), outline = 1, fill = 1) | draw.rectangle((135, 90, 239, 97), outline = 1, fill = 1) | ||||
| if ph < ALARM_LEVEL_CM: #todo and email | |||||
| draw.rectangle((135, 54, 239, 109), outline = 1, fill = 1) | |||||
| draw.text((164, 53), "X", font = font_huge, fill = 0) | |||||
| if ph < ALARM_LEVEL_CM: | |||||
| if phm == 1: | |||||
| draw.text((164, 53), "X", font = font_huge, fill = 0) | |||||
| else: | |||||
| draw.rectangle((135, 54, 239, 109), outline = 1, fill = 1) | |||||
| epd.display(epd.getbuffer(dp)) | epd.display(epd.getbuffer(dp)) | ||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||
| @@ -283,7 +287,7 @@ if __name__ == '__main__': | |||||
| font_label = ImageFont.truetype(os.path.join(picdir, 'squarea.ttf'), 15) | font_label = ImageFont.truetype(os.path.join(picdir, 'squarea.ttf'), 15) | ||||
| font_huge = ImageFont.truetype(os.path.join(picdir, 'squarea.ttf'), 74) | font_huge = ImageFont.truetype(os.path.join(picdir, 'squarea.ttf'), 74) | ||||
| display_site_main(epd, 0, 0) | |||||
| display_site_main(epd, 0, 0, 0, 0) | |||||
| print("Lese config.ini...") | print("Lese config.ini...") | ||||
| config = configparser.ConfigParser() | config = configparser.ConfigParser() | ||||
| @@ -318,6 +322,8 @@ if __name__ == '__main__': | |||||
| print("Starte Hauptprogramm...") | print("Starte Hauptprogramm...") | ||||
| mavg_cl = MovingAverage(AVG_WINDOWSIZE) | mavg_cl = MovingAverage(AVG_WINDOWSIZE) | ||||
| mavg_ph = MovingAverage(AVG_WINDOWSIZE) | mavg_ph = MovingAverage(AVG_WINDOWSIZE) | ||||
| clp_prev = -1 | |||||
| php_prev = -1 | |||||
| while True: | while True: | ||||
| try: | try: | ||||
| state = buttons.get_state() | state = buttons.get_state() | ||||
| @@ -406,9 +412,14 @@ if __name__ == '__main__': | |||||
| ph_status = False | ph_status = False | ||||
| clp = get_percent(cl_leer, cl_voll, cl) | clp = get_percent(cl_leer, cl_voll, cl) | ||||
| php = get_percent(ph_leer, ph_voll, ph) | php = get_percent(ph_leer, ph_voll, ph) | ||||
| display_site_main(epd, clp, php) | |||||
| print("Chlor: {:10.2f} cm, pH-Minus: {:10.2f} cm".format(cl, ph)) | print("Chlor: {:10.2f} cm, pH-Minus: {:10.2f} cm".format(cl, ph)) | ||||
| print("Chlor: {:10.2f} %, pH-Minus: {:10.2f} %".format(clp, php)) | print("Chlor: {:10.2f} %, pH-Minus: {:10.2f} %".format(clp, php)) | ||||
| clp = round(clp, 0) | |||||
| php = round(php, 0) | |||||
| if clp != clp_prev or php != php_prev: | |||||
| display_site_main(epd, clp, php, cl_mail, ph_mail) | |||||
| clp_prev = clp | |||||
| php_prev = php | |||||
| if cl_status and abs(cl_leer - ALARM_LEVEL_CM) < cl: | if cl_status and abs(cl_leer - ALARM_LEVEL_CM) < cl: | ||||
| print(f"{Fore.RED}Chlor-Tank fast leer!{Style.RESET_ALL}") | print(f"{Fore.RED}Chlor-Tank fast leer!{Style.RESET_ALL}") | ||||
| if cl_mail == 0: | if cl_mail == 0: | ||||
| @@ -431,4 +442,4 @@ if __name__ == '__main__': | |||||
| config.write(configfile) | config.write(configfile) | ||||
| time.sleep(0.5) | time.sleep(0.5) | ||||
| except KeyboardInterrupt: | except KeyboardInterrupt: | ||||
| shutdown(epd) | |||||
| shutdown(epd) | |||||