t
This commit is contained in:
		
							parent
							
								
									f7930dc31d
								
							
						
					
					
						commit
						d425cc84f3
					
				@ -16,41 +16,51 @@ from paho.mqtt import client as mqtt_client
 | 
			
		||||
 | 
			
		||||
logging.basicConfig(level=logging.DEBUG)
 | 
			
		||||
 | 
			
		||||
broker = 'homeassistant'
 | 
			
		||||
Connected = False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def connect_mqtt() -> mqtt_client:
 | 
			
		||||
    def on_connect(client, userdata, flags, rc):
 | 
			
		||||
        if rc == 0:
 | 
			
		||||
            print("Connected to MQTT Broker!")
 | 
			
		||||
 | 
			
		||||
            global Connected                #Use global variable
 | 
			
		||||
            Connected = True                #Signal connection 
 | 
			
		||||
        else:
 | 
			
		||||
            print("Failed to connect, return code %d\n", rc)
 | 
			
		||||
 | 
			
		||||
def on_message(client, userdata, msg):
 | 
			
		||||
     print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic")
 | 
			
		||||
 | 
			
		||||
Connected = False   #global variable for the state of the connection
 | 
			
		||||
 | 
			
		||||
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.on_message = on_message
 | 
			
		||||
 | 
			
		||||
    client = mqtt_client.Client(client_id)
 | 
			
		||||
    client.username_pw_set(username, password)
 | 
			
		||||
    client.on_connect = on_connect
 | 
			
		||||
    client.connect(broker, port)
 | 
			
		||||
    return client
 | 
			
		||||
client.connect(broker, port)
 | 
			
		||||
 | 
			
		||||
def subscribe(client: mqtt_client):
 | 
			
		||||
    def on_message(client, userdata, msg):
 | 
			
		||||
        print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic")
 | 
			
		||||
client.loop_start()        #start the loop
 | 
			
		||||
  
 | 
			
		||||
    client.subscribe(topic)
 | 
			
		||||
    client.on_message = on_message
 | 
			
		||||
while Connected != True:    #Wait for connection
 | 
			
		||||
    time.sleep(0.1)
 | 
			
		||||
 | 
			
		||||
client.subscribe(topic)
 | 
			
		||||
 | 
			
		||||
def run():
 | 
			
		||||
    print("test")
 | 
			
		||||
    client = connect_mqtt()
 | 
			
		||||
    print("conected")
 | 
			
		||||
    subscribe(client)
 | 
			
		||||
    client.loop_forever()
 | 
			
		||||
try:
 | 
			
		||||
    while True:
 | 
			
		||||
        time.sleep(1)
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    run()
 | 
			
		||||
except KeyboardInterrupt:
 | 
			
		||||
    print "exiting"
 | 
			
		||||
    client.disconnect()
 | 
			
		||||
    client.loop_stop()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user