Skip to content

... is a tasks/jobs/rules engine for use in a smarthome environment.

License

Notifications You must be signed in to change notification settings

rosenloecher-it/worker-bunch

Repository files navigation

Worker-Bunch

... is a tasks/jobs/rules engine, primarily intended for use in a smarthome environment.

Worker-Bunch provides a programming infrastructure for creating tasks/jobs/rules with proprietary functionality. These tasks/jobs/rules are called "workers" here. Each worker runs as a separate thread.

The worker base class is supposed to get overwritten. The most functionality goes into 2 functions with limited scope: subscribe_notifications and _work. See dummy_worker.py and main.py.

The following infrastructure parts are already implemented:

  • Starting and stopping the workers
  • Logging
  • Configuration and validation of configuration file (extendable for your job configuration; JSON schema based)
  • Subscriptions to timer and cron events.
  • Subscriptions to MQTT topics and publish MQTT messages. MQTT messages get debounced (configurable time span).
  • Command line arguments

Other characteristics:

  • Runs as Linux service.
  • Additional prepacked is a Postgres and MQTT client. This is a quite opinionated decision due to the special lifecycle of the MQTT client (among others).
  • Ready to use is a database worker, which is fully configurable (cron, sql statements, sql scripts, text replacements). See database_worker.

Usage

Have a look in the app directory or in the separate Worker-Bunch-Sample repository

Note, that the PyPi packages are no longer maintained. Install via git instead:

# example
pip install git+https://github.com/rosenloecher-it/worker-bunch.git@v1.0.5
pip install https://github.com/rosenloecher-it/worker-bunch/archive/v1.0.5.tar.gz

Maintainer & License

MIT © Raul Rosenlöcher

The code is available at GitHub.

About

... is a tasks/jobs/rules engine for use in a smarthome environment.

Resources

License

Stars

Watchers

Forks

Packages

No packages published