Files
TI-Status-Bot/README.md
2025-06-27 14:32:23 +02:00

194 lines
5.0 KiB
Markdown

# TI-Status2Mattermost
Ein Python-Skript, das den TI-Status überwacht und neue Meldungen über Apprise an verschiedene Dienste sendet.
## Features
- Überwacht die [TI-Status-API](https://github.com/gematik/api-tilage) auf neue Meldungen
- Sendet Benachrichtigungen über [Apprise](https://github.com/caronc/apprise#supported-notifications) (unterstützt alle verbreiteten Dienste wie Mattermost, Slack, Telegram, Discord, SMTP, Teams, etc.)
- **Mehrere Endpunkte gleichzeitig** (Mattermost + Slack + Telegram + ...)
- **Konfigurierbare Benachrichtigungsregeln** (Filter, Zeiten, Verzögerungen)
- Konfiguration über .env Datei
- Markdown-Formatierung der Nachrichten
- Vermeidet Duplikate durch lokale Statusverfolgung
- Debug-Ausgaben für bessere Transparenz
- Umfassendes Test-Tool
## Installation
1. Repository klonen:
```bash
git clone https://gitea.medisoftware.org/Markus/TI-Status2Mattermost.git
cd TI-Status2Mattermost
```
2. Virtuelle Umgebung erstellen und aktivieren:
```bash
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
```
3. Abhängigkeiten installieren:
```bash
pip install -r requirements.txt
```
## Konfiguration
1. Kopiere die Beispiel-Konfiguration:
```bash
# Windows:
copy env.example .env
# Linux/Mac:
cp env.example .env
```
2. Bearbeite die `.env` Datei und konfiguriere deine Endpunkte:
### Mehrere Endpunkte konfigurieren
```bash
# Mattermost Webhook
APPRISE_URL_MATTERMOST=mattermost://username:password@<your-mattermost-server>/channel?webhook=your_webhook_id
# Slack (optional)
APPRISE_URL_SLACK=slack://token_a/token_b/token_c/#channel
# Telegram (optional)
APPRISE_URL_TELEGRAM=telegram://bottoken/ChatID
# Discord (optional)
APPRISE_URL_DISCORD=discord://webhook_id
# Email (optional)
APPRISE_URL_EMAIL=smtp://user:pass@gmail.com:587
# Pushover (optional)
APPRISE_URL_PUSHOVER=pover://token/user_key
# Microsoft Teams (optional)
APPRISE_URL_TEAMS=msteams://TokenA/TokenB/TokenC/
```
### Benachrichtigungsregeln
```bash
# Benachrichtigungslevel (all, critical, maintenance, outage)
NOTIFICATION_LEVEL=all
# Filter für bestimmte Begriffe (kommagetrennt)
NOTIFICATION_FILTERS=störung,wartung,warnung
# Benachrichtigungszeiten (24h Format)
NOTIFICATION_HOURS=08:00-18:00
# Verzögerung zwischen Benachrichtigungen (in Sekunden)
NOTIFICATION_DELAY=5
# Debug-Modus für detaillierte Ausgaben
DEBUG_MODE=true
```
### Weitere Apprise-URLs
Weitere Apprise-URLs findest du in der [Apprise-Dokumentation](https://github.com/caronc/apprise#supported-notifications).
## Verwendung
### Hauptskript ausführen:
```bash
python ti_status_checker.py
```
### Verbindungstest:
```bash
python test_apprise.py
```
Das Test-Skript bietet:
- Test aller konfigurierten Endpunkte
- Einzeltests für jeden Endpunkt
- Konfigurationsanzeige
- Direkte URL-Tests
### Debug-Modus aktivieren:
```bash
# In .env setzen:
DEBUG_MODE=true
```
Das Skript gibt dann detaillierte Debug-Informationen aus:
- API-Aufruf und Antwort
- Anzahl der gefundenen Meldungen
- Verarbeitung jeder einzelnen Meldung
- Benachrichtigungsregeln-Auswertung
- Endpunkt-Status
### Für kontinuierliche Überwachung (z.B. mit cron):
```bash
# Alle 5 Minuten ausführen
*/5 * * * * cd /path/to/TI-Status2Mattermost && python ti_status_checker.py
```
## Benachrichtigungsregeln
### Filter
- Nur Meldungen mit bestimmten Begriffen senden
- Beispiel: `NOTIFICATION_FILTERS=störung,wartung`
### Zeiten
- Benachrichtigungen nur zu bestimmten Zeiten
- Beispiel: `NOTIFICATION_HOURS=08:00-18:00` (nur werktags)
- Beispiel: `NOTIFICATION_HOURS=09:00-17:00,19:00-22:00` (mehrere Zeiträume)
### Verzögerungen
- Verzögerung zwischen mehreren Benachrichtigungen
- Beispiel: `NOTIFICATION_DELAY=30` (30 Sekunden Pause)
## Unterstützte Dienste
Apprise unterstützt über 80 verschiedene Benachrichtigungsdienste, darunter:
- Mattermost
- Slack
- Telegram
- Discord
- Email
- Pushover
- Microsoft Teams
- und viele weitere
## Dateien
- `ti_status_checker.py` - Hauptskript mit Multi-Endpoint-Support
- `test_apprise.py` - Umfassendes Test-Tool für alle Endpunkte
- `requirements.txt` - Python-Abhängigkeiten (python-dotenv, apprise)
- `env.example` - Beispiel-Konfiguration mit allen Optionen
- `ti_status_state.json` - Lokale Statusverfolgung (wird automatisch erstellt)
- `.env` - Deine Konfiguration (nicht im Repository)
## Changelog
### Version 3.0 (Multi-Endpoint & Rules)
- ✅ Mehrere Apprise-Endpunkte gleichzeitig
- ✅ Konfigurierbare Benachrichtigungsregeln (Filter, Zeiten, Verzögerungen)
- ✅ Erweiterte Debug-Ausgaben
- ✅ Umfassendes Test-Tool für alle Endpunkte
- ✅ Fallback für alte Konfigurationen
### Version 2.0 (Apprise-Integration)
- ✅ Umstellung von Mattermost Webhook auf Apprise API
- ✅ Konfiguration über .env Datei
- ✅ Unterstützung für über 80 Benachrichtigungsdienste
- ✅ Debug-Ausgaben für bessere Transparenz
- ✅ Verbesserte Markdown-Formatierung
### Version 1.0 (Ursprünglich)
- Mattermost Webhook Integration
- Lokale Statusverfolgung
## Lizenz
[MIT License](LICENSE.txt)