-
-
Notifications
You must be signed in to change notification settings - Fork 18
Features BNetzA
Documentation current as of v2026-02-22.2
The BNetzA integration lets you upload official broadband measurement reports from the German Federal Network Agency (Bundesnetzagentur) and view the results alongside your DOCSIS data. Since v2026-02-18.4, DOCSight can also automatically import measurement files from a watched directory and supports CSV imports alongside PDF protocols.
The Breitbandmessung is the official speed testing platform operated by the Bundesnetzagentur (BNetzA), Germany's telecommunications regulator. Unlike regular speed tests, BNetzA measurements have legal weight under the German Telecommunications Act (TKG):
- Your ISP must deliver at least 90% of the booked download speed in normal usage
- If measurements consistently fall below that threshold, you have a legal basis to reduce your monthly fee or terminate your contract
- The BNetzA desktop app produces a signed PDF measurement protocol that serves as evidence
This makes BNetzA data fundamentally different from Speedtest Tracker results: it is legally binding documentation of your connection quality.
- Download the Breitbandmessung Desktop App from breitbandmessung.de
- Run a measurement campaign: 30 individual measurements over at least 3 days
- The app generates a PDF report summarizing all measurements and whether your ISP meets TKG thresholds
- Download the PDF -- this is the file you upload into DOCSight
Important: Only the desktop app generates the official PDF protocol. The browser-based test on the website does not produce a legally valid report.
- Open DOCSight and navigate to BNetzA in the sidebar
- Click Upload PDF
- Select your BNetzA measurement protocol PDF
- DOCSight parses the PDF and extracts all individual measurements, including download/upload speeds, latency, and the overall pass/fail verdict
You can upload multiple protocols over time to build a history.
When BNetzA data is available, a summary card appears on the dashboard showing:
- Number of uploaded measurement campaigns
- Latest campaign result (pass/fail)
- Average measured download and upload speeds vs. booked speeds
The BNetzA section in the sidebar shows all uploaded campaigns. Each campaign is expandable to reveal the individual measurements with color-coded results:
- Green: Measurement meets the TKG threshold
- Yellow: Measurement is below booked speed but above the minimum guarantee
- Red: Measurement falls below the legally required minimum
BNetzA measurement data appears as data points in the Correlation Analysis timeline. This lets you cross-reference officially measured speeds with your DOCSIS signal health at the same point in time, strengthening your evidence if you need to file a complaint.
When a BNetzA measurement campaign shows a deviation (i.e., the measured speeds fall below the contractually guaranteed levels), you can generate a complaint letter directly from the BNetzA view:
- Navigate to BNetzA in the sidebar
- Find a campaign with a "Deviation found" verdict
- Click the pencil icon next to that campaign
- The complaint letter modal opens with the BNetzA data pre-selected
- Optionally fill in your customer details, then generate the letter
The generated complaint letter includes a dedicated BNetzA section citing the official measurement protocol date, contracted vs. measured speeds, and the relevant legal basis (Section 57(4) TKG for Germany, ARCEP for France, or Secretaria de Telecomunicaciones for Spain).
You can also include BNetzA data when generating a complaint from the regular File Complaint button: check the "Include BNetzA measurement data" checkbox in the complaint modal. DOCSight will automatically select the most recent campaign with a deviation from the report period.
For ISP contact details and complaint filing guidance, see Filing a Complaint.
Instead of uploading files manually, DOCSight can watch a directory for new measurement files and import them automatically. This is ideal for running the Breitbandmessung Desktop App (or a sidecar container) that drops files into a shared volume.
- Go to Settings > BNetzA
- Enable File Watcher
- Set the Watch Directory (default:
/data/bnetz) - Save
Or via environment variables:
BNETZ_WATCH_ENABLED=true
BNETZ_WATCH_DIR=/data/bnetz
The watcher checks the directory every 5 minutes for new .pdf and .csv files. Successfully imported files are moved to a processed/ subdirectory, and a .imported marker file tracks which files have already been processed to prevent duplicates.
When the file watcher is active, a status banner appears at the top of the BNetzA view showing:
- Watch directory path
- Active/inactive status
- Number of files imported in the last run
You can run a breitbandmessung sidecar container alongside DOCSight. The sidecar runs the official BNetzA Desktop App in a headless browser on a configurable schedule and writes results to a shared volume that DOCSight imports automatically.
See the Example Compose Stacks page for a ready-made docker-compose.yml.
In addition to PDF protocols, DOCSight accepts CSV exports from the Breitbandmessung Desktop App. CSV files can be uploaded manually or auto-imported via the file watcher.
Supported CSV formats:
- Semicolon-separated (standard BNetzA export)
- Comma-separated (alternative format)
- German locale numbers (comma as decimal separator, e.g.,
883,29) - English locale numbers (dot as decimal separator, e.g.,
883.29)
CSV imports show as "CSV Import" in the source column. Since CSV files do not contain the official BNetzA verdict, the pass/fail status is set to "unknown". For legally binding evidence, use the PDF protocol.
The BNetzA feature is enabled by default. To disable it:
- Go to Settings > Appearance
- Set BNetzA Integration to "Disabled"
- Save
Or via environment variable:
BNETZ_ENABLED=false
When disabled, the BNetzA section is hidden from the sidebar and dashboard. Previously uploaded data is preserved and will reappear when re-enabled.
| Method | Path | Description |
|---|---|---|
| POST | /api/bnetz/upload |
Upload a BNetzA PDF or CSV (multipart/form-data, field: file) |
| GET | /api/bnetz/measurements |
List all uploaded measurements and campaigns |
| GET | /api/bnetz/pdf/<id> |
Download the original uploaded PDF |
| DELETE | /api/bnetz/<id> |
Delete a measurement campaign (requires authentication) |
For full API details, see the API Reference.
Home | Quick Start | Configuration | API Reference | GitHub
- Quick Start
- Installation
- Running without Docker
- Podman Quadlet
- Configuration
- Reverse Proxy
- Example Compose Stacks
- Dashboard
- Connection Monitor
- Signal Trends
- Before/After Comparison
- Channel Timeline & Compare
- Event Log
- Smart Capture
- Gaming Quality Index
- Modulation Performance
- Cable Segment Utilization
- In-App Glossary
- Speedtest Tracker
- BNetzA Breitbandmessung
- ThinkBroadband BQM
- Smokeping
- Weather
- Netzbremse (Peering)
- Home Assistant (MQTT)
- Prometheus Metrics