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

  • 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!

  • 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.

  • @__deets__

    Das mit dem Cross Compiler ist natürlich vollkommen richtig, da ich damit schon bei den Mikrocontrollern arbeite ist dies wohl schon eine Gewohnheitssache für mich.

    Python würde sich hier natürlich wirklich anbieten da es die ganze Sache vereinfacht.

  • Hallo und danke,

    bin schon dabei am Python Grundlagen auffrischen und habe mir paho-MQTT Beispiel angesehen. Ja sieht nicht so schwer aus, auch für einen "Nichtpythonler" :) .... muss ja nicht mit Gewalt C++ sein.


    Mal sehen wie ich voran komme - danke nochmals für das Vorgeben einer sinnvollen Richtung!

  • Je nachdem was genau implementiert werden soll reicht auch bash mit mosquitto_pub und mosquitto_sub.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • 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/i…cs/index.php#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.

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

    Auf dieser Seite finden sich kleine bash Beispiele fuer mosquitto_{pub|sub}.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Danke für eure Antworten!


    Das hab ich mittlerweile bei github gefunden: