Anbindung von USV-Systemen mit USB-Anschluss an FE2-Server
Inhalt:
Ziel:
Im Falle eines Stromausfalles soll über FE2-Server und aPager PRO ein (Info-)Alarm an bestimmte Mitglieder einer Feuerwehr oder Behörde gesendet werden, sodass bspw. eine Notstromversorgung sichergestellt werden kann, bevor die Unterbrechungsfreie Stromversorgung (USV) ausfällt.
Technische Voraussetzungen:
- Server (Linux / Synology NAS / Raspberry PI, jeweils mit Admin-Rechten)
- USV mit USB-Schnittstelle
- FE2-Server mit freigegebener Weboberfläche (Port 83)
FE2-Server konfigurieren
Öffnen Sie die Weboberfläche ihres FE2-Servers und melden Sie sich als In der Organisation an, die die zu alarmierenden Personen beinhaltet.
1. Schritt: Alarmgruppe anlegen und Personen hinzufügen
Erstellen Sie unter Adressbuch > Alarmgruppen eine neue Alarmgruppe. Und fügen Sie die gewünschten Personen hinzu.

2. Schritt: Einheit anlegen und konfigurieren
Erstellen Sie im Reiter Einheiten eine neue Einheit und öffnen Sie durch einen Klick auf den Namen den Alarmablauf und bauen Sie ihn wie folgt auf:

In der ersten WhiteList wird in der Wortliste das Wort „FF-USV-AUS“ eingetragen. (Das Wort kann auch individuell angepasst werden, muss dann aber im Python-Script geändert werden)

Unter Optionales > Quelle muss noch „fe2_usv_status“ eingetragen werden.

Alle anderen Einstellungen können irgnoriert werden.
Die zweite WhiteList wird genauso konfiguriert, nur wird hier in der Wortliste statt „FF-USV-AUS“ „FF-USV-EIN“ eingetragen. (Oder auch hier ein eigenes Wort)


Als nächstes werden die beiden Alarmtext-Plugins angepasst:

&TEXT&
Ort: Feuerwehrhaus Wasserlos
(Automatische Meldung)
Unter Optionales > Betreff wird der Betreff eingetragen, der in der Kopfzeile von aPager PRO angezeigt wird:

USV-Alarm 🔋
Der zweite AlarmText-Baustein wird wie der erste Konfiguriert, mit der Ausnahme, dass der Betreff nicht auf „USV-Alarm 🔋“, sondern auf
USV-Entwarnung 🔋
gesetzt wird.
Als letztes müssen nun noch die beiden aPager PRO-Bausteine angepasst werden.
Unter Alarmgruppen wird die vorher angelegte Alarmgruppe aktiviert:

Im Reiter Optionales sollte unter Nachrichtenkennung noch die Option „Betreff (aus Alarmtext-Plugin)“ ausgewählt werden.

Der zweite aPager PRO-Baustein wird ebenfalls wie der erste konfiguriert, eventuell mit der Ausnahme, dass der Alarm als Info-Alarm versendet wird.
Die folgenden Schritte werden in der Administration ausgeführt.
3. Schritt: Alarmeingang hinzufügen
Falls noch nicht geschehen muss der HTTP/GET-Empfang aktiviert werden.
Dafür wird unter Administration > Alarmeingang “ der Alarmeingang „Externe Schnittstelle“ hinzugefügt.

4. Schritt: Alarmeingang konfigurieren
Im Reiter HTTP müssen die Option „HTTP GET“ aktiviert und folgende Werte als „GET Parameter“ eingetragen werden:
fe2_usv_status;fe2_usv_status
fe2_usv_keyword;fe2_usv_keyword
fe2_usv_unit;address

Unter Erlaubte Einheiten > Erlaubte Einheiten wird die vorher angelegte Einheit aktiviert:

In den Reitern „Einstellungen“, „Alarmierung“, „Datenschutz“ und „Metriken“ werden keine Änderungen vorgenommen.
5. Schritt: Einheitenkennung kopieren
Im Python-Script muss eine Einheitenkennung hinterlegt werden.
Die Einheitenkennung findet sich unter Administration > Organisationen > [Organisation] > Einheiten > [Einheit]
⚠︎ Teilen Sie diesen Code mit niemandem!

Mit dieser Konfiguration sollten die Alarme in aPager PRO später ungefähr so aussehen:



Python-Script bearbeiten
Kopieren Sie folgendes Python-Script und fügen Sie es in eine Datei ein.
https://ff-was.de/fileshare/fe2_usv.py
Bearbeiten Sie dann die folgenden Werte, im Python-Script:
| Variable | Funktion |
|---|---|
| FE2_WEBHOOK_URL | API-URL des FE2-Servers |
| FE2_UNIT_CODE | Der Einheitencode der Einheit, die alarmiert werden soll |
| FE2_POWER_OUTAGE_KEYWORD | Keyword für den Alarmweg bei einem Stromausfall in FE2-Server |
| FE2_POWER_RESTORE_KEYWORD | Keyword für den Alarmweg bei Wiederherstellung der Stromversorgung in FE2-Server |
| FE2_POWER_OUTAGE_TEXT | Nachricht, die im Falle eines Stromausfalls an FE2-Server geschickt wird; kann als Alarmtext genutzt werden |
| FE2_POWER_RESTORE_TEXT | Nachricht, die an den FE2-Server gesendet wird, wenn die Stromversorgung wiederhergestellt wurde; kann als Alarmtext genutzt werden |
| CHECK_INTERVAL | Wie viele Sekunden soll nach jeder Statusabfrage gewartet werden |
| BATTERY_TIMEOUT | Wie viele Sekunden gewartet wird, bevor nach einem Stromausfall ein Alarm gesendet wird (um kurze Stromausfälle nicht zu beachten) |
| ALERT_POWER_RESTORE | Soll bei Wiederherstellung der Stromversorgung erneut ein Alarm gesendet werden? |
| POWER_RESTORE_TIMEOUT | Wie viele Sekunden soll nach Wiederherstellen der Stromversorgung gewartet werden, bis ein Alarm gesendet wird |
Variante 1: USV an Synology NAS
1. Schritt: USV mit NAS verbinden und USV-Unterstützung aktivieren
Verbinden Sie ihre USV per USB-Kabel mit ihrem Synology NAS.
In der Weboberfläche des NAS muss dann unter
Systemsteuerung > Hardware & Energie > Allgemein
das Häkchen bei „USV-Unterstützung aktivieren“ gesetzt werden:

2. Schritt: Python installieren, konfigurieren und Python-Script hochladen
Python kann einfach über das Paketzentrum installiert werden.
Verbinden Sie sich dann per SSH auf das NAS (SSH muss eventuell unter Systemsteuerung > Terminal und SNMP > Terminal aktiviert werden).
Führen Sie nach erfolgreicher Anmeldung folgende Befehle aus:
sudo python -m ensurepip --upgrade
sudo python -m pip install requests
Laden Sie dann das bearbeitete Python-Script auf das NAS, z.B. in einen SMB-Ordner.
3. Schritt: NUT testen
Führen Sie zum testen folgenden Befehl aus:
sudo upsc ups
Danach sollte eine Reihe an Informationen zu ihrer USV zu sehen sein. Kann der Befehl nicht ausgeführt werden, folgen sie ab hier der Anleitung zur Verwendung mit Linux-Server weiter unten.
5. Schritt: Aufgabenplaner einrichten
Suchen Sie in der Weboberfläche des NAS unter „File Station“ die Datei, die Sie angelegt haben und kopieren Sie den Pfad aus dem Eigenschafts-Fenster.
Navigieren Sie dann zu „Systemsteuerung > Aufgabenplaner“ und erstellen Sie eine neue „Ausgelöste Aufgabe“ mit benutzerdefiniertem Skript


Im Reiter „Aufgabeneinstellungen“ muss dann noch der folgende Befehl eingetragen werden:
/usr/bin/python3 /pfad/zum/script.py
Gehen Sie jetzt in die Einstellungen des Aufgabenmanagers jetzt „Einstellungen“ und aktivieren Sie die Funktion „Ausgabeergebnisse speichern“. Wählen Sie unter Speicherort z.B. einen SMB-Ordner aus, sodass leicht darauf zugegriffen werden kann.
Die Aufgabe muss dann noch durch Rechtsklick > Ausführen einmal initial gestartet werden (bei jedem Neustart des NAS passiert das automatisch).
Öffnen Sie im vorher ausgewählten Ausgabeordner die output.log-Datei und prüfen Sie, ob das Script erfolgreich gestartet wurde.
Variante 2: USV an Linux Server
Bei dieser Variante ist erheblich mehr Konfiguration nötig, dementsprechend ist sie eher für Nutzer geeignet, die bereit Erfahrung mit Linux haben.
1. Schritt: NUT installieren und konfigurieren
Text
2. Schritt: Python installieren, konfigurieren und Python-Script hochladen
Verbinden Sie sich dann per SSH auf den Server (nicht nötig, wenn sie direkten Zugriff per Maus/Tastatur darauf haben):
Öffnen sie dazu auf einem Windows-Rechner, der sich im selben Netzwerk befindet wie der Server, die Powershell, indem Sie die Tastenkombination [WIN+r] drücken und „powershell“ in das geöffnete Fenster eingeben und „Ok“ wählen.
Führen sie im nun geöffneten Terminal folgende Befehlszeile aus:
ssh nutzername@server-ip
Ersetzen Sie hierbei „nutzername“ durch den Benutzernamen des Admin-Accounts, und „nas-ip“ durch die IP-Adresse oder den Hostnamen ihres NAS.
Geben Sie dann nach Aufforderung das Passwort des Account ein.
Führen Sie nach erfolgreicher Anmeldung nacheinander folgende Befehle aus: (während dem ausführen kann es dazu kommen, dass Sie die Installation bestätigen müssen)
sudo python -m ensurepip --upgrade
sudo python -m pip install requests
Ansätze für weitere Varianten
- ESP32 C3 Super Mini plus Optokoppler
- Optokoppler 230V/5V an Stromversorgung vor der USV
- ESP32 hinter der USV am USB-Netzteil
- WLAN-Verbindung zwischen ESP32 und Router
- Im Falle eines Stromausfalles fällt das Signal am Optokoppler ab und der ESP ruft den Alarm-Webhook auf
- + Vorteile: Funktioniert in fast allen Umgebungen (Voraussetzung: WLAN) unabhängig vom USV-System
- – Nachteile: Installation durch Fachkraft notwendig
- Shelly-Integration (funktioniert nur bei USV-Systemen ohne galvanisch getrennten
Neutralleiter)
- Shelly (oder ähnliches Smart-Relais) an Stromversorgung hinter der USV
- Switch-Kontakt vor der USV an den Außenleiter
- Im Falle eines Stromausfalles fällt das Signal am Schaltkontakt ab und der Shelly ruft per Script den Alarm-Webhook auf
