mirror of
https://github.com/Schrolli91/BOSWatch.git
synced 2025-12-06 07:42:03 +01:00
97 lines
2.5 KiB
Markdown
97 lines
2.5 KiB
Markdown
### How to Code your own plugin:
|
|
|
|
More information and a little Tutorial coming soon!
|
|
|
|
### 1. Plugin template
|
|
##### 1.1 General
|
|
You can find a little template plugin file in `plugins/template/template.py`
|
|
|
|
##### 1.2 Plugin Init `.onLoad()`
|
|
This `.onLoad()` routine is called one time for initialize the plugin
|
|
|
|
##### 1.3 Plugin call `.run()`
|
|
This `.run()` routine is called every time an alarm comes in
|
|
|
|
|
|
### 2. Use Global Logging
|
|
##### 2.1 Init and Use
|
|
First you must import the logging module
|
|
```python
|
|
import logging # Global logger
|
|
```
|
|
Now you can send log messages with:
|
|
|
|
```python
|
|
logging.LOGLEVEL("MESSAGE")
|
|
```
|
|
You must replace the word `LOGLEVEL` with one if the following `debug`, `info`, `warning`, `error`, `exception` or `critical`
|
|
|
|
To use the right loglevel see next section `2.2 Choose right Loglevel`
|
|
|
|
##### 2.2 Choose right Loglevel
|
|
`debug`
|
|
all messages to find errors and for the internal program flow
|
|
|
|
`info`
|
|
messages that serve only to inform the user
|
|
|
|
`warning`
|
|
|
|
|
|
`error`
|
|
error does not lead to the end of boswatch
|
|
|
|
`Exception`
|
|
|
|
`critical`
|
|
errors leading to the end of boswatch immediate - in plugins not allowed
|
|
|
|
|
|
### 3. Use config file
|
|
##### 3.1 Own configuration in config.ini
|
|
First you must set a new Section in `config.ini`
|
|
A section is between brackets. Its recommended to give the section the same name as the plugin. `[SECTION_NAME]`
|
|
|
|
Now you can an set a unlimited number of options with its own value in these format: `OPTION = VALUE`.
|
|
|
|
Here is the sample from the template plugin:
|
|
```python
|
|
[template]
|
|
test1 = testString
|
|
test2 = 123456
|
|
```
|
|
|
|
##### 3.2 Read data from config.ini
|
|
To read yout configuration data you must import the `globals.py` where the global config-object is located:
|
|
```python
|
|
from includes import globals # Global variables
|
|
```
|
|
|
|
Now you can get your configration data with:
|
|
```python
|
|
VALUE = globals.config.get("SECTION", "OPTION") #Gets any value
|
|
```
|
|
or better, use this:
|
|
```python
|
|
VALUE = globals.config.getint("SECTION", "OPTION") #Value must be an Integer
|
|
VALUE = globals.config.getfloat("SECTION", "OPTION") #Value must be an Float
|
|
VALUE = globals.config.getboolean("SECTION", "OPTION") #Value must be an Boolean
|
|
```
|
|
|
|
|
|
### 4. Global helper functions
|
|
##### 4.1 timeHandler.py
|
|
##### 4.2 wildcardHandler.py
|
|
|
|
|
|
### 5. Process the data from BOSWatch
|
|
Three parameters are passed during the alarm to the .run() method
|
|
|
|
##### 5.1 typ
|
|
Thats the function of the alarm. Possible values are **FMS**, **ZVEI** or **POC**
|
|
|
|
##### 5.2 freq
|
|
The reception frequency of the tuner in Hz
|
|
|
|
##### 5.3 data[ ]
|