Da ich alle meine Bausteine kostenlos zur Verfügung stelle und ich das auch gerne beibehalten möchte, würde ich mich über eine kleine PayPal-Spende freuen. Vielen Dank für deine Unterstützung.
Spende eine kleine Aufwandsentschädigung
Dieses Python-Skript überwacht Fahrzeugstatusänderungen in Divera 24/7 in Echtzeit über die WebSocket-Schnittstelle und versendet automatisch Divera-Mitteilungen an definierte Empfänger.
Das Skript unterstützt mehrere Organisationen (UCRs) gleichzeitig und erkennt die verfügbaren Organisationen automatisch über den hinterlegten API-Schlüssel.
- Echtzeitüberwachung von Fahrzeugstatusänderungen
- Unterstützung mehrerer Organisationen (UCRs)
- Automatische Erkennung aller verfügbaren Organisationen
- Individuelle Empfänger je Organisation
- Versand an Gruppen oder Benutzer
- Mehrere Benachrichtigungsmodi
- Mehrere Benachrichtigungsziele
- Automatische Wiederverbindung bei Verbindungsabbrüchen
- Duplikat-Filter gegen doppelte Benachrichtigungen
- Automatische Service-Installation unter Linux
- Push-Benachrichtigungen optional
- E-Mail-Benachrichtigungen optional
- Automatische Archivierung von Mitteilungen
Eine Mitteilung wird versendet, wenn sich der Fahrzeugstatus
- von Status 6 auf einen anderen Status ändert oder
- von einem anderen Status auf Status 6 ändert.
Bei jeder Fahrzeugstatusänderung wird eine Mitteilung versendet.
Eine Mitteilung wird versendet, sobald ein definierter Zielstatus erreicht wird.
Beispiel:
Zielstatus = 2
1 → 2 = Nachricht
6 → 2 = Nachricht
3 → 2 = Nachricht
2 → 2 = keine Nachricht
Die Nachricht wird an die Empfänger der Organisation gesendet, aus der das Fahrzeug stammt.
Beispiel:
Fahrzeug gehört zu Organisation A
→ Nachricht an Empfänger von Organisation A
Alle Statusänderungen werden an die Empfänger der ersten konfigurierten Hauptorganisation gesendet.
Beispiel:
Fahrzeug aus Organisation A
Fahrzeug aus Organisation B
Fahrzeug aus Organisation C
→ Alle Nachrichten gehen an dieselben Empfänger
Es werden ausschließlich Fahrzeuge eines bestimmten Clusters berücksichtigt.
Beispiel:
Ziel-Cluster-ID = 12345
Fahrzeug Cluster 12345 → Nachricht
Fahrzeug Cluster 67890 → keine Nachricht
Jede Statusänderung wird an alle konfigurierten Organisationen gesendet – pro Organisation ein eigener API-Aufruf mit den jeweils hinterlegten Empfängern (Gruppen oder Benutzer).
Beispiel:
Organisation A → Gruppen [101, 102]
Organisation B → Benutzer [220053]
Organisation C → Gruppen [305]
→ Statusänderung eines beliebigen Fahrzeugs sendet Nachrichten an A, B und C
- Linux (z. B. Raspberry Pi OS, Debian, Ubuntu)
- Python 3
- Git
- sudo
Die benötigten Python-Module werden während des Setups automatisch installiert.
sudo apt update
sudo apt install git -y
git clone https://github.com/Sleepwalker86/Divera_FMS_Status_to_Message.git
cd Divera_FMS_Status_to_Message
sudo python3 setup.pyDer Setup-Assistent führt durch die komplette Konfiguration.
Folgende Einstellungen werden abgefragt:
- Privater Divera API-Key
- Zu überwachende Organisationen
- Benachrichtigungsmodus
- Zielstatus (bei Modus 3)
- Archivierungseinstellungen
- Push-Benachrichtigungen
- E-Mail-Benachrichtigungen
- Privater Modus
- Titel der Mitteilung
- Benachrichtigungsziel
- Empfänger pro Organisation
Am Ende werden automatisch erstellt:
config.jsondivera_websocket.service
Anschließend wird der Dienst automatisch gestartet.
Für jede Organisation können eigene Empfänger hinterlegt werden.
Versand an ausgewählte Divera-Gruppen.
Beispiel:
Gruppe Atemschutz
Gruppe Führung
Gruppe ELW
Versand an ausgewählte Benutzer.
Beispiel:
Max Mustermann
Erika Musterfrau
Alle Meldungen und Fehler werden in der Datei
log.txt
im Projektverzeichnis gespeichert.
sudo systemctl status divera_websocketsudo systemctl start divera_websocketsudo systemctl stop divera_websocketsudo systemctl restart divera_websocketsudo systemctl enable divera_websocketsudo systemctl disable divera_websocketcd Divera_FMS_Status_to_Message
git pull
sudo systemctl restart divera_websockettail -f log.txtjournalctl -u divera_websocket -fsudo systemctl daemon-reload
sudo systemctl restart divera_websocketDie Datei config.json enthält sensible Daten wie den Divera API-Key.
Es wird empfohlen, die Datei nicht zu veröffentlichen und in die .gitignore aufzunehmen.
Beispiel:
config.json
__pycache__/
*.logDieses Projekt wird kostenlos zur Verfügung gestellt.
Die Nutzung erfolgt auf eigene Verantwortung.