#!/usr/bin/python # -*- coding:utf-8 -*- import sys import os picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') if os.path.exists(libdir): sys.path.append(libdir) import logging from waveshare_epd import epd2in13b_V3 #import waveshare-epaper import time from PIL import Image,ImageDraw,ImageFont import traceback logging.basicConfig(level=logging.DEBUG) #Define Display epd = epd2in13b_V3.EPD() epd.init() #Set fonts font16 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 16) font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18) #Init Image HBlackimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 HRYimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 ryimage: red or yellow image drawblack = ImageDraw.Draw(HBlackimage) #drawry = ImageDraw.Draw(HRYimage) #!/usr/bin/env python3 # -*- coding: utf-8 -*- import time import datetime import locale loc = locale.getlocale() print (loc) from datetime import datetime, timedelta # Zwei datetime-Objekte erstellen start_time = datetime(2024, 6, 1, 0, 0, 0) end_time = datetime(2024, 6, 10, 0, 0, 0) # Zeitdelta berechnen duration = end_time - start_time print(duration) # Ausgabe: 9 Tage, 2:30:00 def init_monitor(topics): logging.info("epd2in13b_V3 Demo") #epd = epd2in13b_V3.EPD() #epd.init() #epd.Clear() # Drawing on the image #logging.info("Drawing") #font16 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 16) #font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18) # Drawing on the Horizontal image logging.info("1.Drawing on the Horizontal image...") drawblack.text((4, 0), 'PV Production', font = font16, fill = 0) drawblack.text((4, 16), 'Hausverbrauch', font = font16, fill = 0) drawblack.text((4, 32), 'Strom Import', font = font16, fill = 0) drawblack.text((4, 48), 'Batterie', font = font16, fill = 0) drawblack.text((4, 64), 'Batterie Entladen', font = font16, fill = 0) drawblack.text((4, 80), 'Auto Laden', font = font16, fill = 0) epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) #logging.info("Clear...") #epd.init() #epd.Clear() print(drawblack) logging.info("Goto Sleep...") epd.sleep() #except IOError as e: # logging.info(e) #except KeyboardInterrupt: # logging.info("ctrl + c:") # epd2in13b_V3.epdconfig.module_exit() # exit() #client.loop_forever() def run(): try: init_monitor(topics) except IOError as e: logging.info(e) except KeyboardInterrupt: logging.info("ctrl + c:") epd2in13b_V3.epdconfig.module_exit() exit() client = connect_mqtt() for topic_id, topic_info in topics.items(): print("\nTopic ID:", topic_id) for key in topic_info: print(key + ':', topic_info[key]) topic_info["value"] = subscribe(client, topic_info["topic"]) print(topic_info["line"]) print(topic_info["value"]) drawblack.text((160, int(topic_info["line"])), str(topic_info["value"]), font = font16, fill = 0) if __name__ == '__main__': run()