From eb48c868c63dadd490287a1f9c62cabb9a942886 Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 1 Feb 2024 23:48:39 +0100 Subject: [PATCH] add multidimension dict --- examples/solar-monitoring.py | 87 +++++++++++------- examples/test.py | 8 +- .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 169 bytes .../__pycache__/epd2in13b_V3.cpython-310.pyc | Bin 0 -> 3606 bytes .../__pycache__/epdconfig.cpython-310.pyc | Bin 0 -> 7120 bytes 5 files changed, 63 insertions(+), 32 deletions(-) create mode 100644 lib/waveshare_epd/__pycache__/__init__.cpython-310.pyc create mode 100644 lib/waveshare_epd/__pycache__/epd2in13b_V3.cpython-310.pyc create mode 100644 lib/waveshare_epd/__pycache__/epdconfig.cpython-310.pyc diff --git a/examples/solar-monitoring.py b/examples/solar-monitoring.py index 7804ab3..04e381b 100644 --- a/examples/solar-monitoring.py +++ b/examples/solar-monitoring.py @@ -28,16 +28,43 @@ mqtt_broker = "openwb-2" # broker address, usually your HASS IP address port = 1883 #set topics -topic_house_battery_soc = "openWB/bat/get/soc" -topic_house_battery_power = "openWB/bat/get/power" +topic0 = { + "topic" : "openWB/bat/get/soc", + "line" : "0", + "value" : "" +} +topic1 = { + "topic" : "openWB/bat/get/power", + "line" : "1", + "value" : "" +} +topic2 = { + "topic" : "openWB/counter/7/get/power", + "line" : "2", + "value" : "" +} +topic3 = { + "topic" : "openWB/pv/8/get/power", + "line" : "3", + "value" : "" +} +topic4 = { + "topic" : "openWB/graph/lastlivevaluesJson", #house-power + "line" : "4", + "value" : "" +} +topic5 = { + "topic" : "openWB/vehicle/4/get/soc", + "line" : "5", + "value" : "" +} +topic6 = { + "topic" : "openWB/internal_chargepoint/0/get/powers", + "line" : "6", + "value" : "" +} -topic_power_import_export = "openWB/counter/7/get/power" -topic_pv_power = "openWB/pv/8/get/power" - -topic_house_power = "openWB/graph/lastlivevaluesJson" #house-power - -topic_car_soc = "openWB/vehicle/4/get/soc" -topic_charge_point_power = "openWB/internal_chargepoint/0/get/powers" +topics = {0:topic0,1:topic1,2:topic2,3:topic3,4:topic4,5:topic5,6:topic6} def connect_mqtt(): @@ -63,7 +90,7 @@ def subscribe(client: mqtt_client, topic): client.on_message = on_message client.loop_stop() -def monitor(pv_power,house_power,power_import_export,house_battery_soc,house_battery_power,charge_point_power,car_soc): +def monitor(topics): logging.info("epd2in13b_V3 Demo") logging.info(libdir) @@ -93,14 +120,19 @@ def monitor(pv_power,house_power,power_import_export,house_battery_soc,house_bat drawblack.text((2, 64), 'Batterie Entladen', font = font16, fill = 0) drawblack.text((2, 80), 'Auto Laden', font = font16, fill = 0) - drawblack.text((160, 0), str(pv_power), font = font16, fill = 0) - drawblack.text((160, 16), str(house_power), font = font16, fill = 0) - drawblack.text((160, 32), str(power_import_export), font = font16, fill = 0) - drawblack.text((160, 48), str(house_battery_soc), font = font16, fill = 0) - drawblack.text((160, 64), str(house_battery_power), font = font16, fill = 0) - drawblack.text((160, 80), str(charge_point_power), font = font16, fill = 0) + for topic_id, topic_info in topics.items(): + print("\nTopic ID:", topic_id) + for key in topic_info: + print(key + ':', topic_info[key]) + drawblack.text((160, int(topic_info["line"])*16), topic_info["value"], font = font16, fill = 0) + topic_info["value"] = subscribe(client, topic_info["topic"]) + #drawblack.text((160, 16), str(house_power), font = font16, fill = 0) + #drawblack.text((160, 32), str(power_import_export), font = font16, fill = 0) + #drawblack.text((160, 48), str(house_battery_soc), font = font16, fill = 0) + #drawblack.text((160, 64), str(house_battery_power), font = font16, fill = 0) + #drawblack.text((160, 80), str(charge_point_power), font = font16, fill = 0) epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) @@ -124,23 +156,16 @@ def monitor(pv_power,house_power,power_import_export,house_battery_soc,house_bat def run(): client = connect_mqtt() - house_battery_soc = subscribe(client, topic_house_battery_soc) - house_battery_power = subscribe(client, topic_house_battery_power) - power_import_export = subscribe(client, topic_power_import_export) - pv_power = subscribe(client, topic_pv_power) - house_power = subscribe(client, topic_house_power) - car_soc = subscribe(client, topic_car_soc) - charge_point_power = subscribe(client, topic_charge_point_power) - logging.info("house battery soc: " + str(house_battery_soc)) - logging.info("house battery power: " + str(house_battery_power)) - logging.info("power import export: " + str(power_import_export)) - logging.info("pv power: " + str(pv_power)) - logging.info("house power: " + str(house_power)) - logging.info("car soc: " + str(car_soc)) - logging.info("charge point power: " + str(charge_point_power)) + 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"]) + try: - monitor(pv_power,house_power,power_import_export,house_battery_soc,house_battery_power,charge_point_power,car_soc) + monitor(topics) except IOError as e: logging.info(e) diff --git a/examples/test.py b/examples/test.py index 2f7719a..f66ceca 100644 --- a/examples/test.py +++ b/examples/test.py @@ -39,4 +39,10 @@ topics = {0:topic0,1:topic1,2:topic2,3:topic3,4:topic4,5:topic5,6:topic6} topics[3]['value'] = '20' -print(topics[3]["line"]) \ No newline at end of file +print(topics[3]["line"]) + +for topic_id, topic_info in topics.items(): + print("\nTopic ID:", topic_id) + + for key in topic_info: + print(key + ':', topic_info[key]) \ No newline at end of file diff --git a/lib/waveshare_epd/__pycache__/__init__.cpython-310.pyc b/lib/waveshare_epd/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..070aeb017bedca2ed1eb1c8f6b577f3bb0382ca5 GIT binary patch literal 169 zcmd1j<>g`k0$%<-sUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v9KRG`yEi+xe zJijQrxF9h(RlhhtC$T6uKQFT+zeqn-w;-_~wMaK5v$!B9u~I)LGfBTZu`IPXBe5to lKD8i4KR!Mas5Cxaub}c4hfQvNN@-529mtkqCLqDW000p7DW3oU literal 0 HcmV?d00001 diff --git a/lib/waveshare_epd/__pycache__/epd2in13b_V3.cpython-310.pyc b/lib/waveshare_epd/__pycache__/epd2in13b_V3.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7875a134fc26d857ac9df2b4107879cf3e0077f1 GIT binary patch literal 3606 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 JK7lL4KLHnB-y#42 literal 0 HcmV?d00001