Raspi-MQTT-Broker (Mosquitto) wie und mit welcher Programmierung / Sprache kann man am leichtesten zugreifen?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    möchte aus einem Programm auf dem Raspi heraus auf den MQTT-Server zugreifen und Kommandos wie lesen von Temperatursensordaten sowie schalten von GPIO Pins ausführen.
    Gerne würde ich das in C++ machen, könnte per Programm dann einen Konsolenbefehl wie mosquitto_pub -d -t /home/data -m "on" absenden. Aber wie könnte ich Sensordaten empfangen?

    Kann mich aber auch mit Python u.s.w. anfreunden. Für Python hätte ich schon mal die Software paho-MQTT in ausgemacht. Wäre es das?
    Welche Informationen oder welchen Rat könnt ihr mir geben? Bin auf alle Antworten gespannt.

    Vielen Dank!

  • Raspi-MQTT-Broker (Mosquitto) wie und mit welcher Programmierung / Sprache kann man am leichtesten zugreifen?? Schau mal ob du hier fündig wirst!

  • Eclipse ist nicht nur eine IDE. Sondern auch eine foundation die Projekte unterstützt bzw entwickelt. Genauso wie Apache auch ein Server und eine foundation ist.

    Und das ist einfach nur ein Projekt. Der Teil mit den “erzeugten binaries” ist allerdings nur relevant, wenn man auf dem PC mit einem Cross Compiler arbeitet.

    Zu guter letzt: sowas mit C++ zu machen statt Python ist viel Aufwand für keinen Gewinn. MQTT ist Netzwerk, und nahezu alles, was du da tust, wird eh von der IO dominiert. Da wegen ein paar gesparten microsekunden auf die angenehmen Datenstrukturen und Stringverarbeitung von Python zu verzichten würde ich nur mit einem sehr guten Grund machen.

  • Programmatisch mache ich alles mit paho.mqtt.

    Beispiel für Python:

    • Mit der Klasse Client den client initialisieren
    • Dann mit der Methode connect verbinden
    • Eine (anonyme) Funktion zu mqtt.on_message zuweisen. Diese Funktion wird immer ausgeführt, wenn eine Nachricht angekommen ist.
    • Mittels subscribe das Thema abonnieren. In diesem Beispiel wird alles `subscribed`.
    • Die Methode loop_forever startet einen Hintergrundthread. D.h. man kann im Programm nebenbei noch andere Sachen erledigen.
      https://www.eclipse.org/paho/index.php…hp#network-loop

    Das topic ist immer ein str (Unicode) und der payload ist immer bytes. D.h. man kann auch binäre Daten übertragen.

    Wenn man mit normalen str arbeiten will, muss der payload decodiert werden: msg.payload.decode().


    Ihr könnt eure C++/Perl/PHP/C#/NodeJs/Java/Bash-Beispiele auch posten.

  • Danke für eure Antworten!

    Das hab ich mittlerweile bei github gefunden:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!