This project has been archived by its maintainers, and is no longer receiving any updates.
Εὐρυδίκη/Eurydike [wiki] is a simple event detection. Reacts to above-threshold, below-threshold, and outside value-band.
Part of pelops.
For Users
Installation Core-Functionality
Prerequisites for the core functionality are:
sudo apt install python3 python3-pip sudo pip3 install paho-mqtt pyyaml pelops
Install via pip:
sudo pip3 install eurydike
To update to the latest version add --upgrade as prefix to the pip3 line above.
Install via gitlab (might need additional packages):
git clone git@gitlab.com:pelops/eurydike.git cd eurydike sudo python3 setup.py install
This will install the following shell scripts: * eurydike
The script cli arguments are: * ‘-c’/’–config’ - config file (mandatory) * ‘-v’ - verbose output (optional) * ‘–version’ - show the version number and exit
YAML-Config
A yaml [1] file must contain four root blocks: * mqtt - mqtt-address, mqtt-port, and path to credentials file mqtt-credentials (a file consisting of two entries: mqtt-user, mqtt-password) * logger - which log level and which file to be used * eventdetectors - parameters for the controller and the embedded pid
mqtt:
mqtt-address: localhost
mqtt-port: 1883
mqtt-credentials: ~/credentials.yaml
log-level: INFO
logger:
log-level: DEBUG # DEBUG, INFO, WARNING, ERROR, CRITICAL
log-file: test_eurydike.log
eventdetectors:
- name: above # unqiue name for event detector
type: onthreshold # detector type identifier
comparator: gt # GREATERTHAN/GT/>, LOWERTHAN/LT/<, EQUALTO/==
threshold: 7 # threshold in combintation with comparator and value from topic-sub
topic-sub: /test/value
topic-pub: /test/above
responses: # leave value empty or remove line for no response
# on-violation: event_detected # on detection of a threshold violation send this value to topic-pub
on-restoration: event_ended # on the event of returning to valid values send this value to topic-pub
active: False # entry ignored if set to False
- name: below # unqiue name for event detector
type: onthreshold # detector type identifier
comparator: lowerthan # GREATERTHAN/GT/>, LOWERTHAN/LT/<, EQUALTO/==
threshold: 7 # threshold in combintation with comparator and value from topic-sub
topic-sub: /test/value
topic-pub: /test/below
responses: # leave value empty or remove line for no response
on-violation: event_detected # on detection of a threshold violation send this value to topic-pub
on-restoration: event_ended # on the event of returning to valid values send this value to topic-pub
active: True # entry ignored if set to False
- name: equal # unqiue name for event detector
type: onthreshold # detector type identifier
comparator: == # GREATERTHAN/GT/>, LOWERTHAN/LT/<, EQUALTO/==
threshold: 7 # threshold in combintation with comparator and value from topic-sub
topic-sub: /test/value
topic-pub: /test/equal
responses: # leave value empty or remove line for no response
on-violation: event_detected # on detection of a threshold violation send this value to topic-pub
on-restoration: # on the event of returning to valid values send this value to topic-pub
active: False # entry ignored if set to False
- name: outside # unqiue name for event detector
type: onband # detector type identifier
upper-threshold: 8 # upper threshold for on band detection
lower-threshold: 7 # lower threshold for on band detection
topic-sub: /test/value
topic-pub: /test/band
responses: # leave value empty or remove line for no response
on-violation: event_detected # on detection of a threshold violation send this value to topic-pub
on-restoration: event_ended # on the event of returning to valid values send this value to topic-pub
active: True # entry ignored if set to False
systemd
add systemd example.
For Developers
Getting Started
The project consists of two main modules:
eventdetectionmanager - manages all configured event detectors
abstracteventdetector - base class for all event detectors
Todos
… ?
Misc
The code is written for python3 (and tested with python 3.5 on an Raspberry Pi Zero with Raspbian Stretch).
Merge requests / bug reports are always welcome.
Metadata
Release files for Eurydike 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Eurydike-0.1.1.tar.gz | 10.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Eurydike-0.1.1-py3.5.egg | Legacy Egg format | - | - | Details |
Total release size: 44.4 kB
Release files / Eurydike-0.1.1.tar.gz
| Download URL | Eurydike-0.1.1.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1a2fe520525933482e75823a241dcde15979370cc24023c717b72c434623a81
|
|
BLAKE2b-256 checksum How to use checksums |
8e2a428b6381cd94e241343ae9a4c141c60b0ad55c8a0771e43fa10a38e743b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Eurydike-0.1.1-py3.5.egg
| Download URL | Eurydike-0.1.1-py3.5.egg |
|---|---|
| Size | 34.5 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
686765a7cd3c6283408c55aaa68b327acfa955e32da7504c4986d8ef405cbd76
|
|
BLAKE2b-256 checksum How to use checksums |
396a705462284c5028051770729d804acbd7b9fe50cb7a1a8be908d27f3e462f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |