MQTT-Commander

Ich war auf der Suche nach einer Möglichkeit Programme zu starten wenn bestimme MQTT Topics an den Broker übermittelt werden. Eigentlich hätte ich gerne den MQTT-Launcher von JPMens genommen aber leider kann der keine TLS Verschlüsselung. Auch wenn das vielleicht einfach möglich ist, mir fehlen dazu die Python Kenntnisse.

Nach einigem Suchen bin ich auf diesen Beitrag gestoßen.

So könnte also ein Listener aussehen der auf ein Topic horcht und dann einen Befehl ausführt. In diesem Fall: Lege eine Datei mit der Json Payload und einem Zeitstempel an

mosquitto_sub -h your.broker.com -p 8883 --username user -P geheim -t 'jekyll/publish'  --capath /etc/ssl/certs/ \
     | xargs -d$'\n' -L1 bash -c \
     ' touch  /tmp/$0.$(date +%Y%m%d_%H%M%S) '

Ist natürlich nicht so schön zu konfigurieren wie der MQTT-Launcher aber für ein paar Befehle kann man das nehmen.