I'm trying to "IoT-up" my house, and thought MQTT would be a good distributer for data to different services. I recently set up temperature+humidity sensors, and wanted to graph that data. Grafana+InfluxDB seemed like a good choice, but getting data from MQTT to InfluxDB seemed like a hassle with the available tools, so I wrote a short bash script to grab the data + send it to InfluxDB: #!/bin/bash # Global vars INFLUXDBHOST="localhost" INFLUXDBPORT=8086 INFLUXDBNAME="mqtt" MQTTHOST="127.0.0.1" # Fetch the data, insert the data, do some stuff. mosquitto_sub -v -t '#' -h $MQTTHOST | while read line; do echo "`date` - Got: $line" # Get vars SENSORNAME=`echo $line | cut -d'/' -f3 | sed 's/ /\\\ /g'` SENSORTYPE=`echo $line | cut -d'/' -f5 | awk {'print $1'}` SENSORDATA=`echo $line | awk {'print $NF'} # Insert data to influxdb curl -XPOST "http://$INFLUXDBHOST:$INFLUXDBPORT/write?db=$INFLUXDBNAME" --data-binary "$SENSORTYPE,sensor=$SENSORNAME value=$SENSORDATA" done Data is fetched via. mosquitto_sub like this (as seen in the script above): biggi@datbox:~$ mosquitto_sub -v -t '/sensor/#' -h 127.0.0.1 /sensor/ESP8266-538530/data/temperature 20.50 /sensor/ESP8266-538530/data/humidity 78.50 /sensor/ESP8266-1456529/data/temperature 20.80 /sensor/ESP8266-1456529/data/humidity 74.60 /sensor/ESP8266-538530/data/temperature 20.50 /sensor/ESP8266-538530/data/humidity 78.40 /sensor/ESP8266-1456529/data/temperature 20.80 /sensor/ESP8266-1456529/data/humidity 74.60 So /sensor//data/ . Without "-v", you don't get the sensor name, just a value, so that is important to add.