[PYTHON] Erstellen Sie eine MQTT Publisher-Box

Einführung

MQTT Publisher Box

Verwenden Sie die folgenden Bibliotheken als MQTT-Bibliotheken für Python.

Masu erstellt eine Python-Box und ändert den Eingabetyp von "Bang" in "String".

2015032101.png

Elemente einstellen

Die Einstellungselemente sind wie folgt.

Hier können Sie den MQTT-Broker-Host, den Port, die KeepAlive-Werte sowie die Themen-, QOS- und Retain-Werte angeben, an die die Nachricht gesendet werden soll.

2015032102.png

Python-Code

Der Code sieht so aus. Holen Sie sich verschiedene Parameter, stellen Sie eine Verbindung zum MQTT-Broker her und senden Sie eine Nachricht.

Informationen zur Verwendung der Bibliothek in der Box finden Sie im folgenden Artikel.

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)

    def onLoad(self):
        self.framemanager = ALProxy("ALFrameManager")
        self.folderName = None
        
    def onUnload(self):
        import sys
        
        if self.folderName and self.folderName in sys.path:
            sys.path.remove(self.folderName)
        self.folderName = None

    def onInput_onStart(self, payload):
        import sys, os
        
        self.folderName = os.path.join(
            self.framemanager.getBehaviorPath(self.behaviorId), "../lib")
        if self.folderName not in sys.path:
            sys.path.append(self.folderName)
            
        import paho.mqtt.client as paho

        host       = self.getParameter("Broker Host")
        port       = self.getParameter("Broker Port")
        keep_alive = self.getParameter("KeepAlive")
        topic      = self.getParameter("Topic")
        qos        = self.getParameter("Qos") 
        retain     = self.getParameter("Retain")
        
        mqttc = paho.Client()
        mqttc.connect(host, port, keep_alive)
        mqttc.publish(topic, payload, qos, retain)

    def onInput_onStop(self):
        self.onUnload()
        self.onStopped()

Verbinde dich mit Choregraphe

Verbinden Sie das Feld "Textbearbeitung" zum Festlegen des Nachrichteninhalts und das von Ihnen erstellte Feld "MQTT".

2015032103.png

Abonnentenseite

Bereiten Sie einen Abonnenten vor, der von der MQTT Publisher-Seite gesendete Nachrichten empfängt. Es verwendet dieselbe Paho-Bibliothek wie die Pub-Seite.

sub.py


import paho.mqtt.client as paho

def on_message(mqttc, obj, msg):
    print("topic: " + msg.topic + ", payload: " + str(msg.payload) + ", qos: \
" + str(msg.qos) + ", retain: " + str(msg.retain))

if __name__ == '__main__':
    mqttc = paho.Client()

    mqttc.on_message = on_message
    mqttc.connect("test.mosquitto.org", 1883, 60)
    mqttc.subscribe("my/topic/pepper", 0)

    mqttc.loop_forever()

Funktionsprüfung

Abonnenten ausführen

Führen Sie es auf Ihrem PC aus und warten Sie, bis Sie eine Nachricht zum Thema erhalten.

$ python sub.py

Führen Sie Publisher aus

Führen Sie das Programm in Choregraphe aus und senden Sie eine Nachricht.

Ergebnisanzeige

Die Nachricht Publisher-> Broker-> Subscriber wurde übertragen und auf der Subscriber-Seite angezeigt.

$ python sub.py
topic: my/topic/pepper, payload: Hello World from Pepper, qos: 0, retain: 0

Impressionen

Recommended Posts

Erstellen Sie eine MQTT Publisher-Box
Erstellen Sie eine MQTT Publisher Box Teil 2
Erstellen Sie eine MQTT-Abonnentenbox
Lassen Sie uns ein Errbot-Plugin erstellen
Erstellen einer HTTP-Get-Box
Machen Sie eine Tweet-Box für Pepper
Erstellen Sie ein zusammengesetztes RGB 3-Farbdiagramm
Machen Sie Scrapy exe mit Pyinstaller