mqtt
This commit is contained in:
		
							parent
							
								
									c8026accec
								
							
						
					
					
						commit
						d14c100a2f
					
				
							
								
								
									
										54
									
								
								examples/mqtt.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								examples/mqtt.py
									
									
									
									
									
										Normal file
									
								
							@ -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()
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user