Umstellung auf Apprise API mit .env Konfiguration und Debug-Ausgaben

This commit is contained in:
2025-06-27 13:48:20 +02:00
parent 5e2e03098c
commit 1dd444aa5d
6 changed files with 141 additions and 62 deletions

128
README.md
View File

@ -1,56 +1,110 @@
# TI-Status2Mattermost
Dieses Python-Skript überwacht die TI-Lagebild-API [https://ti-lage.prod.ccs.gematik.solutions/lageapi/v2/tilage](https://ti-lage.prod.ccs.gematik.solutions/lageapi/v2/tilage) auf neue Störungs- und Wartungsmeldungen und sendet diese automatisch an einen Mattermost-Webhook.
Ein Python-Skript, das den TI-Status überwacht und neue Meldungen über Apprise an verschiedene Dienste sendet.
## Funktionsweise
- Die API wird bei jedem Aufruf auf neue Meldungen geprüft.
- Neue Meldungen werden erkannt und als formatierte Nachricht an Mattermost gesendet.
- Bereits gesendete Meldungen werden gespeichert, sodass sie nach einem Neustart nicht erneut verschickt werden.
## Features
## Voraussetzungen
- Python 3.8 oder neuer
- Zugriff auf die Mattermost-Webhook-URL
- Überwacht die TI-Status-API auf neue Meldungen
- Sendet Benachrichtigungen über Apprise (unterstützt viele Dienste wie Mattermost, Slack, Telegram, Discord, etc.)
- Konfiguration über .env Datei
- Markdown-Formatierung der Nachrichten
- Vermeidet Duplikate durch lokale Statusverfolgung
- Debug-Ausgaben für bessere Transparenz
## Installation
1. Repository klonen oder Dateien herunterladen.
2. Abhängigkeiten installieren:
```bash
pip install -r requirements.txt
```
## Nutzung
Das Skript kann direkt gestartet werden:
1. Repository klonen:
```bash
git clone <repository-url>
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
cp env.example .env
```
2. Bearbeite die `.env` Datei und setze deine Apprise URL:
### Mattermost Webhook
```
APPRISE_URL=mattermost://username:password@mattermost.medisoftware.org/channel?webhook=your_webhook_id
```
### 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`
Weitere Apprise-URLs findest du in der [Apprise-Dokumentation](https://github.com/caronc/apprise#supported-notifications).
## Verwendung
Skript einmalig ausführen:
```bash
python ti_status_checker.py
```
Das Skript prüft einmalig auf neue Meldungen und beendet sich dann.
Das Skript gibt Debug-Informationen aus:
- API-Aufruf und Antwort
- Anzahl der gefundenen Meldungen
- Verarbeitung jeder einzelnen Meldung
### Automatisierung mit Cron (Linux)
Um das Skript alle 5 Minuten auszuführen, kann ein Cronjob eingerichtet werden:
```cron
*/5 * * * * cd /pfad/zum/projekt && /usr/bin/python3 ti_status_checker.py
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
```
### Automatisierung mit Task Scheduler (Windows)
Nutze die Aufgabenplanung, um das Skript alle 5 Minuten zu starten.
## Unterstützte Dienste
## Nutzung mit Docker
1. Docker-Image bauen:
```bash
docker build -t ti-status2mattermost .
```
2. Container regelmäßig starten (z.B. mit Cron):
```cron
*/5 * * * * docker run --rm -v $(pwd)/ti_status_state.json:/app/ti_status_state.json ti-status2mattermost
```
Apprise unterstützt über 80 verschiedene Benachrichtigungsdienste, darunter:
- Mattermost
- Slack
- Telegram
- Discord
- Email
- Pushover
- Microsoft Teams
- und viele weitere
## Konfiguration
- Die Mattermost-Webhook-URL und die API-URL sind im Skript als Konstanten hinterlegt.
## Dateien
## Hinweise
- Bereits gesendete Meldungen werden in der Datei `ti_status_state.json` gespeichert.
- Die Markdown-Formatierung der Nachrichten sorgt für eine übersichtliche Darstellung in Mattermost.
- `ti_status_checker.py` - Hauptskript mit Debug-Ausgaben
- `requirements.txt` - Python-Abhängigkeiten (python-dotenv, apprise)
- `env.example` - Beispiel-Konfiguration
- `ti_status_state.json` - Lokale Statusverfolgung (wird automatisch erstellt)
- `.env` - Deine Konfiguration (nicht im Repository)
## Changelog
### 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
[Deine Lizenz hier]