add multidimension dict
This commit is contained in:
parent
3084422a9f
commit
eb48c868c6
@ -28,16 +28,43 @@ mqtt_broker = "openwb-2" # broker address, usually your HASS IP address
|
|||||||
port = 1883
|
port = 1883
|
||||||
|
|
||||||
#set topics
|
#set topics
|
||||||
topic_house_battery_soc = "openWB/bat/get/soc"
|
topic0 = {
|
||||||
topic_house_battery_power = "openWB/bat/get/power"
|
"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"
|
topics = {0:topic0,1:topic1,2:topic2,3:topic3,4:topic4,5:topic5,6:topic6}
|
||||||
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"
|
|
||||||
|
|
||||||
|
|
||||||
def connect_mqtt():
|
def connect_mqtt():
|
||||||
@ -63,7 +90,7 @@ def subscribe(client: mqtt_client, topic):
|
|||||||
client.on_message = on_message
|
client.on_message = on_message
|
||||||
client.loop_stop()
|
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("epd2in13b_V3 Demo")
|
||||||
logging.info(libdir)
|
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, 64), 'Batterie Entladen', font = font16, fill = 0)
|
||||||
drawblack.text((2, 80), 'Auto Laden', 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)
|
for topic_id, topic_info in topics.items():
|
||||||
drawblack.text((160, 16), str(house_power), font = font16, fill = 0)
|
print("\nTopic ID:", topic_id)
|
||||||
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 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))
|
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():
|
def run():
|
||||||
client = connect_mqtt()
|
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))
|
for topic_id, topic_info in topics.items():
|
||||||
logging.info("house battery power: " + str(house_battery_power))
|
print("\nTopic ID:", topic_id)
|
||||||
logging.info("power import export: " + str(power_import_export))
|
|
||||||
logging.info("pv power: " + str(pv_power))
|
for key in topic_info:
|
||||||
logging.info("house power: " + str(house_power))
|
print(key + ':', topic_info[key])
|
||||||
logging.info("car soc: " + str(car_soc))
|
topic_info["value"] = subscribe(client, topic_info["topic"])
|
||||||
logging.info("charge point power: " + str(charge_point_power))
|
|
||||||
try:
|
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:
|
except IOError as e:
|
||||||
logging.info(e)
|
logging.info(e)
|
||||||
|
@ -39,4 +39,10 @@ topics = {0:topic0,1:topic1,2:topic2,3:topic3,4:topic4,5:topic5,6:topic6}
|
|||||||
topics[3]['value'] = '20'
|
topics[3]['value'] = '20'
|
||||||
|
|
||||||
|
|
||||||
print(topics[3]["line"])
|
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])
|
BIN
lib/waveshare_epd/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
lib/waveshare_epd/__pycache__/__init__.cpython-310.pyc
Normal file
Binary file not shown.
BIN
lib/waveshare_epd/__pycache__/epd2in13b_V3.cpython-310.pyc
Normal file
BIN
lib/waveshare_epd/__pycache__/epd2in13b_V3.cpython-310.pyc
Normal file
Binary file not shown.
BIN
lib/waveshare_epd/__pycache__/epdconfig.cpython-310.pyc
Normal file
BIN
lib/waveshare_epd/__pycache__/epdconfig.cpython-310.pyc
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user