Python Script to process input data from rtl_fm and multimon-NG - multiple Plugin support
Find a file
JHCD ca82806cf5 add an jsonUDP-plugin
send data via UDP
as a json-string
2015-06-21 18:28:05 +02:00
config add an jsonUDP-plugin 2015-06-21 18:28:05 +02:00
csv new functionality: lookUp description in a given csv-file for FMS, ZVEI and POC 2015-06-05 21:49:51 +02:00
includes small changes in exception-handling 2015-06-14 20:35:04 +02:00
plugins add an jsonUDP-plugin 2015-06-21 18:28:05 +02:00
sql move boswatch.sql 2015-05-31 12:38:35 +02:00
www added POCSAG Support 2015-06-03 18:06:59 +02:00
.gitignore update .gitignore 2015-05-21 09:05:14 +02:00
boswatch.py small changes in documentation 2015-06-14 20:21:21 +02:00
install.sh edit install script 2015-05-16 08:31:02 +02:00
LICENSE Initial commit 2015-04-03 15:48:01 +02:00
plugin_test.py edit plugin_test.py 2015-05-27 12:48:53 +02:00
README.md some small changes... 2015-06-05 09:10:11 +02:00

# BOSWatch

Python Script to receive and decode German BOS Information with rtl_fm and multimon-NG

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.

Please only use Code from master-Branch - thats the only stable!

unless you are developer you can use the develop-Branch - may be unstable!

Features

Implemented features:
  • FMS, ZVEI and POCSAG512/1200/2400 decoding and displaying
  • Plugin support for easy functional extension
  • Filtering double alarms with adjustable time
  • Filtering allowed, denied and range of POCSAG RIC´s
  • Filtering data for each typ/plugin combination with RegEX
  • All configurations in a seperate config file
  • Data validation (plausibility test)
  • Logfiles for better troubleshooting
  • verbose/quiet mode for more/none information
Features for the future:
  • more plugins

###Plugins

Implemented plugins:
  • MySQL (insert data into MySQL database [FMS|ZVEI|POC])

  • httpRequest (send a request with parameter to an URL [FMS|ZVEI|POC])

  • eMail (send Mails [FMS|ZVEI|POC])

  • BosMon (send data to BosMon server [FMS|ZVEI|POC])

  • firEmergency (send data to firEmergency server [ZVEI|POC])

  • for more Information to the plugins see config.ini

Plugins for the Future:
  • Ideas per Issues please

Configuration

boswatch.py

Take a look into the folder /config/ Rename config.template.ini to config.ini In the Section [BOSWatch] you can set double_alarm_time etc. In the Section [Plugins] you can activate or deactivate the Plugins For each plugin that requires configurations, a own Section with his name is available

For the other functions see "Usage" below.

Filtering Functions (RegEX)

For the RegEX filter functions see Section [Filters] http://www.regexr.com/ - RegEX test tool an documentation No filter for a combination typ/plugin = all data will pass

Syntax: INDIVIDUAL_NAME = TYP;DATAFIELD;PLUGIN;FREQUENZ;REGEX (separator ";")

  • TYP = the data typ (FMS|ZVEI|POC)
  • DATAFIELD = the field of the data array (See interface.txt)
  • 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

only ZVEI to all plugins with 25### at 85.5MHz testfilter = ZVEI;zvei;*;85500000;25[0-9]{3}

only POCSAG to MySQL with the text "ALARM:" in the message pocTest = POC;msg;MySQL;*;ALARM:

Web frontend

Put the files in folder /wwww/ into your local webserver folder (f.e. /var/www/). Now you must edit the "config.php" with your userdata to your local database. 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
  -v, --verbose         				Shows more information
  -q, --quiet           				Shows no information. Only logfiles

Installation

You can easy install BOSWatch with the install.sh Script.

  • Download the install.sh in any folder you want.
  • Make it executeable sudo chmod +x install.sh
  • And use the script sudo sh install.sh

Now the script downloads and compile all needed data. At the end you can find BOSWatch in ~/boswatch/ Rename config.template.ini to config.ini and configure In case of an error during the installation, check the logfile in ~/boswatch/install/setup_log.txt

Caution, script don't install a webserver with PHP and MySQL. So you have to make up manually if you want to use MySQL support.

Requirements

  • RTL_SDR (rtl_fm)
  • Multimon-NG
  • Python Support
  • MySQL Connector for Python (for MySQL-plugin)