node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey ยป



A simple MQTT agent based on node.js that subscribes to a given list of MQTT topics on the specified broker and executes a given shell script/command whenever a message arrives. It can also be used in combination with a Home Automation Framework like Home.Pi


npm install mqtt-exec -g

Start broker

Start the MQTT broker with



Create/Modify configuration "config.json"

  "/home/devices/livingroom/ligh1/value/set":  { "true"  : "sudo /home/pi/rcswitch-pi/sendRev B 1 1", 
                                                 "false" : "sudo /home/pi/rcswitch-pi/sendRev B 1 0" },
  "/home/devices/livingroom/ligh2/value/set":  { "true"  : "sudo /home/pi/rcswitch-pi/sendRev B 3 1", 
                                                 "false" : "sudo /home/pi/rcswitch-pi/sendRev B 3 0"}                     

Start application

Start application with the path to the config file and the URL of the MQTT broker

mqtt-exec -c /path/to/config.json -h mqtt://localhost:1883

You can also set the MQTT broker url as environment variable

export MQTT_BROKER_URL=mqtt://localhost:1883

Simulate the execution of a command

mosquitto_pub -d -t home/devices/light1/value/set -m "true"