James Smith 63b12e7b43 Add rtl_433 sensor decoding and UI improvements
Features:
- Add 433MHz sensor decoding via rtl_433 integration
- Add mode tabs to switch between Pager and 433MHz modes
- Add sensor data display with device model, readings
- Add separate stats for sensors (readings count, unique devices)
- Add favicon
- Add audio alerts, export (CSV/JSON), signal meter, waterfall display
- Add auto-restart on frequency change
- Add relative timestamps

UI:
- Add author credit (smittix) to header
- Fix tool status alignment with grid layout
- Update stats display to switch with mode tabs

Docs:
- Update README with rtl_433 installation and usage
- Add "What is INTERCEPT?" section explaining front-end purpose
- Add author section and badge
- Update LICENSE copyright

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 15:25:48 +00:00
2025-12-19 14:13:52 +00:00

INTERCEPT

Python 3.7+ MIT License Platform Author

Signal Intelligence

A sleek, modern web-based front-end for RTL-SDR signal decoding tools.
Provides a unified interface for multimon-ng (POCSAG/FLEX) and rtl_433 (433MHz sensors).

Screenshot


What is INTERCEPT?

INTERCEPT is a web-based front-end that provides a unified, modern interface for popular RTL-SDR signal decoding tools:

  • rtl_fm + multimon-ng - For decoding POCSAG and FLEX pager signals
  • rtl_433 - For decoding 433MHz ISM band devices (weather stations, sensors, etc.)

Instead of running command-line tools manually, INTERCEPT handles the process management, output parsing, and presents decoded data in a clean, real-time web interface.


Features

Pager Decoding

  • Real-time decoding of POCSAG (512/1200/2400) and FLEX protocols
  • Customizable frequency presets stored in browser
  • Auto-restart on frequency change while decoding

433MHz Sensor Decoding

  • 200+ device protocols supported via rtl_433
  • Weather stations - temperature, humidity, wind, rain
  • TPMS - Tire pressure monitoring sensors
  • Doorbells, remotes, and IoT devices
  • Smart meters and utility monitors

General

  • Web-based interface - no desktop app needed
  • Live message streaming via Server-Sent Events (SSE)
  • Audio alerts with mute toggle
  • Message export to CSV/JSON
  • Signal activity meter and waterfall display
  • Message logging to file with timestamps
  • RTL-SDR device detection and selection
  • Configurable gain and PPM correction

Requirements

Hardware

  • RTL-SDR compatible dongle (RTL2832U based)

Software

  • Python 3.7+
  • Flask
  • rtl-sdr tools (rtl_fm)
  • multimon-ng (for pager decoding)
  • rtl_433 (for 433MHz sensor decoding)

Installation

1. Install RTL-SDR tools

macOS (Homebrew):

brew install rtl-sdr

Ubuntu/Debian:

sudo apt-get install rtl-sdr

Arch Linux:

sudo pacman -S rtl-sdr

2. Install multimon-ng

macOS (Homebrew):

brew install multimon-ng

Ubuntu/Debian:

sudo apt-get install multimon-ng

From source:

git clone https://github.com/EliasOenal/multimon-ng.git
cd multimon-ng
mkdir build && cd build
cmake ..
make
sudo make install

3. Install rtl_433 (optional, for 433MHz sensors)

macOS (Homebrew):

brew install rtl_433

Ubuntu/Debian:

sudo apt-get install rtl-433

From source:

git clone https://github.com/merbanan/rtl_433.git
cd rtl_433
mkdir build && cd build
cmake ..
make
sudo make install

4. Install Python dependencies

pip install -r requirements.txt

5. Clone and run

git clone https://github.com/yourusername/intercept.git
cd intercept
python3 intercept.py

Open your browser to http://localhost:5050

Usage

  1. Select Device - Choose your RTL-SDR device from the dropdown
  2. Set Frequency - Enter a frequency in MHz or use a preset
  3. Choose Protocols - Select which protocols to decode (POCSAG/FLEX)
  4. Adjust Settings - Set gain, squelch, and PPM correction as needed
  5. Start Decoding - Click the green "Start Decoding" button
  6. View Messages - Decoded messages appear in real-time in the output panel

Frequency Presets

  • Click a preset button to quickly set a frequency
  • Add custom presets using the input field and "Add" button
  • Right-click a preset to remove it
  • Click "Reset to Defaults" to restore default frequencies

Message Logging

Enable logging in the Logging section to save decoded messages to a file. Messages are saved with timestamp, protocol, address, and content.

Default Frequencies

Pager (UK)

  • 153.350 MHz - UK pager frequency
  • 153.025 MHz - UK pager frequency

433MHz Sensors

  • 433.92 MHz - EU/UK ISM band (most common)
  • 315.00 MHz - US ISM band
  • 868.00 MHz - EU ISM band
  • 915.00 MHz - US ISM band

You can customize pager presets in the web interface.

API Endpoints

Endpoint Method Description
/ GET Main web interface
/devices GET List RTL-SDR devices
/start POST Start pager decoding
/stop POST Stop pager decoding
/start_sensor POST Start 433MHz sensor listening
/stop_sensor POST Stop 433MHz sensor listening
/status GET Get decoder status
/stream GET SSE stream for pager messages
/stream_sensor GET SSE stream for sensor data
/logging POST Toggle message logging
/killall POST Kill all decoder processes

Troubleshooting

No devices found

  • Ensure your RTL-SDR is plugged in
  • Check rtl_test works from command line
  • On Linux, you may need to blacklist the DVB-T driver

No messages appearing

  • Verify the frequency is correct for your area
  • Adjust the gain (try 30-40 dB)
  • Check that pager services are active in your area
  • Ensure antenna is connected

Device busy error

  • Click "Kill All Processes" to stop any stale processes
  • Unplug and replug the RTL-SDR device

License

MIT License - see LICENSE for details.

Author

Created by smittix - GitHub

Acknowledgments

  • rtl-sdr - RTL-SDR drivers
  • multimon-ng - Multi-protocol pager decoder
  • rtl_433 - 433MHz sensor decoder
  • Inspired by the SpaceX mission control aesthetic

Disclaimer

This software is for educational and authorized use only. Ensure you comply with local laws regarding radio reception and privacy. Intercepting private communications without authorization may be illegal in your jurisdiction.

Description
No description provided
Readme Apache-2.0 112 MiB
Languages
Python 45.9%
HTML 22.7%
JavaScript 20.2%
CSS 9.9%
Shell 1.2%
Other 0.1%