Umstellung auf Apprise API mit .env Konfiguration und Debug-Ausgaben
This commit is contained in:
128
README.md
128
README.md
@ -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]
|
Reference in New Issue
Block a user