Releases: pentafive/web888-ha-bridge
Release list
v1.2.2: WebSocket Log Noise Reduction
Fixed
-
WebSocket Log Noise Reduction - Consolidated disconnect logging from 3 warnings per event per device to 1. Client-level WebSocket close and poll error messages demoted to DEBUG; coordinator emits single WARNING on first failure per cycle.
-
Exponential Reconnect Backoff - Added progressive backoff when device is unreachable: 10s → 20s → 40s → 80s → 160s → 300s max. Resets on successful reconnect. Prevents log flooding when SDR devices are temporarily offline.
-
Repeated Failure Log Demotion - After initial disconnect WARNING, subsequent reconnect attempts log at DEBUG level until connection is restored. Reduces log noise from ~190 warnings/32min to ~2 warnings per device.
-
pyproject.toml Version Sync - Fixed version mismatch (was 1.0.0, now synced to 1.2.2).
Added
- Buy Me a Coffee Support Link - Added donation badge to README and
.github/FUNDING.yml.
Full Changelog: https://github.com/pentafive/web888-ha-bridge/blob/master/CHANGELOG.md
v1.2.1: Bug fixes, MAC auto-discovery, diagnostics
What's Changed
Bug Fixes
- EntityCategory.CONFIG Error - Changed to DIAGNOSTIC for feature flag binary sensors and session config sensors
- WebSocket Disconnection Handling - Added keep-alive pings (
ping_interval=20,ping_timeout=10) - WebSocket Authentication Validation - Now validates auth actually succeeded before continuing
- Config Flow Import Error - Fixed missing return after ImportError in password validation
- Callback Error Isolation - Wrapped callbacks in try/except to prevent WS disconnects
- Thermal Warning Null Check - Fixed edge case when CPU temp is exactly 0°C
- HTTP Session Management - Implemented connection pooling with session reuse
- Web-888 Device Detection - Stricter validation (requires BOTH offline and users fields)
- Config Drain Loop Timeout - Added 5-second overall timeout
- Satellite Sensor Availability - Fixed sensors showing unavailable when <12 satellites tracked
New Features
- MAC Address Auto-Discovery - Automatically discovers MAC/serial/DNA from WebSocket config_cb
- Sequence Errors sensor - Diagnostic counter from device stats
- Realtime Errors sensor - Diagnostic counter from device stats
- Total Session Hours sensor - Combined runtime of all active channels
- Preemptible Channels sensor - Count of channels that can be preempted
- Enhanced Channel Attributes -
session_time,session_seconds,preemptible
Documentation
- Complete rewrite of Sensor-Reference.md documenting all ~74 sensors
- Complete rewrite of Dashboard-Examples.md with comprehensive examples
- New ft8-monitoring.yaml example dashboard for FT8/WSPR monitoring
Full Changelog: v1.2.0...v1.2.1
v1.2.0 - Full Device Configuration Exposure
What's New
All device configuration is now parsed from WebSocket load_cfg and load_adm messages and exposed as sensors.
Calibration Sensors (Diagnostic)
- S-Meter Calibration - S-meter offset (dB)
- Waterfall Calibration - Waterfall offset (dB)
- DC Offset I/Q - ADC DC offset correction
- Clock Adjustment - Clock trim value
- ADC Clock Correction - ADC clock frequency correction
- Overload Mute - Overload mute threshold (dB)
Session/Access Config Sensors
- Inactivity Timeout - Auto-disconnect timeout (minutes)
- IP Rate Limit - Per-IP connection rate limit (minutes)
- Password-Free Channels - Channels without password requirement
- Camping Slots - Number of camping slots allowed
- API Channels - Channels for external API access
- TDoA Channels - Channels for TDoA operations
Network Config Sensors
- Configured IP - Static IP if configured
- Service Port - Web service port
Device Info Sensors
- Device Location - Location string from config
- Antenna Description - Antenna info from config
- Altitude ASL - Altitude above sea level (meters)
- Owner Info - Owner contact email
- Admin Email - Admin contact email
Feature Flag Binary Sensors (Config Category)
- GPS Enabled - Whether GPS is enabled
- GPS Correction - GPS frequency correction enabled
- DRM Enabled - Digital Radio Mondiale extension enabled
- WSPR Enabled - WSPR extension enabled
- WSPR Spot Logging - WSPR spot logging to file
- WSPR Auto-Update Grid - Auto-update grid from GPS
- Server Enabled - KiwiSDR server mode enabled
- Airband Mode - Airband receive mode
- Static IP Mode - Using static IP configuration
- SDR.hu Listed - Registered with SDR.hu directory
- KiwiSDR.com Listed - Registered with KiwiSDR.com
Changed
- Separate WSPR and FT8 Reporter Fields: Reporter callsign/grid now stored separately
wspr_callsign,wspr_grid- For wsprnet.org reportingft8_callsign,ft8_grid- For PSKReporter (falls back to WSPR if empty)
Technical Notes
- New
DeviceConfigdataclass with ~50 configuration fields - Parses both
MSG load_cfg=andMSG load_adm=WebSocket messages - Feature flags use
EntityCategory.CONFIGfor HA organization - All config sensors require WebSocket/admin mode
Full Changelog: v1.1.0...v1.2.0
v1.1.0 - Admin Sensors, Channel Tracking, Thermal Alerts
What's New
New Sensors (WebSocket/Admin Mode)
- CPU Frequency - Processor clock speed (MHz)
- CPU Usage - Average CPU utilization (%)
- Waterfall/HTTP Bandwidth - Data rates (B/s)
- Audio Dropped/Underruns - Diagnostic counters
- GPS Tracking/In Solution/Avg SNR - Extended GPS metrics
- ADC Clock - Reference clock frequency
- GPS Acquiring (binary) - Satellite acquisition status
- Thermal Warning (binary) - CPU temperature alert
Channel Type Tracking (WebSocket Only)
- FT8/WSPR/User/Idle Channels - Count by type
- FT8/WSPR Total Decodes - Per-mode decode totals
- Per-channel attributes:
channel_type,extension,is_extension,client_ip
Reporter Config Auto-Discovery
- Reporter Callsign/Grid - Auto-parsed from WebSocket config
New Sensors (Both Modes)
- GPS Fixes/min, Fixes/hour - GPS fix rates
- Frequency Offset - Calibration diagnostic
Features
- Hybrid Mode: WebSocket now fetches HTTP /status for device metadata
- Thermal Monitoring: Configurable CPU temp threshold (default 70°C)
- Per-Satellite Sensors: Optional security monitoring (interference/LOS detection)
- Dashboard Generator: Web tool at
docs/dashboard-generator.html
Bug Fixes
- Fix "Unnamed device" in Home Assistant device registry
- Improve WebSocket error handling with specific exception types
Configuration Options
enable_satellites- Enable per-satellite sensors (default: false)thermal_threshold- CPU temp warning threshold (default: 70°C)pskr_callsign- PSKReporter callsign for correlation
Full Changelog: v1.0.0...v1.1.0
v1.0.0 - Initial Release
Web-888 HA Bridge v1.0.0
Monitor your Web-888 SDR software-defined radio receiver in Home Assistant.
Features
Two Deployment Options
- HACS Integration - Native Home Assistant custom component with ConfigFlow UI
- Docker/MQTT Bridge - Standalone container with MQTT auto-discovery
Connection Modes
- HTTP Mode - No authentication required, basic sensors
- WebSocket Mode - Full sensor set with admin password
Sensors Included
| Category | Sensors |
|---|---|
| Users | Connected Users, Users Max |
| System | Uptime, CPU Temperature*, ADC Overflow Count |
| GPS | GPS Lock, GPS Fixes, GPS Good Satellites, Grid Square*, Latitude, Longitude, Altitude |
| Signal | SNR All Bands, SNR HF |
| Status | Connected, Antenna Connected, Offline, Device Status, Frequency Bands |
| Channels* | Frequency, Mode, Decoded Count (×12 channels) |
* WebSocket mode only
Installation
HACS (Recommended)
- Add
https://github.com/pentafive/web888-ha-bridgeas a custom repository in HACS - Install "Web-888 SDR Monitor"
- Restart Home Assistant
- Add integration via Settings → Devices & Services
Docker
git clone https://github.com/pentafive/web888-ha-bridge.git
cd web888-ha-bridge
cp .env.example .env
# Edit .env with your settings
docker compose up -dDocumentation
Related Projects
- pskr-ha-bridge - Monitor PSKReporter spots in Home Assistant
Acknowledgements
- RX-888 Team - Web-888 SDR hardware
- RaspSDR/server - Server implementation reference
- KiwiSDR Project - WebSocket protocol reference