Skript für Cron-Ausführung angepasst, README aktualisiert

This commit is contained in:
2025-06-26 12:01:12 +02:00
parent 741eb4b477
commit ae0a20e93b
2 changed files with 28 additions and 27 deletions

View File

@ -3,7 +3,7 @@
Dieses Python-Skript überwacht die Webseite [https://fachportal.gematik.de/ti-status](https://fachportal.gematik.de/ti-status) auf neue Störungsmeldungen und sendet diese automatisch an einen Mattermost-Webhook.
## Funktionsweise
- Die Seite wird regelmäßig (alle 5 Minuten) auf neue Meldungen geprüft.
- Die Seite 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.
@ -24,25 +24,29 @@ Das Skript kann direkt gestartet werden:
python ti_status_checker.py
```
Das Skript läuft in einer Endlosschleife und prüft alle 5 Minuten auf neue Meldungen.
Das Skript prüft einmalig auf neue Meldungen und beendet sich dann.
### 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
```
### Automatisierung mit Task Scheduler (Windows)
Nutze die Aufgabenplanung, um das Skript alle 5 Minuten zu starten.
## Nutzung mit Docker
1. Docker-Image bauen:
```bash
docker build -t ti-status2mattermost .
```
2. Container starten:
```bash
docker run -d --name ti-status2mattermost ti-status2mattermost
```
Die Datei `ti_status_state.json` bleibt im Container gespeichert. Um den Status dauerhaft zu sichern, kann ein Volume gemountet werden:
```bash
docker run -d --name ti-status2mattermost -v $(pwd)/ti_status_state.json:/app/ti_status_state.json 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
```
## Konfiguration
- Die Mattermost-Webhook-URL und die Status-URL sind im Skript als Konstanten hinterlegt.
- Das Intervall kann über die Variable `CHECK_INTERVAL` (in Sekunden) angepasst werden.
## Hinweise
- Bereits gesendete Meldungen werden in der Datei `ti_status_state.json` gespeichert.

View File

@ -8,7 +8,6 @@ import re
TI_STATUS_URL = "https://fachportal.gematik.de/ti-status"
WEBHOOK_URL = "https://mattermost.medisoftware.org/hooks/i67zgcgajifxxxtfwjxcxace7a"
STATE_FILE = "ti_status_state.json"
CHECK_INTERVAL = 300 # 5 Minuten
def fetch_status_messages():
resp = requests.get(TI_STATUS_URL)
@ -69,8 +68,7 @@ def send_to_mattermost(message):
def main():
state = load_state()
known_messages = set(state.get("messages", []))
print("Starte Überwachung der TI-Status-Seite...")
while True:
print("Prüfe TI-Status-Seite auf neue Meldungen...")
try:
messages = fetch_status_messages()
new_messages = [m for m in messages if m not in known_messages]
@ -84,7 +82,6 @@ def main():
print(f"Keine neuen Meldungen ({datetime.now().strftime('%H:%M:%S')})")
except Exception as e:
print(f"Fehler: {e}")
time.sleep(CHECK_INTERVAL)
if __name__ == "__main__":
main()