A simple Python republisher to help organize topics
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
tests
LICENSE
README
map.csv
mqtt-republisher.cfg.example
mqtt-republisher.default
mqtt-republisher.init
mqtt-republisher.py
setup.py

README

SUMMARY
=======

A quick python script to accept incoming MQTT payloads under the topic of /raw/, and look them up in a table for republishing under a logical topic name

It stems from a suggestion by Robert at http://blog.hekkers.net/2012/09/18/mqtt-about-dumb-sensors-topics-and-clean-code/ to try and organize disparate sources into one logical hierarchy. 

Anything that is published under /raw/ but does not match anything in the map gets republished with /unknown/ prepended to the topic.

Some examples of source data I have...

/raw/flat.vpn.glasgownet.com/ups/voltage -> /bishopbriggs/gordonhouse/electricity/voltage
/raw/flat.vpn.glasgownet.com/meterpulsecounter/watts -> /bishopbriggs/gordonhouse/electricity/watts
/raw/weather1.vpn.glasgownet.com/weather/outside_temp -> /milngavie/parentshouse/garden/temperature
/raw/weather1.vpn.glasgownet.com/weather/inside_temp -> /milngavie/parentshouse/sunlounge/temperature
/raw/wmlp1000/apci/core_temp -> /mobile/wmlp1000/cpu_temp

INSTALL
=======

mkdir /usr/local/mqtt-republisher/ /etc/mqtt-republisher/
cd /usr/local/
git clone git://github.com/kylegordon/mqtt-republisher.git
cp mqtt-republisher.init /etc/init.d/mqtt-republisher
cp map.csv /etc/mqtt-republisher/
cp mqtt-republisher.cfg.example /etc/mqtt-republisher/mqtt-republisher.cfg
update-rc.d mqtt-republisher defaults
cp mqtt-republisher.default /etc/default/mqtt-republisher

Edit /etc/mqtt-republisher/map.csv and /etc/mqtt-republisher/mqtt-republisher.cfg to suit, and then

/etc/init.d/mqtt-republisher start