Commit graph

106 commits

Author SHA1 Message Date
KoenigMjr 08d09b4f50 [feat/multicast] refactor: move packet filtering from module to downstream
Remove internal filtering of delimiter and netident packets from the
multicast module. All packets are now passed through with multicastRole
metadata set, allowing downstream filters (e.g. filter.regexFilter) to
handle filtering as needed.

Tone-RICs remain internally consumed as they carry no alarm-relevant
information outside the module.

Update documentation to reflect new behavior and add regexFilter
example for filtering by multicastRole.
2026-03-28 15:41:54 +01:00
KoenigMjr e53cb8cff2 [feat/multicast] adding Config-Editor 2026-03-05 13:52:48 +01:00
KoenigMjr 0b9387af08 [feat/multicast]: add multi-instance multicast module with active trigger system
Introduce a robust multicast processing module for POCSAG that correlates
empty tone-RICs (recipients) with subsequent text-RICs (content).

Key Features:
- Four Output Modes: Internally supports 'complete', 'incomplete', 'single',
  and 'control'. Functional alarms are delivered as the first three, while
  technical 'control' packets (Delimiters/NetIdent) are filtered by default.
- Active Trigger System: Implements a loss-free deferred delivery mechanism
  using a loopback socket (TCP) to re-inject wakeup packets, flushing the
  internal queue during auto-clear timeouts.
- Shared State & Multi-Instance: State is shared across instances but
  separated by frequency to prevent crosstalk in multi-frequency setups.
- Data Aggregation: Automatically generates '{FIELD}_list' wildcards (e.g.,
  RIC_LIST, DESCRIPTION_LIST) for all collected recipients, enabling
  consolidated notifications in downstream plugins.
- Dynamic Filtering: Automatically blocks Delimiter and NetIdent RICs from
  reaching subsequent plugins if they are defined in the configuration.

Infrastructural Changes:
- ModuleBase: Expanded return semantics to support:
  * False: Explicitly blocks/drops a packet.
  * List: Allows a module to expand one input into multiple output packets.
- PluginBase: Updated to handle lists of packets, ensuring a full
  setup->alarm->teardown lifecycle for every individual element.
2026-03-05 13:52:48 +01:00
Bastian Schroll 9d9d678730
Merge branch 'develop' into develop 2026-02-11 10:48:34 +01:00
MrMurdog e4a316923a See Last Commit message in BW3-Core Repo 2026-02-11 04:12:37 +01:00
MrMurdog 5e544c4077 docs(config): add server.yaml generator page and link from Quick Start
Embed HTML generator page in docs. Includes back button to docs start page.
Supports standard plugins/modules via schemas (AI-assisted).
2026-02-08 07:50:04 +01:00
KoenigMjr edf7a6afe8 [upd/telegram]: improve stability, safety and production robustness
Updated the Telegram plugin to handle high-load scenarios and prevent
resource exhaustion. Key focus areas were message formatting,
concurrency management, and configuration resilience.

- Implement bounded message queue (max 100) with non-blocking drops to prevent memory leaks
- Add graceful shutdown logic with worker thread joining and queue draining
- Add self-healing initialization (`_ensure_sender`) to handle race conditions during startup
- Implement robust escaping/sanitization for HTML and MarkdownV2 parse modes
- Enforce Telegram's 4096 character limit with graceful truncation
- Enhance error diagnostics for API responses (Rate limiting, 4xx/5xx errors)
- Validate and sanitize GPS coordinates (range and type checking)
- Decouple logging from global config by using module-level logger

Behavioral Changes:
- BREAKING: Location messages now require `coordinates: true` in config (previously default)
- Messages are dropped with an error log when the queue is full (prevents system hang)
- Invalid HTML/Markdown characters are now automatically escaped to prevent API errors
2026-01-19 09:34:13 +01:00
KoenigMjr e3eb997656 docs(packet): Ergänzung um {TIME}, {BR}, {LPAR}, {RPAR} 2025-12-22 19:32:18 +01:00
KoenigMjr 475e4bc5b3 CSV-Cleaning, new matching strategy, new Debug-message, updating docu
- csv-data sets will now be corrected, no matter if the "for"-value is: 1234567, "1234567" or '1234567'
- depending on "isregex" value in csv first exact matches, second regex matches. So it is safe that if double matches occur, exact matches always wins.
- debug for CSV row read implemented
- updating readme to newest development
2025-12-03 22:28:08 +01:00
Bastian Schroll 1a721f4258
Merge branch 'develop' into enh/descr-csv 2025-11-26 10:47:48 +01:00
KoenigMjr c5015f2160 enh(telegram): parse_mode Unterstützung hinzugefügt
- Internationalisierung der Kommentare
- parse_mode hinzugefügt (für Formatierungsmöglichkeiten) mit Auswahlmöglichkeit "HTML" und "MarkdownV2"
- Ergänzung in Dokumentation
- kleinere Korrekturen in Dokumentation
- Dokumentation um die Möglichkeit von Block-Strings (|) ergänzt (Danke sm7tix für den Input!)
2025-11-18 20:49:27 +01:00
KoenigMjr 1bd192b0d9 enh: CSV + Regex für descriptor-Modul
- Füge CSV-Import über csvPath-Konfiguration hinzu
- Implementiere Regex-Matching mit isRegex-Flag (YAML & CSV)
- Erstelle unified cache für YAML- und CSV-Einträge
- Wildcard-Replacement mit dynamische Beschreibungen
- Erweitere Logging für bessere Debugging-Möglichkeiten

Neue Features:
* CSV-Dateien können parallel zu YAML-Beschreibungen verwendet werden
* Regex-Unterstützung ermöglicht Pattern-basiertes Matching
* Wildcards wie {TONE} werden in Beschreibungen ("add"-Werte) ersetzt
* Vollständige Abwärtskompatibilität zu bestehenden Konfigurationen

Technische Verbesserungen:
* Unified cache-System für bessere Performance
* Korrekte Iteration über Config-Objekte mit default-Parametern
* Robuste Fehlerbehandlung für CSV-Import
* continue statt break bei fehlenden scanFields

Einschränkungen / known limitations:
* Keine explizite Behandlung von Duplikaten
* Standardverhalten ist „last one wins“, d. h. das zuletzt passende Descriptor-Objekt überschreibt den Wert
* Wenn mehrere CSV/YAML denselben Schlüssel liefern, hängt das Ergebnis von Lade- bzw. Listen-Reihenfolge ab
2025-11-17 17:03:16 +01:00
Bastian Schroll 2e5479cde2
Merge branch 'develop' into feature/telegram-neu 2025-10-21 13:39:04 +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 c676f3b4a3 .css Stylesheet integriert
mkdocs.yml ergänzt:

markdown_extensions:
  - attr_list
stylesheet
2025-07-09 16:11:05 +02:00
KoenigMjr b487e6bbb6 Bugfix der Bild-Links, Typo in Menü 2025-07-03 12:08:15 +02:00
Bastian Schroll 251cd73713
Merge branch 'develop' into feature/ISSUE-67 2025-06-11 07:35:25 +02:00
Bastian Schroll e164533ad4
Update regex_filter.md 2024-05-05 17:13:44 +02:00
Jan Speller 07953e0d3b
Typo 2023-01-24 13:27:23 +01:00
Jan Speller b1f87e80d6
Merge branch 'BOSWatch:develop' into feature/ISSUE-67 2022-05-24 14:08:05 +02:00
Jan Speller 22d122f096 upgrade to checkout v2, install python via action, add missing files to docs 2022-05-23 23:49:21 +02:00
Jan Speller efeb271de4 Documentation, fix config flag for logging 2022-05-23 23:20:54 +02:00
Lars Gremme b12c11d268 Update fir_size value and correct fir_size in docu 2022-02-23 19:15:45 +01:00
Lars Gremme 3b65052a5b Update Changelog and remove double negation 2022-02-18 19:34:00 +01:00
Lars Gremme e4822cbf70 Add hint for fir_size in docu 2022-01-23 12:46:47 +01:00
Lars Gremme 0e386e79c9 Changes request by review 2022-01-23 12:25:30 +01:00
Lars Gremme c6df7a6b7b Add fir_size as optionally value 2022-01-23 11:06:24 +01:00
Lars Gremme 112254b928 Add python3-pip, alsa-utils to install-script; Fix install-script to use GIT in boswatch3-folder, use running RTL-FM version 2022-01-23 11:01:50 +01:00
Lars Gremme 18d2ff7e1f Add Divera24/7-Plugin 2022-01-23 10:54:36 +01:00
Jan Speller 31ee935628 Change spacing in init_db.sql and add comment on table creation 2021-03-04 12:40:57 +01:00
Jan Speller 3354a7d5f2 add documentation 2021-03-01 08:13:26 +01:00
Bastian Schroll 87eafc898f
Update descriptor.md 2021-02-04 17:07:30 +01:00
Bastian Schroll 6ad99a56cc
Merge branch 'develop' into feature/tg_message_queuing 2020-07-15 10:03:07 +02:00
B-Watch 1f57119a7b Merge branch 'FR-DoubleFilter' of https://github.com/b-watch/BW3-Core into FR-DoubleFilter 2020-07-15 08:10:13 +02:00
B-Watch 4e95d14d88 added changes from PR-Discussion 2020-07-15 08:09:57 +02:00
Jan Speller 6d2b398014
Merge branch 'develop' into feature/tg_message_queuing 2020-07-14 09:08:54 +02:00
Jan Speller b19d2e7eda Add Notice to documentation 2020-07-14 08:40:04 +02:00
Bastian Schroll dda218f622
Merge branch 'develop' into FR-DoubleFilter 2020-07-14 08:34:55 +02:00
B-Watch 24899f3d08 changed var-names 2020-07-13 20:02:00 +02:00
B-Watch 2f96e4aa9b added documentation 2020-07-10 21:35:08 +02:00
B-Watch 99df0340a6 renamed config vars 2020-07-09 15:20:54 +02:00
B-Watch 546ecada42 added/modified documentation 2020-07-09 14:20:16 +02:00
B-Watch 5b3f1c3bd1 additional documentation for inputsource 2020-07-06 09:48:27 +02:00
B-Watch 7f35d0592e Added PulseAudio as Source 2020-06-29 21:11:07 +02:00
Bastian Schroll df4ffaac53
Update config.md 2020-06-29 07:25:24 +02:00
Bastian Schroll 117ea5347e
Update config.md 2020-06-29 07:21:33 +02:00
Bastian Schroll 4a1bcf7df9
Merge branch 'develop' into FR-mmChar 2020-06-29 07:20:50 +02:00
b-watch 23ae9b9aa0
Added default description for mmChar 2020-06-28 21:02:14 +02:00
B-Watch c3ccc11b5d FR #42 - added config for Char-set mm 2020-06-24 21:38:11 +02:00