TI-Status-Bot
Ein Python-Skript, das den TI-Status überwacht und neue Meldungen über Apprise an verschiedene Dienste sendet.
Features
- Überwacht die TI-Status-API auf neue Meldungen
- Sendet Benachrichtigungen über Apprise (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
- Repository klonen:
git clone https://gitea.medisoftware.org/Markus/TI-Status2Mattermost.git
cd TI-Status2Mattermost
- Virtuelle Umgebung erstellen und aktivieren:
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
- Abhängigkeiten installieren:
pip install -r requirements.txt
Konfiguration
- Kopiere die Beispiel-Konfiguration:
# Windows:
copy env.example .env
# Linux/Mac:
cp env.example .env
- Bearbeite die
.env
Datei und konfiguriere deine Endpunkte:
Mehrere Endpunkte konfigurieren
# 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
# 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.
Verwendung
Hauptskript ausführen:
python ti_status_checker.py
Verbindungstest:
python test_apprise.py
Das Test-Skript bietet:
- Test aller konfigurierten Endpunkte
- Einzeltests für jeden Endpunkt
- Konfigurationsanzeige
- Direkte URL-Tests
Debug-Modus aktivieren:
# 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):
# 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
- Pushover
- Microsoft Teams
- und viele weitere
Dateien
ti_status_checker.py
- Hauptskript mit Multi-Endpoint-Supporttest_apprise.py
- Umfassendes Test-Tool für alle Endpunkterequirements.txt
- Python-Abhängigkeiten (python-dotenv, apprise)env.example
- Beispiel-Konfiguration mit allen Optionenti_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
Description
Ein Python-Skript, das den TI-Status überwacht und neue Meldungen über Apprise an verschiedene Dienste sendet.
https://medisoftware.de
Languages
Python
98.6%
Dockerfile
1.4%