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

  1. Repository klonen:
git clone https://gitea.medisoftware.org/Markus/TI-Status2Mattermost.git
cd TI-Status2Mattermost
  1. Virtuelle Umgebung erstellen und aktivieren:
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
  1. Abhängigkeiten installieren:
pip install -r requirements.txt

Konfiguration

  1. Kopiere die Beispiel-Konfiguration:
# Windows:
copy env.example .env
# Linux/Mac:
cp env.example .env
  1. 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
  • 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

Description
Ein Python-Skript, das den TI-Status überwacht und neue Meldungen über Apprise an verschiedene Dienste sendet.
https://medisoftware.de
Readme 5.2 MiB
Languages
Python 98.6%
Dockerfile 1.4%