mqttwarn backlog#

Iteration +1#

Next#

Bugs#

Features#

  • [o] Start even when MQTT broker is not available

Maintenance#

  • [o] mqttwarn/util.py:5: DeprecationWarning: the imp module is deprecated in favour of importlib

  • [o] pytest-mqtt: Truncate message output

  • [o] Remove deprecated mqttwarn.services.apprise

Documentation » Tech#

Documentation » Content#

Iteration +2#

Iteration +3#

  • [o] Refactor the mqttwarn make-config|make-udf machinery into a mqttwarn init-style thing. Proposal:

    # Create folder .mqttwarn with minimal configuration (config.ini, udf.py)
    mqttwarn init
    
    # Create folder .mqttwarn with configuration from named preset "hiveeyes" (hiveeyes.ini, hiveeyes.py, hiveeyes-alert.j2)
    mqttwarn init --preset=hiveeyes
    
    # Create folder .mqttwarn with configuration from named preset "homie" (homie.ini, homie.py)
    mqttwarn init --preset=homie
    

Goals for 1.0.0#

  • [o] Make mqttwarn completely unicode-safe

  • [o] Make mqttwarn --plugin=log --options= obtain JSON data from STDIN

  • [o] Translate documentation into reStructuredText format, render it using Sphinx and optionally publish to readthedocs.org.

  • [o] Add support for Python 3

  • [o] Add activity indicator for running a) interactively (snappy) or b) daemonized (in interval). Display “tps” and general activity on a per-message basis.

Goals for 2.0.0#

  • [o] Idea: What if we could reuse the notification plugins in the context of a heronotify entrypoint?

  • [o] Idea: It would be cool if mqttwarn could offer some kind of plugin autoconfiguration mechanism similar to Munin’s autoconf and suggest features. So, let’s pretend invoking:

      mqttwarn --plugin=telegram --suggest-config
    
    would offer this snippet on STDOUT for convenient configuration on your fingertips::
    
      [config:telegram]
      timeout = 60
      parse_mode = 'Markdown'
      token = 'mmmmmmmmm:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
      use_chat_id = False
      targets = {
         #        First Name or @username or #chat_id
         'j01' : [ 'First Name' ],
         'j02' : [ '@username' ],
         'j03' : [ '#chat_id' ]
      }
    
    My proposal would be to add this mqttwarn in the most possible KISS-style. There should/might be an additional
    per-plugin function called ``suggest_config()`` à la::
    
      def suggest_config():
          snippet = """
          ...
          """
          return snippet
    
  • [o] Think about adding further support for plugins, e.g. for provisioning databases appropriately, see also https://github.com/mqtt-tools/mqttwarn/issues/283

  • [o] Configuration and source tree file watcher like pserve ... --reload