This is a simple Python 3.5+ utility for monitoring Bluetooth Low Energy traffic and to register devices. Thanks to D-Bus, it does not require elevated privileges to be run!
As this project relies on BlueZ, it will only run on Linux systems. The project further requires GLib2, PyGobject (commonly known as python-gi, python-gobject or pygobject, but not packaged on PyPi) and D-Bus.
You can now use
setuptools to install the package:
$ pip install -U git+https://github.com/scipag/btle-sniffer.git
usage: btlesniffer [-h] [-V] [-v] [-d] [-o OUT_PATH] [-i BACKUP_INTERVAL] [-r] [-c] [--threshold-rssi THRESHOLD_RSSI] [--connection-polling-interval CONNECTION_POLLING_INTERVAL] Scan for Bluetooth Low Energy devices and gather information about them. This program will only run on Linux systems. optional arguments: -h, --help show this help message and exit -V, --version display version information and exit -v, --verbose increase the verbosity of the program -d, --debug enable debugging features -o OUT_PATH, --out-path OUT_PATH path to the device registry backup -i BACKUP_INTERVAL, --backup-interval BACKUP_INTERVAL how frequently the device registry backup should be written (in seconds, default 5 s). If set to zero, the backup will be written with every device update. -r, --resume resume from a previous device registry backup (must specify the `-o` option) -c, --connect attempt to connect to all discovered Bluetooth devices --threshold-rssi THRESHOLD_RSSI the lower bound received signal strength (RSSI) at which to attempt to connect to devices (in dBa, default -80 dBa). --connection-polling-interval CONNECTION_POLLING_INTERVAL how frequently the sniffer shall go through the device registry and attempt to establish connections (in seconds, default 5 s).