In this example the MQTT broker runs on 192.168.20.136, change this into your MQTT Broker IP address.
Links:
Links into the MQTT documentation:
https://pypi.org/project/paho-mqtt/
https://pypi.org/project/paho-mqtt/#single
https://pypi.org/project/paho-mqtt/#multiple
Notes:
Python object can only assign to an in Blockly defined variable in a Python code Blockly.
The Blockly structure: The code development in MS Visual Studio Code remotely on the TXT4.0: The Python code in the ROBO Pro Coding (RPC) Python pane:
Code: Alles auswählen
#(c) 2022 C. van Leeuwen Enschede
import paho.mqtt.publish as publish
from lib.controller import *
Payload = None
Topic = None
MsgsList = None
mqttPort = None
mqttBroker = None
mqttTopic = None
mqttPld = None
mqttMesgs = None
result = None
mesg2 = None
mesg1 = None
mesg3 = None
def mqttPubSingle(Payload, Topic):
global MsgsList, mqttPort, mqttBroker, mqttTopic, mqttPld, mqttMesgs, result, mesg2, mesg1, mesg3
#(c) 2022 C v Leeuwen
publish.single(topic=Topic, payload=Payload, qos=0, retain=False, auth=mqttAuth , hostname=mqttBroker, port=mqttPort )
return True
def mqttPubMulti(MsgsList):
global Payload, Topic, mqttPort, mqttBroker, mqttTopic, mqttPld, mqttMesgs, result, mesg2, mesg1, mesg3
#(c) 2022 C v Leeuwen
publish.multiple(msgs=MsgsList, auth=mqttAuth , hostname=mqttBroker, port=mqttPort )
return True
# (c) 2022 C.v.Leeuwen
# Example about the use of MQTT
#mqttBroker = '192.168.20.136'
#mqttPort=1883
mqttUser = 'carel'
mqttPsw = 'carel'
mqttAuth={'username':"carel",'password':"carel"}
mqttPort = 1883
mqttBroker = '192.168.20.136'
#single
#mqttTopic = 'carel/0/'
#mqttPld = 'simpelxxx'
mqttTopic = 'carel/10/'
mqttPld = 'zomaar iets'
#multi
mesg1={ 'topic': "carel/1/", 'payload':"This" , 'qos':0, 'retain':False}
mesg2={ 'topic': "carel/2/", 'payload':"is" , 'qos':0, 'retain':False}
mesg3={ 'topic': "carel/3/", 'payload':"data" , 'qos':0, 'retain':False}
#mqttMesgs = [mesg1,mesg2,mesg3]
mqttMesgs = [mesg3, mesg2, mesg1]
result = mqttPubSingle(mqttPld, mqttTopic)
result = mqttPubMulti(mqttMesgs)
Code: Alles auswählen
#(c) 2022 C. van Leeuwen Enschede
import paho.mqtt.publish as publish
import asyncio
from json import JSONDecodeError
import json
mqttTopic = None
mqttBroker = None
mqttPsw = None
mqttMesg = None
mqttUser = None
mqttBroker = '192.168.20.136'
mqttPort=1883
#single
mqttTopic = 'carel/0/'
mqttPld = 'simpelxxx'
#multi
mesg1={ 'topic': "carel/1/", 'payload':"This" , 'qos':0, 'retain':False}
mesg2={ 'topic': "carel/2/", 'payload':"is" , 'qos':0, 'retain':False}
mesg3={ 'topic': "carel/3/", 'payload':"data" , 'qos':0, 'retain':False}
mqttMesgs = [mesg1,mesg2,mesg3]
mqttAuth={'username':"carel",'password':"carel"}
def mqttPublisherSingle(Topic, Payload):
global mqttBroker, mqttPsw, mqttMesg, mqttUser
#your python code
publish.single(topic=Topic, payload=Payload, qos=0, retain=False, auth=mqttAuth , hostname=mqttBroker, port=mqttPort )
def mqttPublisherMulti(Mesgs):
global mqttBroker, mqttPsw, mqttMesg, mqttUser
#your python code
publish.multiple(msgs=Mesgs, auth=mqttAuth , hostname=mqttBroker, port=mqttPort )
mqttPublisherSingle(mqttTopic,mqttPld)
mqttPublisherMulti(mqttMesgs)