# 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@/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)