{"id":13473273,"url":"https://github.com/mqtt-tools/mqttwarn","last_synced_at":"2025-12-18T02:49:56.224Z","repository":{"id":13967366,"uuid":"16667903","full_name":"mqtt-tools/mqttwarn","owner":"mqtt-tools","description":"A highly configurable MQTT message router, where the routing targets are notification plugins, primarily written in Python.","archived":false,"fork":false,"pushed_at":"2025-01-21T22:14:51.000Z","size":3110,"stargazers_count":974,"open_issues_count":48,"forks_count":182,"subscribers_count":68,"default_branch":"main","last_synced_at":"2025-11-27T18:46:26.648Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://mqttwarn.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mqtt-tools.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-02-09T14:32:08.000Z","updated_at":"2025-11-22T07:15:08.000Z","dependencies_parsed_at":"2024-01-05T01:22:04.076Z","dependency_job_id":"6eeace04-0a14-48ec-b3c7-35ae76eb2017","html_url":"https://github.com/mqtt-tools/mqttwarn","commit_stats":{"total_commits":1223,"total_committers":92,"mean_commits":"13.293478260869565","dds":0.60670482420278,"last_synced_commit":"9d61fc59bca6cbee88d6b46f00de4076764cd0b0"},"previous_names":["jpmens/mqttwarn"],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/mqtt-tools/mqttwarn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqtt-tools%2Fmqttwarn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqtt-tools%2Fmqttwarn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqtt-tools%2Fmqttwarn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqtt-tools%2Fmqttwarn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mqtt-tools","download_url":"https://codeload.github.com/mqtt-tools/mqttwarn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqtt-tools%2Fmqttwarn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27789889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-18T02:00:09.725Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"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"],"created_at":"2024-07-31T16:01:02.292Z","updated_at":"2025-12-18T02:49:56.209Z","avatar_url":"https://github.com/mqtt-tools.png","language":"Python","funding_links":[],"categories":["Python","others"],"sub_categories":[],"readme":"########\nmqttwarn\n########\n\n.. image:: https://cloud.githubusercontent.com/assets/2345521/6320105/4dd7a826-bade-11e4-9a61-72aa163a40a9.png\n\nTo *warn*, *alert*, or *notify*.\n\n.. image:: https://raw.githubusercontent.com/mqtt-tools/mqttwarn/main/assets/google-definition.jpg\n\n\n******\nStatus\n******\n\n.. image:: https://github.com/mqtt-tools/mqttwarn/workflows/Tests/badge.svg\n    :target: https://github.com/mqtt-tools/mqttwarn/actions?workflow=Tests\n\n.. image:: https://codecov.io/gh/mqtt-tools/mqttwarn/branch/main/graph/badge.svg\n    :target: https://codecov.io/gh/mqtt-tools/mqttwarn\n\n.. image:: https://img.shields.io/pypi/pyversions/mqttwarn.svg\n    :target: https://pypi.org/project/mqttwarn/\n\n|\n\n.. image:: https://img.shields.io/pypi/l/mqttwarn.svg\n    :target: https://pypi.org/project/mqttwarn/\n\n.. image:: https://img.shields.io/pypi/status/mqttwarn.svg\n    :target: https://pypi.org/project/mqttwarn/\n\n.. image:: https://img.shields.io/pypi/v/mqttwarn.svg\n    :target: https://pypi.org/project/mqttwarn/\n\n.. image:: https://pepy.tech/badge/mqttwarn/month\n    :target: https://pepy.tech/project/mqttwarn\n\n|\n\n`GitHub \u003chttps://github.com/mqtt-tools/mqttwarn\u003e`_\n| `PyPI \u003chttps://pypi.org/project/mqttwarn/\u003e`_\n| `Documentation \u003chttps://mqttwarn.readthedocs.io\u003e`_\n| `Issues \u003chttps://github.com/mqtt-tools/mqttwarn/issues\u003e`_\n| `Changelog \u003chttps://github.com/mqtt-tools/mqttwarn/blob/main/CHANGES.rst\u003e`_\n\n\n*****\nAbout\n*****\n\nmqttwarn - subscribe to MQTT topics and notify pluggable services.\n\n\nDescription\n===========\n\n*mqttwarn* subscribes to any number of MQTT topics and publishes received\npayloads to one or more notification services after optionally applying\nsophisticated transformations.\n\nA picture says a thousand words.\n\n.. image:: https://raw.githubusercontent.com/mqtt-tools/mqttwarn/main/assets/mqttwarn.png\n    :target: #\n\n\nNotification service coverage\n=============================\n\n*mqttwarn* comes with **over 70 notification handler plugins**, covering a\nwide range of notification services and is very open to further contributions.\nYou can enjoy the alphabetical list of plugins on the `mqttwarn notifier\ncatalog`_ page.\n\nOn top of that, it integrates with the excellent `Apprise`_ notification\nlibrary. `Apprise notification services`_ has a complete list of the **80+\nnotification services** supported by Apprise.\n\n\n\n*************\nDocumentation\n*************\n\nThe `mqttwarn documentation`_ is the right place to read all about *mqttwarn*'s\nfeatures and integrations, and how you can leverage all its framework components\nfor building custom applications. Its service plugins can be inspected on the\n`mqttwarn notifier catalog`_ page.\n\n\n************\nInstallation\n************\n\nUsing pip\n=========\n\nSynopsis::\n\n    pip install --upgrade mqttwarn\n\nYou can also add support for a specific service plugin::\n\n    pip install --upgrade 'mqttwarn[xmpp]'\n\nYou can also add support for multiple services, all at once::\n\n    pip install --upgrade 'mqttwarn[apprise,asterisk,nsca,desktopnotify,tootpaste,xmpp]'\n\nSee also: `Installing mqttwarn with pip`_.\n\nOCI container image\n===================\n\nFor running ``mqttwarn`` on a container infrastructure like Docker or\nKubernetes, corresponding images are automatically published to the\nGitHub Container Registry (GHCR).\n\n- ``ghcr.io/mqtt-tools/mqttwarn-standard:latest``\n- ``ghcr.io/mqtt-tools/mqttwarn-full:latest``\n\nTo learn more about this topic, please follow up reading the `Using the OCI image\nwith Docker or Podman`_ documentation section.\n\n\n*************\nConfiguration\n*************\n\nIn order to learn how to configure mqttwarn, please head over to the documentation\nsection about the `mqttwarn configuration`_.\n\n\n*****\nUsage\n*****\n\nInteractive service\n===================\nJust launch ``mqttwarn``::\n\n    # Run mqttwarn\n    mqttwarn\n\n\nTo supply a different configuration file or log file, optionally use::\n\n    # Define configuration file\n    export MQTTWARNINI=/etc/mqttwarn/acme.ini\n\n    # Define log file\n    export MQTTWARNLOG=/var/log/mqttwarn.log\n\n    # Run mqttwarn\n    mqttwarn\n\nSystem daemon\n=============\n\nThere are different ways to run mqttwarn as a system daemon. There are examples\nfor systemd, traditional init, OpenRC, and Supervisor_ in the ``etc`` directory\nof this repository, for example `supervisor.ini`_ (Supervisor) and\n`mqttwarn.service`_ (systemd).\n\nStandalone\n==========\n\nIn order to directly invoke notification plugins from custom programs, or for\ndebugging them, see `Running notification plugins standalone`_.\n\nDevelopment sandbox\n===================\n\nFor hacking on mqttwarn, please install it in development mode, using a\n`mqttwarn development sandbox`_ installation.\n\n\n*******************\nProject information\n*******************\n\nAbout\n=====\nThese links will guide you to the source code of *mqttwarn* and its documentation.\n\n- `mqttwarn on GitHub \u003chttps://github.com/mqtt-tools/mqttwarn\u003e`_\n- `mqttwarn on the Python Package Index (PyPI) \u003chttps://pypi.org/project/mqttwarn/\u003e`_\n- `mqttwarn documentation \u003chttps://mqttwarn.readthedocs.io/\u003e`_\n\n\nRequirements\n============\nYou will need at least the following components:\n\n* Python 3.x or PyPy 3.x.\n* An MQTT broker. We recommend `Eclipse Mosquitto`_.\n* For invoking specific service plugins, additional Python modules may be required.\n  See ``setup.py`` file.\n\n\nContributing\n============\n\nWe are always happy to receive code contributions, ideas, suggestions\nand problem reports from the community.\n\nSo, if you would like to contribute, you are most welcome.\nSpend some time taking a look around, locate a bug, design issue or\nspelling mistake, and then send us a pull request or create an `issue`_.\n\nThank you in advance for your efforts, we really appreciate any help or feedback.\n\n\nLicense\n=======\n\nmqttwarn is copyright © 2014-2023 Jan-Piet Mens and contributors. All\nrights reserved.\n\nIt is and will always be **free and open source software**.\n\nUse of the source code included here is governed by the `Eclipse Public License\n2.0 \u003cEPL-2.0_\u003e`_, see LICENSE_ file for details. Please also recognize the\nlicenses of third-party components.\n\n\n***************\nTroubleshooting\n***************\n\nIf you encounter any problems during setup or operations or if you have further\nsuggestions, please let us know by `opening an issue on GitHub`_. Thank you\nalready.\n\n\n************\nAttributions\n************\n\nAcknowledgements\n================\nThanks to all the contributors of *mqttwarn* who helped to conceive it in one\nway or another. You know who you are.\n\nLegal stuff\n===========\n\"MQTT\" is a trademark of the OASIS open standards consortium, which publishes the\nMQTT specifications. \"Eclipse Mosquitto\" is a trademark of the Eclipse Foundation.\n\n\n************\nSupported by\n************\n\n.. image:: https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg\n    :target: https://jb.gg/OpenSourceSupport\n\nSpecial thanks to the people at JetBrains s.r.o. for supporting us with\nexcellent development tooling.\n\n\n----\n\nHave fun!\n\n\n.. _Apprise: https://github.com/caronc/apprise\n.. _Apprise notification services: https://github.com/caronc/apprise/wiki#notification-services\n.. _backlog: https://github.com/mqtt-tools/mqttwarn/blob/main/doc/backlog.rst\n.. _Eclipse Mosquitto: https://mosquitto.org\n.. _EPL-2.0: https://www.eclipse.org/legal/epl-2.0/\n.. _hacking: https://github.com/mqtt-tools/mqttwarn/blob/main/doc/hacking.rst\n.. _How do your servers talk to you?: https://jpmens.net/2014/04/03/how-do-your-servers-talk-to-you/\n.. _Installing mqttwarn with pip: https://mqttwarn.readthedocs.io/en/latest/usage/pip.html\n.. _issue: https://github.com/mqtt-tools/mqttwarn/issues/new\n.. _LICENSE: https://github.com/mqtt-tools/mqttwarn/blob/main/LICENSE\n.. _MQTTwarn\\: Ein Rundum-Sorglos-Notifier: https://web.archive.org/web/20140611040637/http://jaxenter.de/news/MQTTwarn-Ein-Rundum-Sorglos-Notifier-171312\n.. _mqttwarn configuration: https://mqttwarn.readthedocs.io/en/latest/configure/\n.. _mqttwarn development sandbox: https://mqttwarn.readthedocs.io/en/latest/workbench/sandbox.html\n.. _mqttwarn documentation: https://mqttwarn.readthedocs.io/\n.. _mqttwarn notifier catalog: https://mqttwarn.readthedocs.io/en/latest/notifier-catalog.html\n.. _mqttwarn.service: https://github.com/mqtt-tools/mqttwarn/blob/main/etc/mqttwarn.service\n.. _opening an issue on GitHub: https://github.com/mqtt-tools/mqttwarn/issues/new\n.. _Running notification plugins standalone: https://mqttwarn.readthedocs.io/en/latest/usage/standalone.html\n.. _Schwarmalarm using mqttwarn: https://hiveeyes.org/docs/system/schwarmalarm-mqttwarn.html\n.. _Supervisor: https://jpmens.net/2014/02/13/in-my-toolbox-supervisord/\n.. _supervisor.ini: https://github.com/mqtt-tools/mqttwarn/blob/main/etc/supervisor.ini\n.. _Using the OCI image with Docker or Podman: https://mqttwarn.readthedocs.io/en/latest/usage/oci.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqtt-tools%2Fmqttwarn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmqtt-tools%2Fmqttwarn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqtt-tools%2Fmqttwarn/lists"}