Automatisiert die Windows-App Breitbandmessung (Bundesnetzagentur / BNetzA) per UI-Automation, um Messkampagnen über mehrere Tage hinweg mit den vorgegebenen Zeitabständen durchzuführen.
Offizielles Tool: breitbandmessung.de
Letztes Release (Windows .exe):
Releases (latest)
Direkt-Download der aktuellen .exe:
Breitbandmessung-Automat.exe (latest)
- Windows (UI-Automation via
pywinauto) - Die Breitbandmessung-App ist installiert und kann gestartet werden
- Der PC muss während der Messungen entsperrt bleiben (UI-Automation)
Wenn du die .exe nutzt, brauchst du kein Python.
python -m pip install -r requirements.txt- Lade die
Breitbandmessung-Automat.exeaus dem neuesten Release herunter. - Lege sie am besten in einen eigenen Ordner (z. B.
C:\Breitbandmessung-Automat\). - Doppelklick startet das Programm.
Optional (mit Parametern) in PowerShell im selben Ordner:
.\Breitbandmessung-Automat.exe
.\Breitbandmessung-Automat.exe --run-today
.\Breitbandmessung-Automat.exe --wait-calendar-gap
.\Breitbandmessung-Automat.exe --run-forever --wait-calendar-gap
.\Breitbandmessung-Automat.exe --next-start "20:00"
.\Breitbandmessung-Automat.exe --schedule-cron "0 7,10,20 * * *"Startet/führt Messungen aus und verwaltet den Fortschritt in einer State-Datei:
python .\breitbandmessung_automate_stateful.pyTipp: Alle Optionen anzeigen: --help
--state-file bbm_state.json(Default:bbm_state.json)- Beispiel:
.\Breitbandmessung-Automat.exe --state-file "C:\Breitbandmessung-Automat\bbm_state.json"
- Beispiel:
--day-goal 10/--campaign-goal 30(Overrides)- Beispiel:
.\Breitbandmessung-Automat.exe --day-goal 10 --campaign-goal 30
- Beispiel:
--skip-initial-wait/--no-skip-initial-wait(Default:--skip-initial-wait)- Beispiel:
.\Breitbandmessung-Automat.exe --no-skip-initial-wait
- Beispiel:
--seed-day-done X(setzt heutigen Fortschritt einmalig)- Beispiel:
.\Breitbandmessung-Automat.exe --seed-day-done 10
- Beispiel:
--seed-campaign-done Y(setzt Kampagnen-Fortschritt einmalig)- Beispiel:
.\Breitbandmessung-Automat.exe --seed-campaign-done 10
- Beispiel:
--try-read-ui-progress/--no-try-read-ui-progress(Default: aktiv; liest best-effort6/10und6/30aus der UI; bei--seed-*automatisch deaktiviert)- Beispiele:
.\Breitbandmessung-Automat.exe --try-read-ui-progress/.\Breitbandmessung-Automat.exe --no-try-read-ui-progress
- Beispiele:
--run-until-campaign-done/--no-run-until-campaign-done(Default:--run-until-campaign-done)- Beispiel:
.\Breitbandmessung-Automat.exe --no-run-until-campaign-done
- Beispiel:
--run-today(Alias für--no-run-until-campaign-done)- Beispiel:
.\Breitbandmessung-Automat.exe --run-today
- Beispiel:
--run-forever(nach 30 Messungen neue Kampagne starten und endlos weiterlaufen; klickt bei Bedarf automatischNeue Messkampagne starten)- Beispiel:
.\Breitbandmessung-Automat.exe --run-forever --wait-calendar-gap
- Beispiel:
--enforce-calendar-gap/--no-enforce-calendar-gap(Default:--enforce-calendar-gap)- Beispiel:
.\Breitbandmessung-Automat.exe --no-enforce-calendar-gap
- Beispiel:
--wait-calendar-gap(wenn Kalendertag-Abstand blockiert: schlafen statt beenden)- Beispiel:
.\Breitbandmessung-Automat.exe --wait-calendar-gap
- Beispiel:
--force(ignoriert Calendar-Gap Block)- Beispiel:
.\Breitbandmessung-Automat.exe --force
- Beispiel:
--day-start HH:MM/--day-end HH:MM(Default:07:00bis23:00)- Beispiel:
.\Breitbandmessung-Automat.exe --day-start 07:00 --day-end 22:00
- Beispiel:
--day-end-buffer-seconds N(Default:1800)- Hält vor
--day-endeinen Puffer frei, damit die letzte Messung nicht "auf Kante" geplant wird. - Beispiel:
.\Breitbandmessung-Automat.exe --day-end 23:59 --day-end-buffer-seconds 1800
- Hält vor
--day-start-jitter-minutes N(Default:45)- Beispiel:
.\Breitbandmessung-Automat.exe --day-start-jitter-minutes 0
- Beispiel:
--next-start "<HH:MM|YYYY-MM-DD HH:MM>"(setzt den Start der nächsten Messung)- Beispiele:
.\Breitbandmessung-Automat.exe --next-start "20:00"/.\Breitbandmessung-Automat.exe --next-start "2026-01-09 10:00"
- Beispiele:
--schedule-cron "<min> <hour> * * *"(eigener Startplan; nur Minute+Stunde)- Beispiele:
.\Breitbandmessung-Automat.exe --schedule-cron "0 7,10,20 * * *"/.\Breitbandmessung-Automat.exe --schedule-cron "*/15 7-22 * * *"
- Beispiele:
--min-gap-buffer-seconds N(Default:120)- Beispiel:
.\Breitbandmessung-Automat.exe --min-gap-buffer-seconds 300
- Beispiel:
--post-measurement-settle-seconds N(Default:30)- Beispiel:
.\Breitbandmessung-Automat.exe --post-measurement-settle-seconds 60
- Beispiel:
--random-seed N(reproduzierbares Scheduling)- Beispiel:
.\Breitbandmessung-Automat.exe --random-seed 12345
- Beispiel:
bbm_state.json(Fortschritt/Status)<programmname>.log(Log; z. B.breitbandmessung_automate_stateful.logoderBreitbandmessung-Automat.log)bbm_ui_dump_*.txt(UI-Dumps bei Fehlern)