An elegant, high-performance bus traffic monitor and visualizer for KNX Home Automation.
Spectrum KNX is a dedicated tool to record, store, search, and visualize KNX bus telegrams indefinitely. Built for speed and reliability, it supports both a PostgreSQL backend for long-term time-series storage (the TimescaleDB extension is optional — used automatically for hypertable partitioning and native compression when available) and a lightweight SQLite backend for simple setups — paired with a premium, real-time React web interface.
- Live Group Monitor: Monitor bus load, traffic rate, and instantaneous payloads in real-time.
- Historical Analysis: Search millions of past telegrams instantly with powerful backend query engines.
- Time-Delta Context: Automatically capture the events "before and after" a filtered event to debug logic faults.
- Data Rendering: Dynamically graph numerical readouts over time, grouped by physical unit types.
- Device Status View: Browse the ETS building structure and open any device to see all its communication objects with live values — KNX-Lens-style diagnostics in the browser.
- Shareable Charts: Copy a link to any visualization (filters, targets, time window) to bookmark it — or add
&embed=1and drop it into a Home Assistant dashboard as a self-updating chart. - Zero Loss: Pause the live feed without dropping packets—everything queues silently in the background buffer until you resume.
- Database Maintenance: Inspect database size, telegram count and covered time range; purge old telegrams with a dry-run preview and reclaim the freed disk space—right from the UI.
- Home Assistant Companion Mode: Run the analyzer directly on Home Assistant's own KNX telegram history—no second bus connection, no separate database.
The easiest way to run Spectrum KNX is with Docker Compose. This automatically provisions the TimescaleDB database alongside the KNX Tracker daemon.
-
Copy the example environment file:
cp .env_example .env -
Set your
KNX_PASSWORD,KNX_PROJECT_PATHandKNX_GATEWAY_IPin.env. -
Run the stack:
Development (Live Code):
docker-compose up -d
Production (Pre-built image):
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
-
Access the web interface at
http://localhost:8765(orhttp://localhost:5173in Dev mode).The listen port defaults to
8765. SetBIND_PORT(and optionallyBIND_HOST) in your.envif it clashes with another service.
No Docker needed — both packages run Spectrum KNX with a local SQLite database (no PostgreSQL) and are attached to every GitHub release:
- Debian 13+ / compatible (amd64, arm64):
sudo apt install ./spectrum-knx_<version>_<arch>.deb, configure/etc/spectrum-knx/spectrum-knx.env, thensudo systemctl restart spectrum-knx. Web UI on port 8765. - Windows (x64): unzip
spectrum-knx-<version>-windows-x64.zip, runspectrum-knx.exe— the browser opens automatically; settings live in the.envfile created next to the exe.
See PACKAGING.md for details and DEPLOYMENT.md for configuration.
Two add-ons cover the two ways to run Spectrum KNX inside Home Assistant (add this repository URL in Settings → Add-ons → Add-on Store → Repositories):
| Spectrum KNX (standalone) | Spectrum KNX (HA Companion) | |
|---|---|---|
| Bus connection | Own tunnel/routing connection to your KNX gateway | None — uses what HA already receives |
| Database | Own PostgreSQL (TimescaleDB optional) or SQLite | Reads HA's KNX telegram database (read-only) |
| Live telegrams | Directly from the bus | Streamed from HA's websocket API |
| Retention & cleanup | Managed in Spectrum KNX (Database Maintenance screen) | Managed by Home Assistant |
| Use when… | You want an independent, full-featured recorder | You use HA's KNX integration and want its history analyzed without duplicating anything |
See DEPLOYMENT.md for installation and configuration of both.
See DEVELOPMENT.md for local setup, DEPLOYMENT.md for production configuration, and the Kubernetes templates for cluster deployment.
- Backend: Python 3.12+, FastAPI,
xknx, WebSocket Streaming - Database: PostgreSQL (with optional TimescaleDB acceleration), or SQLite (via
aiosqlite) - Frontend: React, TypeScript, Vite, TanStack Table, uPlot
Interested in building out new visualization blocks or analytical filters? See our CONTRIBUTING.md guide!
Licensed under the GNU General Public License v3.0 (GPLv3). See LICENSE for details.

