Merge branch 'develop' into dev-express-alarm

This commit is contained in:
Bastian Schroll 2017-09-24 12:13:26 +02:00 committed by GitHub
commit d45ff3b197
3 changed files with 93 additions and 175 deletions

View file

@ -1,6 +1,6 @@
# Changelog
### __[Unreleased]__
### __[v2.2.3]__ - unreleased
##### Added
- zuschaltbare POCSAG Multicast-Alarm Funktionalität
##### Changed
@ -30,7 +30,7 @@
Zum schreiben des Changelog's siehe:
http://keepachangelog.com/de/1.0.0/
### __[Unreleased]__
### __[version]__ - date
##### Added
##### Changed
##### Deprecated

View file

@ -16,6 +16,10 @@ In der Zukunft wollen wir die Möglichkeit schaffen, codierte Nachrichten zu ent
:satellite: Python Script to receive and decode German BOS Information with rtl_fm and multimon-NG :satellite:
#### WICHTIG
**Es wird darauf hingewiesen, dass für die Teilnahme am BOS-Funk nur nach den Technischen Richtlinien der BOS zugelassene Funkanlagen verwendet werden dürfen.**
**Der BOS-Funk ist ein nichtöffentlicher mobiler Landfunk. Privatpersonen gehören nicht zum Kreis der berechtigten Funkteilnehmer.** _(Quelle: TR-BOS)_
#### Notice:
The intercept of the German BOS radio is **strictly prohibited** and will be prosecuted. the use is **only authorized** personnel permitted.
The software was developed using the Multimon-NG code, a function in the real operation can not be guaranteed.
@ -23,10 +27,13 @@ The software was developed using the Multimon-NG code, a function in the real op
**Please** only use Code from **master**-Branch - thats **the only stable!**
beta-branch is for beta-test of new features
unless you are developer you can use the develop-Branch - may be unstable!
### Features
##### Implemented features:
**list is not complete!**
- FMS, ZVEI and POCSAG512/1200/2400 decoding and displaying
- Plugin support for easy functional extension
- Filtering double alarms with adjustable time and check width
@ -42,30 +49,12 @@ unless you are developer you can use the develop-Branch - may be unstable!
- NMA Error Handler
- multicastAlarm for transmission optimized networks
##### Features for the future:
- more plugins
- other Ideas per Issues please
### Plugins
If you want to code your own Plugin, see `plugins/README.md`.
##### Implemented plugins:
|Plugin|Function|FMS|ZVEI|POC|
|-----|---------|:-:|:--:|:-:|
|MySQL|insert data into MySQL database|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|httpRequest|send a request with parameter to an URL|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|eMail|send Mails with own text|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|BosMon|send data to BosMon server|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|firEmergency|send data to firEmergency server|:x:|:white_check_mark:|:white_check_mark:|
|jsonSocket|send data as jsonString to a socket server|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|NMA|send data to Notify my Android|:white_check_mark:|:white_check_mark:|:white_check_mark:|
- for more Information to the plugins see `config.ini`
##### Plugins for the Future:
- Ideas per Issues please
please look at the wiki page
### Configuration
@ -106,52 +95,15 @@ Take a look into the parser.php for the parsing functions~~
### Usage
`sudo python boswatch.py -f 85.235M -a FMS ZVEI`
Starts boswatch at frequency 85.235 MHz with the demodulation functions FMS and ZVEI.
Parameter -f/--freq and -a/--demod are required!
Help to all usable parameters with `sudo python boswatch.py -h`
```
usage: boswatch.py [-h] -f FREQ [-d DEVICE] [-e ERROR] -a
{FMS,ZVEI,POC512,POC1200,POC2400}
[{FMS,ZVEI,POC512,POC1200,POC2400} ...] [-s SQUELCH] [-v]
optional arguments:
-h, --help show this help message and exit
-f FREQ, --freq FREQ Frequency you want to listen
-d DEVICE, --device DEVICE Device you want to use (Check with rtl_test)
-e ERROR, --error ERROR Frequency-Error of your device in PPM
-a {FMS,ZVEI,POC512,POC1200,POC2400} [{FMS,ZVEI,POC512,POC1200,POC2400} ...],
--demod {FMS,ZVEI,POC512,POC1200,POC2400} [{FMS,ZVEI,POC512,POC1200,POC2400} ...]
Demodulation functions
-s SQUELCH, --squelch SQUELCH level of squelch
-u, --usevarlog Use '/var/log/boswatch' for logfiles instead of subdir 'log' in BOSWatch directory
-v, --verbose Shows more information
-q, --quiet Shows no information. Only logfiles
```
please look at the wiki page
### Installation
Please follow the instructions written down in the wiki:
https://github.com/Schrolli91/BOSWatch/wiki
You just need to download a single file since the installer manages the whole process except the installation of a webserver and a database.
please look at the wiki page
If you want to use BOSWatch as a daemon, you have to set your
configuration in `service/boswatch.sh` and copy it to `/etc/init.d`.
Then you can start BOSWatch with `sudo /etc/init.d/boswatch.sh start`.
For configuration-details see `service/README.md`.
### Requirements
- RTL_SDR (rtl_fm)
- Multimon-NG
- Python Support
- MySQL Connector for Python (for MySQL-plugin)
Thanks to smith_fms and McBo from Funkmeldesystem.de - Forum for Inspiration and Groundwork!
### Code your own Plugin
See `plugins/README.md`
##### Big thanks
to smith_fms and McBo from Funkmeldesystem.de - Forum for Inspiration and Groundwork!

View file

@ -1,6 +1,17 @@
########################
# BOSWatch Config File #
########################
# ____ ____ ______ __ __ __
# / __ )/ __ \/ ___/ | / /___ _/ /______/ /_
# / __ / / / /\__ \| | /| / / __ / __/ ___/ __ \
# / /_/ / /_/ /___/ /| |/ |/ / /_/ / /_/ /__/ / / /
# /_____/\____//____/ |__/|__/\__,_/\__/\___/_/ /_/
# German BOS Information Script
# configuration file
#
# The intercept of the German BOS radio is strictly
# prohibited and will be prosecuted.
# The use is only authorized personnel permitted!
#
[BOSWatch]
# set loglevel for logfile
@ -31,6 +42,7 @@ processAlarmAsync = 0
# Using RegEx-filter (0 - off | 1 - on)
# filter-configuration in section [Filters]
# if you are using the RegEx filter you must add filter rules to forward alarms
useRegExFilter = 0
# for double check save the last n IDs
@ -51,6 +63,7 @@ doubleFilter_check_msg = 0
# writes the multimon-ng raw data stream into a text file named mm_raw.txt
writeMultimonRaw = 0
[NMAHandler]
# you can use a logging handler for sending logging records to NotifyMyAndroid
# enableHandler (0|1) will enable the NMA handler
@ -79,12 +92,14 @@ idDescribed = 0
# Better use RegEX to verify the correct data
checkCRC = 0
[ZVEI]
# look-up-table for adding a description
# using description (0 - off | 1 - on)
# descriptions are loaded from csv/zvei.csv
idDescribed = 0
[POC]
# some very simple filters:
# Allow only this RICs (empty: allow all, separator ",")
@ -114,6 +129,7 @@ ricd = Unwetter
# Usually sent periodically, separated by comma
netIdent_ric = 0174760, 1398098
[multicastAlarm]
# Configure multicastAlarm if your POCSAG network uses an optimized transmission scheme for alarms with more than one RIC (often found in Swissphone networks).
# The optimized transmission scheme sends a POCSAG telegram with each RIC that needs to be alarmed in a sequence. These telegrams are send without a text message. This sequence is directly followed by a telegram with a special RIC and the text message.
@ -132,16 +148,17 @@ multicastAlarm_delimiter_ric =
# multicastAlarm RIC that is used to send the text message
multicastAlarm_ric =
[Filters]
# RegEX Filter Configuration
# http://www.regexr.com/ - RegEX Test Tool an Documentation
# No Filter for a Typ/Plugin Combination = all Data pass
# INDIVIDUAL_NAME = TYP;DATAFIELD;PLUGIN;FREQUENZ;REGEX
# If RegEX is enabled - only alloewd data will pass!
# INDIVIDUAL_NAME = TYP;DATAFIELD;PLUGIN;FREQUENZ;REGEX
# TYP = the Data Typ (FMS|ZVEI|POC)
# DATAFIELD = the field of the Data Array (see readme.md in plugin folder)
# DATAFIELD = the field of the Data Array (see readme.md in plugin folder)
# PLUGIN = the name of the Plugin to call with this Filter (* for all)
# FREQUENZ = the Frequenz to use the Filter (for more SDR Sticks (* for all))
# REGEX = the RegEX
# FREQUENZ = the Frequenz to use the Filter (for more SDR Sticks (* for all))
# REGEX = the RegEX
# only ZVEI to all plugins with 25### at 85.5MHz
#testfilter = ZVEI;zvei;*;85500000;25[0-9]{3}
@ -166,7 +183,7 @@ Pushover = 0
Telegram = 0
yowsup = 0
# for developing template-module
# for developing - template-module
template = 0
@ -189,36 +206,18 @@ tableSIG = bos_signal
# multiple URLs can be separated by comma
# you can use the following wildcards in your URL as GET params:
# you can use the wildcards in your URL as GET params:
# http://en.wikipedia.org/wiki/Query_string
# %FMS% = FMS Code
# %STATUS% = FMS Status
# %DIR% = Direction of the telegram (0/1)
# %DIRT% = Direction of the telegram (Text-String)
# %TSI% = Tactical Short Information (I-IV)
# %DESCR% = Description from csv-file
# %TIME% = Time (by script)
# %DATE% = Date (by script)
#Wildcards can be used, see end of the file!
#fms_url = http://www.google.de?code=%FMS%&stat=%STATUS%
fms_url =
# %ZVEI% = ZVEI 5-tone Code
# %DESCR% = Description from csv-file
# %TIME% = Time (by script)
# %DATE% = Date (by script)
#Wildcards can be used, see end of the file!
#zvei_url = http://www.google.de?zvei=%ZVEI%
zvei_url =
# %RIC% = POCSAG RIC
# %FUNC% = POCSAG function/Subric (1-4)
# %FUNCCHAR% = POCSAG function/Subric as character (a-d)
# %FUNCTEXT% = POCSAG function/Subric static massage definded in POCSAG section
# %MSG% = Message of the POCSAG telegram
# %BITRATE% = Bitrate of the POCSAG telegram
# %DESCR% = Description from csv-file
# %TIME% = Time (by script)
# %DATE% = Date (by script)
#Wildcards can be used, see end of the file!
#poc_url = http://www.google.de?ric=%RIC%&subric=%FUNC%&msg=%MSG%
poc_url =
@ -243,42 +242,15 @@ to = user@irgendwo, user2@woanders
# normal|urgent|non-urgent
priority = urgent
# %FMS% = FMS Code
# %STATUS% = FMS Status
# %DIR% = Direction of the telegram (0/1)
# %DIRT% = Direction of the telegram (Text-String)
# %TSI% = Tactical Short Information (I-IV)
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %BR% = Insert line wrap (only in message)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
fms_subject = FMS: %FMS%
fms_message = %DATE% %TIME%: %FMS%%BR%Status: %STATUS% - Direction: %DIRT% - TSI: %TSI%
# %ZVEI% = ZVEI 5-tone Code
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %BR% = Insert line wrap (only in message)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
zvei_subject = Alarm: %ZVEI%
zvei_message = %DATE% %TIME%: %ZVEI%
# %RIC% = POCSAG RIC
# %FUNC% = POCSAG function/Subric (1-4)
# %FUNCCHAR% = POCSAG function/Subric als character (a-d)
# %FUNCTEXT% = POCSAG function/Subric static massage definded in POCSAG section
# %MSG% = Message of the POCSAG telegram
# %BITRATE% = Bitrate of the POCSAG telegram
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %BR% = Insert line wrap (only in message)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
poc_subject = Alarm: %RIC%%LPAR%%FUNCCHAR%%RPAR%
poc_message = %DATE% %TIME% - %DESCR%: %MSG%
@ -433,36 +405,13 @@ RICforLocationAPIKey =
# Required if you want to create a map based on location information received with the above RIC.
GoogleAPIKey =
# %FMS% = FMS Code
# %STATUS% = FMS Status
# %DIR% = Direction of the telegram (0/1)
# %DIRT% = Direction of the telegram (Text-String)
# %TSI% = Tactical Short Information (I-IV)
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
FMS_message = %DATE% %TIME%: %FMS%
# %ZVEI% = ZVEI 5-tone Code
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
ZVEI_message = %DATE% %TIME%: %ZVEI%
# %RIC% = POCSAG RIC
# %FUNC% = POCSAG function/Subric (1-4)
# %FUNCCHAR% = POCSAG function/Subric als character (a-d)
# %MSG% = Message of the POCSAG telegram
# %BITRATE% = Bitrate of the POCSAG telegram
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
POC_message = %MSG%
@ -474,36 +423,13 @@ sender =
# password from this number
password=
# %FMS% = FMS Code
# %STATUS% = FMS Status
# %DIR% = Direction of the telegram (0/1)
# %DIRT% = Direction of the telegram (Text-String)
# %TSI% = Tactical Short Information (I-IV)
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
fms_message = %DATE% %TIME%: %FMS%
# %ZVEI% = ZVEI 5-tone Code
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
zvei_message = %DATE% %TIME%: %ZVEI%
# %RIC% = POCSAG RIC
# %FUNC% = POCSAG function/Subric (1-4)
# %FUNCCHAR% = POCSAG function/Subric als character (a-d)
# %MSG% = Message of the POCSAG telegram
# %BITRATE% = Bitrate of the POCSAG telegram
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %LPAR% = (
# %RPAR% = )
#Wildcards can be used, see end of the file!
poc_message = %MSG%
@ -514,3 +440,43 @@ poc_message = %MSG%
[template]
test1 = testString
test2 = 123456
#####################
##### WILDCARDS #####
#####################
##### FMS
# %FMS% = FMS Code
# %STATUS% = FMS Status
# %DIR% = Direction of the telegram (0/1)
# %DIRT% = Direction of the telegram (Text-String)
# %TSI% = Tactical Short Information (I-IV)
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %BR% = Insert line wrap (only in message)
# %LPAR% = (
# %RPAR% = )
##### ZVEI
# %ZVEI% = ZVEI 5-tone Code
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %BR% = Insert line wrap (only in message)
# %LPAR% = (
# %RPAR% = )
##### POCSAG
# %RIC% = POCSAG RIC
# %FUNC% = POCSAG function/Subric (1-4)
# %FUNCCHAR% = POCSAG function/Subric als character (a-d)
# %MSG% = Message of the POCSAG telegram
# %BITRATE% = Bitrate of the POCSAG telegram
# %DESCR% = Description, if description-module is used
# %DATE% = Date (by script)
# %TIME% = Time (by script)
# %BR% = Insert line wrap (only in message)
# %LPAR% = (
# %RPAR% = )