A simple Python republisher to help organize topics
Python
Permalink
Failed to load latest commit information.
tests
LICENSE Added licence Dec 3, 2012
README Updated to include sample config Sep 28, 2012
map.csv
mqtt-republisher.cfg.example Put DEBUG back into config file, and inverted debug logic Sep 28, 2012
mqtt-republisher.default
mqtt-republisher.init Fixed up start-stop-daemon usage Sep 25, 2012
mqtt-republisher.py
setup.py First attempt at a setup.py Oct 1, 2012

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