Commit graph

698 commits

Author SHA1 Message Date
KoenigMjr 23d1b1a328 Fix POCSAG decoding crash caused by invalid subric parsing
Errorcode führte zu Programmexit:

> 12.10.2025 02:20:39,918 - inputThread sdrInput _runThread [ERROR] error in sdr input routine
Traceback (most recent call last):
>   File "/opt/boswatch3/boswatch/inputSource/sdrInput.py", line 65, in _runThread
>     self.addToQueue(line)
>   ...
> ValueError: invalid literal for int() with base 10: ' '

Ursache:
Die Funktion `_getBitrateRicSubric()` in `pocsagDecoder.py` griff fest auf `data[40]` zu, um den SubRIC-Wert zu ermitteln. Bei Fehlerhaften Datensätzen von multimon-ng kann sich die Position jedoch verschieben, wodurch an dieser Stelle ein Leerzeichen (' ') statt einer Ziffer stand. Dies führte zu einem ValueError und damit zum Abbruch des gesamten SDR-Threads.

Änderung:
Die Funktion wurde auf robuste Regex-Analyse umgestellt (analog fmsDecoder.py und pocsagDecoder.py):
- Bitrate, Address (RIC) und Function (SubRIC) werden nun mit regulären Ausdrücken extrahiert.
- Die ursprüngliche Logik (`subric = int(Function) + 1`) bleibt vollständig erhalten.
- Enthält die Zeile keine gültige Function, wird eine Warnung geloggt ("Invalid POCSAG function (not 0–3)")
- Zusätzliche Fehlerabsicherung durch try/except.

Ergebnis:
Der Decoder ist nun tolerant gegenüber Formatabweichungen und verhindert Abstürze bei fehlerhaften oder unvollständigen multimon-ng-Zeilen.
2025-10-22 09:59:59 +02:00
Bastian Schroll 017e882363
Merge pull request #134 from KoenigMjr/feature/telegram-neu
Some checks failed
build_docs / Build documentation (push) Has been cancelled
CodeQL / CodeQL-Build (push) Has been cancelled
pytest / build (ubuntu-latest, 3.10) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.11) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.12) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.13) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.9) (push) Has been cancelled
build_docs / deploy (push) Has been cancelled
Telegram-Plugin Refactor
2025-10-22 08:53:40 +02:00
Bastian Schroll 2e5479cde2
Merge branch 'develop' into feature/telegram-neu 2025-10-21 13:39:04 +02:00
Bastian Schroll 16dbd731e8
Merge pull request #136 from KoenigMjr/feature/service
Some checks are pending
build_docs / Build documentation (push) Waiting to run
build_docs / deploy (push) Blocked by required conditions
CodeQL / CodeQL-Build (push) Waiting to run
pytest / build (ubuntu-latest, 3.10) (push) Waiting to run
pytest / build (ubuntu-latest, 3.11) (push) Waiting to run
pytest / build (ubuntu-latest, 3.12) (push) Waiting to run
pytest / build (ubuntu-latest, 3.13) (push) Waiting to run
pytest / build (ubuntu-latest, 3.9) (push) Waiting to run
feat: Interaktives Installationsskript mit Mehrsprachigkeit, argparse und Logging
2025-10-21 13:38:50 +02:00
KoenigMjr cd21f07755 feat: Interaktives Installationsskript mit Mehrsprachigkeit, argparse und Logging
- Neues CLI-Interface via argparse für flexible Steuerung
- Unterstützt Dry-Run-Modus zur sicheren Vorschau
- Sprachumschaltung via --lang (de/en)
- Internationalisierung aller Ausgaben via `t()` und `TEXT`-Dict (Deutsch/Englisch)
- Logging mit farbiger Terminalausgabe und Logdatei (log/install/)
- YAML-Validierung und Service-Typ-Erkennung (client/server)
- Interaktive Benutzerführung für (De)Installation von Services
- Verbesserte Fehlerbehandlung und Nutzerabfragen mit Fallback
- DOKU:
- Install.md (Installation von BW3) ergänzt
- Service.md (für Install as a Service-Skript) zweisprachig (Deutsch/Englisch) ergänzt
- mkdocs um Seiten Install/Service/Usage.md ergänzt
2025-08-08 21:12:17 +02:00
KoenigMjr 523329a9bb Doku-Ergänzung
update zur neuen Telegram Version

*in Konfiguration hinzugefügt:*
Startup_message
max_retries
initial_delay
max_delay

*gelöscht:*
queue

*im Beispiel:*
Startup_message hinzugefügt
2025-08-08 21:11:48 +02:00
KoenigMjr 6a0a59c3ac Telegram mit Warteschlange
Durch Einbau einer Warteschlange kein Datenverlust bei belegter API (Sendelimit ca. 30 Nachrichten/min, gibt aber Soft-Limit)

Exponentielles Backoff mit Maximalgrenze
Retry-Zähler mit Abbruch bei zu vielen Fehlversuchen
Kein Wiederholen bei permanenten Fehlern (400/401)
dynamische Zeitanpassung bei 429 Fehlern

Fehlerrobustheit verbessert hinsichtlich Connection Error

neues Plugin ohne telegram-bot

* Timeout (timeout=10),
* HTTP-Fehlerprüfung (raise_for_status()),
* Retry-Logik (3 Versuche mit wachsender Wartezeit),
* Sauberem Logging mit logger statt print).

send_location aus altem Skript übernommen und angepasst
2025-08-08 21:11:48 +02:00
Bastian Schroll a1cb545c39
Merge pull request #137 from KoenigMjr/bugfix/fieldnotfound
Some checks failed
build_docs / Build documentation (push) Has been cancelled
CodeQL / CodeQL-Build (push) Has been cancelled
pytest / build (ubuntu-latest, 3.10) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.11) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.12) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.13) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.9) (push) Has been cancelled
build_docs / deploy (push) Has been cancelled
bugfix: Behebung der "[WARNING ] field not found" im Log
2025-08-08 13:49:18 +02:00
KoenigMjr f53102d8c8 Behebung der WARNING "field not found" im Log Bedingt durch die modeunabhängige Verarbeitung sämtlicher Wildcards warnt das Programm, dass manche Felder nicht verfügbar sind, die in der derzeitigen Auswertung jedoch gar nicht vorhanden sein können (z.B. FMS Felder in ZVEI-Datensatz etc.)
Änderungen:
- Wildcard-Ersetzung in `replaceWildcards()` nach Paketmodus (fms, pocsag, zvei, msg) aufgeteilt
- Unnötige Wildcards werden nun abhängig vom Modus nicht mehr verarbeitet
- `{MSG}` wird nun explizit für den Modus `msg` unterstützt
- Kopfzeile mit aktuellem Änderungsdatum versehen
2025-08-08 12:01:41 +02:00
Bastian Schroll 7ae6dfa820
Merge pull request #135 from KoenigMjr/feature/log-multi-clients
Some checks failed
build_docs / Build documentation (push) Has been cancelled
build_docs / deploy (push) Has been cancelled
CodeQL / CodeQL-Build (push) Has been cancelled
pytest / build (ubuntu-latest, 3.10) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.11) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.12) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.13) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.9) (push) Has been cancelled
feat(logging): dynamische Logdateibenennung des Client basierend auf YAML-Datei
2025-08-04 06:46:51 +02:00
KoenigMjr 34fd0c2f10 Fehlerbehebung: Logging-Setup für Multi-Client-Betrieb korrigiert
- Logdateipfad wird vor dem Aufruf von fileConfig() über builtins.log_filename gesetzt
- Entfernt manuelles Patchen des Loghandlers (BaseFilename, Stream etc.) nach dem Laden
- Logging-Konfiguration (logger_client.ini) wird nur noch einmal geladen
- logger_*.ini: Korrektur: interval=midnight ist nicht (mehr) offiziell unterstützt, Änderung auf korrekte Schreibweise (when=midnight, interval=1)
- Ändern der Kommentare auf Englisch (stringent zu anderen Kommentaren)
2025-07-31 16:02:22 +02:00
KoenigMjr 676312e581 feat(logging): dynamische Logdateibenennung basierend auf YAML-Datei
- Logdatei wird nun zur Laufzeit anhand des Konfigurationsdateinamens gesetzt, z. B.:
  client1.yaml → log/client1.log
- Ermöglicht parallele Ausführung mehrerer Clients mit getrennten Logs auf derselben Hardware
- Der bisher fest codierte client.log entfällt
- Argumente (args.config) werden nun vor dem Logging-Setup geparst
- logger_client.ini bleibt erhalten; Pfad des TimedRotatingFileHandler
  wird nachträglich im Code gesetzt
- Log-Rotation (Mitternacht, 7 Backups) funktioniert weiterhin wie konfiguriert
- `disable_existing_loggers=False` verhindert das Deaktivieren benutzerdefinierter Logger in den BOSWatch-Modulen
- Falls die zuvor standardmäßige placeholder-Datei `log/client.log` noch existiert und nicht mehr verwendet wird,
  wird sie beim Start automatisch gelöscht

BREAKING CHANGE: Logging wird nicht mehr standardmäßig nach log/client.log geschrieben
2025-07-16 18:57:19 +02:00
Bastian Schroll 5d9ab0a2b7
Merge pull request #132 from KoenigMjr/bugfix/docu
Bugfix der Bild-Links
2025-07-10 07:58:21 +02:00
KoenigMjr c676f3b4a3 .css Stylesheet integriert
mkdocs.yml ergänzt:

markdown_extensions:
  - attr_list
stylesheet
2025-07-09 16:11:05 +02:00
KoenigMjr 01ec8e0715
Merge branch 'BOSWatch:develop' into bugfix/docu 2025-07-08 11:54:07 +02:00
Bastian Schroll a224190a26
Merge pull request #133 from KoenigMjr/update/codeQL
Update CodeQL-Workflow
2025-07-08 06:56:17 +02:00
KoenigMjr 8adb7ad1b6
Merge branch 'BOSWatch:develop' into update/codeQL 2025-07-07 13:30:17 +02:00
KoenigMjr 2523671f1a
actions/checkout@v3 updated
to v4
2025-07-07 13:28:32 +02:00
KoenigMjr 7695711cb7
autobuild and analyze updated to v3
autobuild and analyze are running v2, but v3 is available.
2025-07-07 13:26:38 +02:00
KoenigMjr b487e6bbb6 Bugfix der Bild-Links, Typo in Menü 2025-07-03 12:08:15 +02:00
Bastian Schroll e130555b8b
Merge pull request #130 from BOSWatch/fix-111
fix IndexError: list index out of range in sdr input routine (pocsagDecoder) #111
2025-06-27 19:31:42 +02:00
KoenigMjr c6ed0cd615
neue versionen 2025-06-27 10:31:59 +02:00
Bastian Schroll 8dad67ada2
Merge branch 'develop' into fix-111 2025-06-27 09:27:20 +02:00
Bastian Schroll 7c0a9cc84c
Merge pull request #131 from KoenigMjr/docu-changes
Änderung der Workflow-Datei "build_docs.yml" für das ablösen der ph_pages Branch zum Aufbau der Website
2025-06-27 09:21:40 +02:00
KoenigMjr 07932c3b7b
Anstoßen Workflows 2025-06-14 12:58:14 +02:00
KoenigMjr 77086dd4de
Ablösen des gh_pages Branch
NEU:
* permissions-Sektor
* concurrency-Sektor
* setup Pages in jobs - build_docs eingefügt
* Build mkdocs in jobs - build_docs eingefügt
* Upload artifact in jobs - build_docs eingefügt
* Deployment job-Sektor

Entfernt:
* Build_docs strategy
* Setup Python (in Dokumentation nicht gebraucht? <-- bitte kritisch prüfen)
* Python in jobs - build_docs

Geändert:
* Checkout von v2 auf v4
* Install Dependencies zusammengefasst
* bei Doxygen mattnotmitt/doxygen-action@v1 entfernt, Code verschlankt
2025-06-14 12:56:08 +02:00
Bastian Schroll dc052b94f4
fix IndexError: list index out of range in sdr input routine (pocsagDecoder) #111 2025-06-11 08:33:09 +00:00
Bastian Schroll d4e9b631ab
Merge pull request #104 from GonzoBS/patch-1
Issue #103: Update doubleFilter.py
2025-06-11 10:23:45 +02:00
Bastian Schroll 1ead2cbaa2
Update module/filter/doubleFilter.py
Co-authored-by: Jan Speller <github@speller.biz>
2025-06-11 10:22:12 +02:00
Bastian Schroll a6a1059931
Merge branch 'develop' into patch-1 2025-06-11 10:20:17 +02:00
Bastian Schroll 3388dd16e7
Merge pull request #81 from janspeller/feature/ISSUE-67
Fix Issue #67
2025-06-11 10:01:51 +02:00
Bastian Schroll 399a768498
Merge branch 'develop' into feature/ISSUE-67 2025-06-11 09:59:46 +02:00
Bastian Schroll 31aea6217c
Merge pull request #128 from KoenigMjr/install.sh-patch
Update install.sh
2025-06-11 09:59:30 +02:00
Bastian Schroll 340dfce789
Merge branch 'develop' into install.sh-patch 2025-06-11 09:56:46 +02:00
Bastian Schroll 2c9453f2eb
Merge pull request #129 from KoenigMjr/pytest-update
Pytest update
2025-06-11 09:56:33 +02:00
KoenigMjr 1f7ae72671
Update run_pytest.yml
workflow_dispatch entfernt
2025-06-11 09:38:50 +02:00
Bastian Schroll 251cd73713
Merge branch 'develop' into feature/ISSUE-67 2025-06-11 07:35:25 +02:00
KoenigMjr fcc9634be2
Merge pull request #2 from KoenigMjr/pytest-update-manual-run
Pytest update manual run
2025-06-10 13:20:46 +02:00
KoenigMjr 1a0f981c5c
Update run_pytest.yml
Auskommentieren von workflow_dispatch
2025-06-10 13:18:35 +02:00
KoenigMjr 3680f0a0d7
Aktualisieren von run_pytest.yml
v3.13 hinzugefügt
2025-06-10 12:39:40 +02:00
KoenigMjr 889d00e660
Aktualisieren von run_pytest.yml
v3.8 entfernt
2025-06-10 11:47:28 +02:00
KoenigMjr 0ba26181f3
Update requirements.txt
Flake8 to 6.1.0
2025-06-10 08:03:47 +02:00
KoenigMjr d2225f899d
Update run_pytest.yml
Save artifacts
name: test-${{ matrix.python-version }}.log

Für jeden Test ein eigenes Logfile - aufgrund Fehler im Test
2025-06-10 07:53:42 +02:00
KoenigMjr 9bcfcf6759
Update run_pytest.yml
actions/upload-artifact@v3

to

actions/upload-artifact@v4
2025-06-10 07:50:03 +02:00
KoenigMjr a877464c28
Update run_pytest.yml
actions/upload-artifact@v3 to actions/upload-artifact@v4
2025-06-10 07:47:46 +02:00
KoenigMjr 2c21884a61
Update run_pytest.yml
+ Pull-Request
2025-06-10 07:45:11 +02:00
KoenigMjr 056de68ce2
Update run_pytest.yml
- Entfernt **Python 3.7** aus der `matrix`, da sie nicht mehr von GitHub Actions bereitgestellt wird (End-of-Life).
- Aktualisiert `actions/checkout` von `v1` auf `v3` (empfohlene aktuelle Version).
- Verwendet `actions/upload-artifact@v3` anstelle von `@master` für stabileren Artifact-Upload.
- Fügt `mkdir -p log/` hinzu, um sicherzustellen, dass das Log-Verzeichnis existiert.
2025-06-10 07:31:43 +02:00
KoenigMjr 203feccbc6 Revert "Update run_pytest.yml"
This reverts commit ffb1256e24.
2025-06-09 18:18:03 +02:00
KoenigMjr ffb1256e24 Update run_pytest.yml 2025-06-09 12:54:38 +02:00
KoenigMjr a9a8ccdc83
Update install.sh
update to qmake6
2025-06-04 11:40:57 +02:00