Skip to content

Features BNetzA

Dennis edited this page Mar 3, 2026 · 7 revisions

BNetzA / Broadband Measurement

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.

What Is the Breitbandmessung?

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.

How to Get a Measurement Protocol

  1. Download the Breitbandmessung Desktop App from breitbandmessung.de
  2. Run a measurement campaign: 30 individual measurements over at least 3 days
  3. The app generates a PDF report summarizing all measurements and whether your ISP meets TKG thresholds
  4. 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.

Uploading Into DOCSight

  1. Open DOCSight and navigate to BNetzA in the sidebar
  2. Click Upload PDF
  3. Select your BNetzA measurement protocol PDF
  4. 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.

What Gets Displayed

Dashboard Card

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

Sidebar Detail View

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

Correlation Timeline

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.

Complaint Letter

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:

  1. Navigate to BNetzA in the sidebar
  2. Find a campaign with a "Deviation found" verdict
  3. Click the pencil icon next to that campaign
  4. The complaint letter modal opens with the BNetzA data pre-selected
  5. 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.

Automated File Watcher

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.

Setup

  1. Go to Settings > BNetzA
  2. Enable File Watcher
  3. Set the Watch Directory (default: /data/bnetz)
  4. 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.

Watcher Status Banner

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

Docker Compose Sidecar

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.

CSV Import

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.

Enabling and Disabling

The BNetzA feature is enabled by default. To disable it:

  1. Go to Settings > Appearance
  2. Set BNetzA Integration to "Disabled"
  3. 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.

API Endpoints

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.

Clone this wiki locally