Implementiere Multi-Endpoint Support und konfigurierbare Benachrichtigungsregeln (Version 3.0)
This commit is contained in:
107
README.md
107
README.md
@ -6,10 +6,13 @@ Ein Python-Skript, das den TI-Status überwacht und neue Meldungen über Apprise
|
||||
|
||||
- Überwacht die TI-Status-API auf neue Meldungen
|
||||
- Sendet Benachrichtigungen über Apprise (unterstützt viele Dienste wie Mattermost, Slack, Telegram, Discord, 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
|
||||
- Umfassende Test-Tools
|
||||
|
||||
## Installation
|
||||
|
||||
@ -40,38 +43,108 @@ pip install -r requirements.txt
|
||||
cp env.example .env
|
||||
```
|
||||
|
||||
2. Bearbeite die `.env` Datei und setze deine Apprise URL:
|
||||
2. Bearbeite die `.env` Datei und konfiguriere deine Endpunkte:
|
||||
|
||||
### Mattermost Webhook
|
||||
```
|
||||
APPRISE_URL=mattermost://username:password@mattermost.medisoftware.org/channel?webhook=your_webhook_id
|
||||
### Mehrere Endpunkte konfigurieren
|
||||
|
||||
```bash
|
||||
# Mattermost Webhook
|
||||
APPRISE_URL_MATTERMOST=mattermost://username:password@mattermost.medisoftware.org/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/
|
||||
```
|
||||
|
||||
### Andere Dienste
|
||||
- **Slack**: `APPRISE_URL=slack://token_a/token_b/token_c/#channel`
|
||||
- **Telegram**: `APPRISE_URL=telegram://bottoken/ChatID`
|
||||
- **Discord**: `APPRISE_URL=discord://webhook_id`
|
||||
### 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
|
||||
|
||||
Skript einmalig ausführen:
|
||||
### Hauptskript ausführen:
|
||||
```bash
|
||||
python ti_status_checker.py
|
||||
```
|
||||
|
||||
Das Skript gibt Debug-Informationen aus:
|
||||
### 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):
|
||||
### 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:
|
||||
@ -86,14 +159,22 @@ Apprise unterstützt über 80 verschiedene Benachrichtigungsdienste, darunter:
|
||||
|
||||
## Dateien
|
||||
|
||||
- `ti_status_checker.py` - Hauptskript mit Debug-Ausgaben
|
||||
- `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
|
||||
- `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
|
||||
|
Reference in New Issue
Block a user