BW3-Core/docu/docs/config.md

232 lines
6.8 KiB
Markdown
Raw Normal View History

2019-09-19 14:46:18 +02:00
# <center>Konfiguration</center>
2019-03-09 12:40:10 +01:00
2019-09-18 18:38:17 +02:00
Die Konfiguration von BOSWatch 3 ist im YAML Format abgelegt und wird nachfolgend beschrieben.
2019-03-09 12:40:10 +01:00
Immer wenn für eine Einstellung ein **Default** Wert angegeben ist, muss diese Einstellung nicht
2019-03-10 19:15:05 +01:00
zwingend in die Konfiguration eingetragen werden.
2019-03-09 12:40:10 +01:00
2019-09-19 14:46:18 +02:00
## Client
2019-03-09 12:40:10 +01:00
2019-09-20 12:00:02 +02:00
---
2019-09-19 14:46:18 +02:00
### `client:`
2019-03-10 19:15:05 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|name|Name zur Identifizierung der Client Instanz||
2020-06-29 21:11:07 +02:00
|inputSource|Art der zu nutzenden Input Quelle (`sdr`, `lineIn` oder `PulseAudio`)||
2019-09-20 08:37:17 +02:00
|useBroadcast|Verbindungsdaten per [Broadcast](information/broadcast.md) beziehen|no|
2019-09-20 18:20:07 +02:00
|reconnectDelay|Verzögerung für erneuten Verbindungsversuch zum Server|3|
2019-09-20 18:52:39 +02:00
|sendTries|Anzahl der Sendeversuche eines Pakets|3|
|sendDelay|Verzögerung für einen erneuten Sendeversuch|3|
2019-03-10 19:15:05 +01:00
2019-09-19 14:46:18 +02:00
---
### `server:`
2019-09-18 18:38:17 +02:00
Der Abschnitt `server:` wird nur genutzt, wenn `useBroadcast: no` gesetzt ist.
Ansonsten wird versucht die Verbindungsdaten per Broadcast Paket direkt vom Server zu beziehen.
2019-03-10 19:15:05 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|ip|IP Adresse des Servers|127.0.0.1|
|port|Port des Sever|8080|
2019-09-19 22:27:46 +02:00
**Beispiel:**
2019-09-19 14:46:18 +02:00
```yaml
server:
ip: 10.10.10.2
port: 9123
```
2019-09-20 12:00:02 +02:00
2019-09-19 14:46:18 +02:00
---
### `inputSource:`
Es gibt die Auswahl zwischen `sdr`, `lineIn` oder `PulseAudio` als Input Quelle.
Mit `sdr` wird direkt per **rtl_sdr** die zu empfangende Frequenz an Multimon-NG weitergereicht.
Mit `lineIn` wird eine Quelle die (per **ALSA**) direkt an die Soundkarte angeschlossen ist an Multimon-NG weitergereicht.
Mit `PulseAudio` wird ein PulseAudio-Sink an Multimon-NG weitergereicht, z.B. in Kombination mit [RTLSDR-Airband](https://github.com/szpajder/RTLSDR-Airband) und/oder Docker.
2019-03-10 19:15:05 +01:00
2019-09-19 14:46:18 +02:00
#### `sdr:`
2019-03-10 19:15:05 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|device|rtl_fm Device ID|0|
2019-10-18 22:28:50 +02:00
|frequency|Zu empfangende Frequenz||
2019-03-10 19:15:05 +01:00
|error|Frequenz Abweichung in ppm|0|
2019-10-10 20:55:25 +02:00
|squelch|Einstellung der Rauschsperre|1|
2019-10-18 09:19:13 +02:00
|gain|Verstärkung des Eingangssignals|100|
|fir_size| niedrig leckagearmen Filter|None|
2019-10-21 09:43:25 +02:00
|rtlPath|Pfad zur rtl_fm Binary|rtl_fm|
2019-03-10 19:15:05 +01:00
2019-09-19 22:27:46 +02:00
**Beispiel:**
2019-03-10 19:15:05 +01:00
```yaml
inputSource:
sdr:
device: 0
2019-10-21 09:43:25 +02:00
frequency: 85M
2019-03-10 19:15:05 +01:00
error: 0
2019-10-10 20:55:25 +02:00
squelch: 1
2019-03-10 19:15:05 +01:00
gain: 100
2019-10-21 09:43:25 +02:00
rtlPath: /usr/bin/rtl-fm
2019-03-10 19:15:05 +01:00
```
#### `lineIn:`
|Feld|Beschreibung|Default|
|----|------------|-------|
|device|die device Id der Soundkarte|1|
**Device herausfinden**
Durch eingabe des Befehls `aplay -l` werden alle Soundkarten ausgegeben. Das schaut ungefähr so aus:
```console
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 7/7
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Device [C-Media USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
```
Wir betrachten das letzte Gerät: `card 1: Device [C-Media USB Audio Device], device 0: USB Audio [USB Audio]`
In dem Fall ist das letzte Gerät - `card 1` - unsere USB-Audio Schnittstelle die wir verwenden wollen.
In der Konfiguration wird das Feld `card` nun auf den Wert 1 gesetzt.
Nach dem Typ der Soundkarte steht das device, in diesem Fall `device 0`.
In der Konfiguration wird das Feld `device` nun auf den Wert 0 gesetzt.
**Beispiel:**
```yaml
inputSource:
...
lineIn:
card: 1
device: 0
```
2020-06-29 21:11:07 +02:00
#### `PulseAudio:`
|Feld|Beschreibung|Default|
|----|------------|-------|
|device|Der Sinks-Name der Quelle|boswatch|
**Device herausfinden**
Durch eingabe des Befehls `pacmd list-sinks | grep name:` werden alle Sinks ausgegeben. Beispiel:
```console
bash-5.0# pacmd list-sinks | grep name:
name: <boswatch>
```
In der Konfiguration wird das Feld `device` nun auf den den Namen des gewünschten Sinks gesetzt (ohne spitze Klammern, <>).
**Beispiel:**
```yaml
inputSource:
...
PulseAudio:
device: boswatch
```
2019-09-19 14:46:18 +02:00
---
### `decoder:`
2019-03-10 19:15:05 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|fms|FMS Decoder|no|
|zvei|ZVEI Decoder|no|
|poc512|POCSAG Decoder (Bitrate 512)|no|
|poc1200|POCSAG Decoder (Bitrate 1200)|no|
|poc2400|POCSAG Decoder (Bitrate 2400)|no|
2020-07-13 20:02:00 +02:00
|path|Pfad zur multimon-ng Binary|multimon-ng|
|char|multimon-ng char-Set|not set|
2020-07-09 14:20:16 +02:00
**Beispiel:**
```yaml
decoder:
fms: yes
zvei: yes
poc512: no
poc1200: no
poc2400: yes
2020-07-13 20:02:00 +02:00
path: /opt/multimon/multimon-ng
char: DE
2020-07-09 14:20:16 +02:00
```
2019-03-10 19:15:05 +01:00
---
<h2 id="server-configuration">Server</h2>
2019-03-10 19:24:09 +01:00
Nachfolgend alle Paramater der Server Konfiguration
2019-03-09 12:40:10 +01:00
2019-09-19 14:46:18 +02:00
### `server:`
2019-03-09 12:40:10 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|port|Port auf dem der Server lauscht| 8080
2019-03-09 12:40:10 +01:00
|name|Name zur Identifizierung der Server Instanz||
|useBroadcast|Verbindungsdaten per Broadcast Server bereitstellen|no|
|logging|Aktivieren / Deaktivieren des Schreibens von Statistik-Dateien|False|
2019-03-09 12:40:10 +01:00
2019-09-19 14:46:18 +02:00
---
### `alarmRouter:`
2019-03-09 12:40:10 +01:00
Enthält eine Liste der Router Namen, welche bei einem Alarm direkt gestartet werden sollen.
2019-09-19 22:27:46 +02:00
**Beispiel:**
2019-03-09 12:40:10 +01:00
```yaml
alarmRouter:
2019-09-18 18:38:17 +02:00
- Name des Routers
- ein weiter Router
2019-03-09 12:40:10 +01:00
```
2019-09-19 14:46:18 +02:00
---
### `router:`
2019-10-20 20:16:07 +02:00
Mit den Routern kann der Verarbeitungsweg eines Alarm-Paketes festgelegt werden. Es können beliebig viele Router in Form einer Liste angegeben werden.
2019-03-09 12:40:10 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|name|Name des Routers||
|route|Definiten des Routenverlaufs
2019-09-19 14:46:18 +02:00
#### `route:`
Jeder Router kann eine beliebige Anzahl einzelner Routenpunkte enthalten. Diese werden innerhalb des Routers sequentiel abgearbeitet. Mögliche Typen der Routenpunkte sind dabei ein Modul, ein Plugin oder ein anderer Router. Sie werden ebenfalls in Form einer Liste definiert.
2019-03-09 12:40:10 +01:00
|Feld|Beschreibung|Default|
|----|------------|-------|
|type|Art des Routenpunktes (module, plugin, router)||
2019-10-25 11:12:41 +02:00
|res|Zu ladende Resource (Siehe entsprechende Kapitel)||
|name|Optionaler Name des Routenpunktes|gleich wie Resource|
2019-09-20 18:20:07 +02:00
|config|Konfigurationseinstellungen des Routenpunktes (Siehe entsprechende Kapitel)||
2019-03-09 12:40:10 +01:00
2019-09-19 22:27:46 +02:00
**Beispiel:**
2019-03-09 12:40:10 +01:00
```yaml
router:
- name: Router 1
route:
- type: module
2019-10-25 11:12:41 +02:00
res: filter.modeFilter
name: Filter Fms/Zvei
2019-03-09 12:40:10 +01:00
config:
allowed:
- fms
2019-03-10 19:15:05 +01:00
```
---
2019-09-19 22:27:46 +02:00
## Module/Plugins
2019-03-10 19:15:05 +01:00
2019-10-21 09:43:25 +02:00
Die möglichen Einstellungen der einzelnen Module und Plugins sind im jeweiligen Kapitel aufgelistet.
---
## Logging
Um den Datenträger, auf dem Boswatch läuft, zu schützen ist das Logging in
Dateien standartmäßig auf Fehlermeldungen begrenzt.
In den Dateien `logger_client.ini` bzw `logger_server.ini` kann dies
entsprechend im Bereich `handler_file` unter `level=` angepasst werden.
Das Schreiben einer Statistik-Datei, welche die Durchläufe aller Module
und Plugins dokumentiert, kann in der Server-Konfiguration über den Parameter
`logging` aktiviert werden.
(siehe [Server-Konfiguration](#server-configuration))