diff --git a/examples/mqtt.py b/examples/mqtt.py new file mode 100644 index 0000000..88a55e4 --- /dev/null +++ b/examples/mqtt.py @@ -0,0 +1,54 @@ +#!/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 epd2in13bc +import time +from PIL import Image,ImageDraw,ImageFont +import traceback +from paho.mqtt import client as mqtt_client + +logging.basicConfig(level=logging.DEBUG) + +broker = 'homeassistant' +port = 8883 +topic = "openWB/evu/W" +username = "mqtt-user" +password = "phio6yiR9ohs1veeghu4WaeGhaiRi8he4EiWasheev4faeku8tohdiuthah7zahP" +client_id = "solarmonitor" + +def connect_mqtt() -> mqtt_client: + def on_connect(client, userdata, flags, rc): + if rc == 0: + print("Connected to MQTT Broker!") + else: + print("Failed to connect, return code %d\n", rc) + + client = mqtt_client.Client(client_id) + client.username_pw_set(username, password) + client.on_connect = on_connect + client.connect(broker, port) + return client + +def subscribe(client: mqtt_client): + def on_message(client, userdata, msg): + print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic") + + client.subscribe(topic) + client.on_message = on_message + + +def run(): + client = connect_mqtt() + subscribe(client) + client.loop_forever() + + +if __name__ == '__main__': + run()