mqttwarn

A highly configurable MQTT message router, where the routing targets are notification plugins, primarily written in Python.

https://github.com/mqtt-tools/mqttwarn

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

acquisition mosquitto mqtt mqtt-client mqtt-forwarder mqtt-protocol mqtt-publisher mqtt-publishing mqtt-router mqtt-subscriber notification notification-plugin notification-service notifications notifications-plugin transformation

Keywords from Contributors

cryptocurrencies algorithmic-trading freqtrade telegram-bot trade trading-bot
Last synced: 6 months ago · JSON representation ·

Repository

A highly configurable MQTT message router, where the routing targets are notification plugins, primarily written in Python.

Basic Info
Statistics
  • Stars: 972
  • Watchers: 72
  • Forks: 182
  • Open Issues: 48
  • Releases: 0
Topics
acquisition mosquitto mqtt mqtt-client mqtt-forwarder mqtt-protocol mqtt-publisher mqtt-publishing mqtt-router mqtt-subscriber notification notification-plugin notification-service notifications notifications-plugin transformation
Created about 12 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License Citation

README.rst

########
mqttwarn
########

.. image:: https://cloud.githubusercontent.com/assets/2345521/6320105/4dd7a826-bade-11e4-9a61-72aa163a40a9.png

To *warn*, *alert*, or *notify*.

.. image:: https://raw.githubusercontent.com/mqtt-tools/mqttwarn/main/assets/google-definition.jpg


******
Status
******

.. image:: https://github.com/mqtt-tools/mqttwarn/workflows/Tests/badge.svg
    :target: https://github.com/mqtt-tools/mqttwarn/actions?workflow=Tests

.. image:: https://codecov.io/gh/mqtt-tools/mqttwarn/branch/main/graph/badge.svg
    :target: https://codecov.io/gh/mqtt-tools/mqttwarn

.. image:: https://img.shields.io/pypi/pyversions/mqttwarn.svg
    :target: https://pypi.org/project/mqttwarn/

|

.. image:: https://img.shields.io/pypi/l/mqttwarn.svg
    :target: https://pypi.org/project/mqttwarn/

.. image:: https://img.shields.io/pypi/status/mqttwarn.svg
    :target: https://pypi.org/project/mqttwarn/

.. image:: https://img.shields.io/pypi/v/mqttwarn.svg
    :target: https://pypi.org/project/mqttwarn/

.. image:: https://pepy.tech/badge/mqttwarn/month
    :target: https://pepy.tech/project/mqttwarn

|

`GitHub `_
| `PyPI `_
| `Documentation `_
| `Issues `_
| `Changelog `_


*****
About
*****

mqttwarn - subscribe to MQTT topics and notify pluggable services.


Description
===========

*mqttwarn* subscribes to any number of MQTT topics and publishes received
payloads to one or more notification services after optionally applying
sophisticated transformations.

A picture says a thousand words.

.. image:: https://raw.githubusercontent.com/mqtt-tools/mqttwarn/main/assets/mqttwarn.png
    :target: #


Notification service coverage
=============================

*mqttwarn* comes with **over 70 notification handler plugins**, covering a
wide range of notification services and is very open to further contributions.
You can enjoy the alphabetical list of plugins on the `mqttwarn notifier
catalog`_ page.

On top of that, it integrates with the excellent `Apprise`_ notification
library. `Apprise notification services`_ has a complete list of the **80+
notification services** supported by Apprise.



*************
Documentation
*************

The `mqttwarn documentation`_ is the right place to read all about *mqttwarn*'s
features and integrations, and how you can leverage all its framework components
for building custom applications. Its service plugins can be inspected on the
`mqttwarn notifier catalog`_ page.


************
Installation
************

Using pip
=========

Synopsis::

    pip install --upgrade mqttwarn

You can also add support for a specific service plugin::

    pip install --upgrade 'mqttwarn[xmpp]'

You can also add support for multiple services, all at once::

    pip install --upgrade 'mqttwarn[apprise,asterisk,nsca,desktopnotify,tootpaste,xmpp]'

See also: `Installing mqttwarn with pip`_.

OCI container image
===================

For running ``mqttwarn`` on a container infrastructure like Docker or
Kubernetes, corresponding images are automatically published to the
GitHub Container Registry (GHCR).

- ``ghcr.io/mqtt-tools/mqttwarn-standard:latest``
- ``ghcr.io/mqtt-tools/mqttwarn-full:latest``

To learn more about this topic, please follow up reading the `Using the OCI image
with Docker or Podman`_ documentation section.


*************
Configuration
*************

In order to learn how to configure mqttwarn, please head over to the documentation
section about the `mqttwarn configuration`_.


*****
Usage
*****

Interactive service
===================
Just launch ``mqttwarn``::

    # Run mqttwarn
    mqttwarn


To supply a different configuration file or log file, optionally use::

    # Define configuration file
    export MQTTWARNINI=/etc/mqttwarn/acme.ini

    # Define log file
    export MQTTWARNLOG=/var/log/mqttwarn.log

    # Run mqttwarn
    mqttwarn

System daemon
=============

There are different ways to run mqttwarn as a system daemon. There are examples
for systemd, traditional init, OpenRC, and Supervisor_ in the ``etc`` directory
of this repository, for example `supervisor.ini`_ (Supervisor) and
`mqttwarn.service`_ (systemd).

Standalone
==========

In order to directly invoke notification plugins from custom programs, or for
debugging them, see `Running notification plugins standalone`_.

Development sandbox
===================

For hacking on mqttwarn, please install it in development mode, using a
`mqttwarn development sandbox`_ installation.


*******************
Project information
*******************

About
=====
These links will guide you to the source code of *mqttwarn* and its documentation.

- `mqttwarn on GitHub `_
- `mqttwarn on the Python Package Index (PyPI) `_
- `mqttwarn documentation `_


Requirements
============
You will need at least the following components:

* Python 3.x or PyPy 3.x.
* An MQTT broker. We recommend `Eclipse Mosquitto`_.
* For invoking specific service plugins, additional Python modules may be required.
  See ``setup.py`` file.


Contributing
============

We are always happy to receive code contributions, ideas, suggestions
and problem reports from the community.

So, if you would like to contribute, you are most welcome.
Spend some time taking a look around, locate a bug, design issue or
spelling mistake, and then send us a pull request or create an `issue`_.

Thank you in advance for your efforts, we really appreciate any help or feedback.


License
=======

mqttwarn is copyright © 2014-2023 Jan-Piet Mens and contributors. All
rights reserved.

It is and will always be **free and open source software**.

Use of the source code included here is governed by the `Eclipse Public License
2.0 `_, see LICENSE_ file for details. Please also recognize the
licenses of third-party components.


***************
Troubleshooting
***************

If you encounter any problems during setup or operations or if you have further
suggestions, please let us know by `opening an issue on GitHub`_. Thank you
already.


************
Attributions
************

Acknowledgements
================
Thanks to all the contributors of *mqttwarn* who helped to conceive it in one
way or another. You know who you are.

Legal stuff
===========
"MQTT" is a trademark of the OASIS open standards consortium, which publishes the
MQTT specifications. "Eclipse Mosquitto" is a trademark of the Eclipse Foundation.


************
Supported by
************

.. image:: https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg
    :target: https://jb.gg/OpenSourceSupport

Special thanks to the people at JetBrains s.r.o. for supporting us with
excellent development tooling.


----

Have fun!


.. _Apprise: https://github.com/caronc/apprise
.. _Apprise notification services: https://github.com/caronc/apprise/wiki#notification-services
.. _backlog: https://github.com/mqtt-tools/mqttwarn/blob/main/doc/backlog.rst
.. _Eclipse Mosquitto: https://mosquitto.org
.. _EPL-2.0: https://www.eclipse.org/legal/epl-2.0/
.. _hacking: https://github.com/mqtt-tools/mqttwarn/blob/main/doc/hacking.rst
.. _How do your servers talk to you?: https://jpmens.net/2014/04/03/how-do-your-servers-talk-to-you/
.. _Installing mqttwarn with pip: https://mqttwarn.readthedocs.io/en/latest/usage/pip.html
.. _issue: https://github.com/mqtt-tools/mqttwarn/issues/new
.. _LICENSE: https://github.com/mqtt-tools/mqttwarn/blob/main/LICENSE
.. _MQTTwarn\: Ein Rundum-Sorglos-Notifier: https://web.archive.org/web/20140611040637/http://jaxenter.de/news/MQTTwarn-Ein-Rundum-Sorglos-Notifier-171312
.. _mqttwarn configuration: https://mqttwarn.readthedocs.io/en/latest/configure/
.. _mqttwarn development sandbox: https://mqttwarn.readthedocs.io/en/latest/workbench/sandbox.html
.. _mqttwarn documentation: https://mqttwarn.readthedocs.io/
.. _mqttwarn notifier catalog: https://mqttwarn.readthedocs.io/en/latest/notifier-catalog.html
.. _mqttwarn.service: https://github.com/mqtt-tools/mqttwarn/blob/main/etc/mqttwarn.service
.. _opening an issue on GitHub: https://github.com/mqtt-tools/mqttwarn/issues/new
.. _Running notification plugins standalone: https://mqttwarn.readthedocs.io/en/latest/usage/standalone.html
.. _Schwarmalarm using mqttwarn: https://hiveeyes.org/docs/system/schwarmalarm-mqttwarn.html
.. _Supervisor: https://jpmens.net/2014/02/13/in-my-toolbox-supervisord/
.. _supervisor.ini: https://github.com/mqtt-tools/mqttwarn/blob/main/etc/supervisor.ini
.. _Using the OCI image with Docker or Podman: https://mqttwarn.readthedocs.io/en/latest/usage/oci.html

Citation (CITATION.cff)

---
cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.

title: mqttwarn
url: https://mqttwarn.readthedocs.org/
abstract: mqttwarn - subscribe to MQTT topics and notify pluggable services
authors:
  - name: Jan-Piet Mens
    email: jpmens@gmail.com
  - name: Ben Jones
    email: ben.jones12@gmail.com
  - name: Andreas Motl
    email: andreas.motl@panodata.org

date-published: 2014-02-09
date-released: 2023-04-13
type: software
license: EPL
license-url: https://github.com/mqtt-tools/mqttwarn/blob/main/LICENSE
repository-code: https://github.com/mqtt-tools/mqttwarn
keywords:
  - acquisition
  - data
  - engine
  - notification
  - plugins
  - push
  - transformation
  - mosquitto
  - mqtt
  - mqttwarn

GitHub Events

Total
  • Issues event: 3
  • Watch event: 15
  • Issue comment event: 9
  • Push event: 1
  • Pull request event: 1
  • Fork event: 1
Last Year
  • Issues event: 3
  • Watch event: 15
  • Issue comment event: 9
  • Push event: 1
  • Pull request event: 1
  • Fork event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,224
  • Total Committers: 88
  • Avg Commits per committer: 13.909
  • Development Distribution Score (DDS): 0.554
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Andreas Motl a****l@p****g 546
Jan-Piet Mens j****s@g****m 268
Ben Jones b****2@g****m 97
Fabian Affolter m****l@f****h 23
Morten Høybye Frederiksen m****n@m****k 19
Rodney Gitzel r****l@g****m 18
Justin Graham j****m@g****m 14
psyciknz g****b@a****z 13
Michael Brougham j****e@g****m 13
Diogo Gomes d****s@u****t 11
Nyíri Gábor n****i@h****u 9
Christian Kniep c****n@q****g 8
Kevin Siml a****r 8
Rob de Jonge r****e@g****m 8
Ben Jones b****n@w****a 8
Daniel Lindner a****3@g****m 7
clach04 c****4@g****m 7
przemas75 p****5@g****m 7
David d****7@g****m 6
Artem Alexandrov q****l@t****u 5
Dan Langille d****n@l****g 5
Koen Vervloesem k****n@v****u 5
Marcel m****v 5
jfarcher j****r@y****m 4
Philipp Adelt i****o@p****t 4
Matthew Bordignon m****w@b****t 4
Josh Wyse j****h@j****m 4
Bram Hendrickx y****u@e****m 4
joerggollnick g****n@w****e 4
Lennart Buhl g****t@h****e 3
and 58 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 122
  • Total pull requests: 79
  • Average time to close issues: 7 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 37
  • Total pull request authors: 17
  • Average comments per issue: 5.57
  • Average comments per pull request: 2.08
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 1
  • Average time to close issues: 2 days
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 1.67
  • Average comments per pull request: 2.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jpmens (25)
  • matbor (17)
  • sumnerboy12 (14)
  • amotl (13)
  • ghost (6)
  • codebude (3)
  • binarybucks (3)
  • dlangille (2)
  • ChristianKniep (2)
  • zoic21 (2)
  • Matthias84 (2)
  • powermik (2)
  • pdt590 (2)
  • psyciknz (2)
  • cranky-coder (2)
Pull Request Authors
  • amotl (45)
  • fabaff (6)
  • otdftr (4)
  • matbor (4)
  • dgomes (4)
  • gbeine (2)
  • appzer (2)
  • mcdamo (2)
  • sumnerboy12 (2)
  • sigio (1)
  • jpbarraca (1)
  • juzam (1)
  • ChristianKniep (1)
  • jhakonen (1)
  • gumm (1)
Top Labels
Issue Labels
enhancement (30) service plugin (11) help wanted (11) bug (9) documentation (6) feature (3) sandbox-and-shipping (3) question (3) quality (2)
Pull Request Labels
documentation (5) quality (2) service plugin (1) enhancement (1) core (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 214 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 42
  • Total maintainers: 2
pypi.org: mqttwarn

mqttwarn - subscribe to MQTT topics and notify pluggable services

  • Versions: 42
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 214 Last month
Rankings
Stargazers count: 2.1%
Forks count: 3.7%
Dependent packages count: 10.0%
Average: 10.9%
Downloads: 17.1%
Dependent repos count: 21.8%
Maintainers (2)
Last synced: 6 months ago