Skip to content

Latest commit

 

History

History
83 lines (61 loc) · 1.71 KB

README.md

File metadata and controls

83 lines (61 loc) · 1.71 KB

MQTT Sentinel

Build Status

Integration between MQTT and services using custom rules. Based on the awesome project mqttwarn.

Installation

pip install mqtt-sentinel

Getting started

1. CLI

# Create a rule -t topic | -o operator | -e equated
$ msentinel add -c your-conf.ini -t "room/temperature" -o ">=" -e "30"

# Run the sentinel
$ msentinel run -c your-conf.ini

# More info
$ msentinel --help

.ini structure

; your-conf.ini

[settings:mqtt]
host      = localhost
port      = 1883
keepalive = 60

;  Optional
;  [settings:rules]
; db_url = sqlite://sentinel.db

[output:mqtt] ; Output Service
host      = localhost
port      = 1883
keepalive = 60
topic     = device123/broadcast/alarms

1.1 Output Services

2. Create applications using the library

# app.py
from sentinel import Sentinel
from sentinel.rules import Rule
from sentinel.output import OutMQTT

sentinel = Sentinel()
output = OutMQTT(host='localhost', port=1883, topic='app/broadcast/alert')

sentinel.set_db()  # Use the default SQLite3 database (sentinel.db)
sentinel.set_output(output)

rule = Rule(
    topic='device123/room/temperature',
    operator=">=",
    equated="31"
)
# If you want create a simple data relay, use:
# rule = Rule(topic='device123/room/temperature')

sentinel.add_rule(rule)
sentinel.start()
$ python app.py
 Starting my watch with 1 workers
 ...