BW3-Core/docu/docs/plugin/telegram.md
KoenigMjr 3d8b5a3797 Squashed commit of the following:
commit 523329a9bb
Author: KoenigMjr <135820716+KoenigMjr@users.noreply.github.com>
Date:   Tue Jun 10 14:08:31 2025 +0200

    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

commit 6a0a59c3ac
Author: KoenigMjr <135820716+KoenigMjr@users.noreply.github.com>
Date:   Fri Jul 11 22:24:39 2025 +0200

    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-10-06 13:47:00 +02:00

57 lines
1.6 KiB
Markdown

# <center>Telegram</center>
---
## Beschreibung
Mit diesem Plugin ist es moeglich, Telegram-Nachrichten für POCSAG-Alarmierungen zu senden.
Außerdem werden Locations versendet, wenn die Felder `lat` und `lon` im Paket definiert sind. (beispielsweise durch das [Geocoding](../modul/geocoding.md) Modul)
Die abarbeitung der Alarmierungen erfolgt per Queue nach den Limits der Telegram API, damit keine Nachrichten verloren gehen, diese Funktion kann mit dem ```queue``` Parameter deaktiviert werden.
## Unterstütze Alarmtypen
- Fms
- Pocsag
- Zvei
- Msg
## Resource
`telegram`
## Konfiguration
|Feld|Beschreibung|Default|
|----|------------|-------|
|botToken|Der Api-Key des Telegram-Bots||
|chatIds|Liste mit Chat-Ids der Empfängers / der Emfänger-Gruppen||
|startup_message|Nachricht, dass das Telegram-Plugin erfolgreich geladen wurde|leer|
|message_fms|Format der Nachricht für FMS|`{FMS}`|
|message_pocsag|Format der Nachricht für Pocsag|`{RIC}({SRIC})\n{MSG}`|
|message_zvei|Format der Nachricht für ZVEI|`{TONE}`|
|message_msg|Format der Nachricht für MSG||
|max_retries|Anzahl der Versuche, bis das Senden abgebrochen wird|5|
|initial_delay|Verzögerung des zweiten Sendeversuchs|2 [Sek.]|
|max_delay|Maximale Verzögerung|60 [Sek.]|
**Beispiel:**
```yaml
- type: plugin
name: Telegram Plugin
res: telegram
config:
message_pocsag: "{RIC}({SRIC})\n{MSG}"
startup_message: "Server up and running!"
botToken: "BOT_TOKEN"
chatIds:
- "CHAT_ID"
```
---
## Modul Abhängigkeiten
Aus dem Modul [Geocoding](../modul/geocoding.md) (optional/nur POCSAG):
- `lat`
- `lon`
---
## Externe Abhängigkeiten
- python-telegram-bot