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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size keenmqtt-0.0.4.tar.gz (6.6 kB) | File type Source | Python version None | Upload date | Hashes View hashes |