An MQTT client which will send configured MQTT messages to keen IO as events for later analysis.
Project description
keenmqtt
A MQTT client which will send configured MQTT messages to keen IO as events for later analysis.
The problem
IoT data platforms are often a big investment in time and sometimes money, so often a simple MQTT set up is used. This should not prevent one from being able to perform historical analysis of data points.
The solution
keenmqtt is a simple bridge which will listen for specified MQTT messages and log them on your KeenIO project. This complete history of events will allow you to:
Create graphs of old data, such as temperature.
Use this data to refine your system.
Display this data to your users.
keenmqtt can be run as a standalone daemon, or used in a python program.
Installation
pip install keenmqtt
Or clone/download the repo, run python setup.py install in the root.
Usage
Command Line
Running the stand alone package requires a config file, see example/config.yaml for a template.
After installing, run the following to log events:
keenmqtt -c config.yaml
In your program
keenMQTT has been specifically designed so that almost any part of the pipeline can be overriden or customised.
The source is well documented, see readthedocs
Example: Custom payload formats As an example; if you had a sensor which publishes an ascii format sensor reading, you can define a custom payload decoder for topics which match that sensor value as follows:
from keenmqtt import KeenMQTT
class CustomDecoder(KeenMQTT):
def decode_payload(self, topic, payload):
"""Decode a plain ASCII format sensor reading"""
if 'humidity' in payload:
event = {
"value": int(payload)
}
else:
#Assume default JSON encoding
event = KeenMQTT.decode_payload(self, topic, payload)
return event
Contributing
Fork it!
Create your feature branch: git checkout -b my-new-feature
Commit your changes: git commit -am 'Add some feature'
Push to the branch: git push origin my-new-feature
Submit a pull request
History
0.0.1: Working version of the CLI app.
Credits
Written by Ben Howes & Richard Webb of Zoetrope
With thanks to:
KeenIO for a super service.
Eclipse Paho for a great MQTT client.
License
MIT Licence
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.