Anbindung von USV-Systemen mit USB-Anschluss an FE2-Server

⚠︎ Warnung

Die Anleitung wird noch bearbeitet und enthält Fehler.

Die Anweisungen zu befolgen kann zur Korruption ihres Systems führen.

🛈 Hinweis

Diese Anleitung sehr ausführlich und richtet sich an technisch versierte Anwender. Folgen Sie den Anweisungen nur, wenn Sie zu jedem Zeitpunkt sicher sind, was Sie tun.

Eine einfach gehaltene Übersicht finden Sie hier

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.

  • Server (Linux / Synology NAS / Raspberry PI, jeweils mit Admin-Rechten)
  • USV mit USB-Schnittstelle
  • FE2-Server mit freigegebener Weboberfläche (Port 83)

🛈 Hinweis

Diese Anleitung wurde mit folgenden Versionen getestet:

  • FE2-Server – Version 2.41.137-STABLE
  • Synology DS218+ – Software-Version DSM 7.1.1-42962

Eine abweichende Konfiguration kann unter Umständen zu einem andern Ergebnis führen.

Öffnen Sie die Weboberfläche ihres FE2-Servers und melden Sie sich als In der Organisation an, die die zu alarmierenden Personen beinhaltet.

Erstellen Sie unter Adressbuch > Alarmgruppen eine neue Alarmgruppe. Und fügen Sie die gewünschten Personen hinzu.

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:

Unter Optionales > Betreff wird der Betreff eingetragen, der in der Kopfzeile von aPager PRO angezeigt wird:

Der zweite AlarmText-Baustein wird wie der erste Konfiguriert, mit der Ausnahme, dass der Betreff nicht auf „USV-Alarm 🔋“, sondern auf

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.

Falls noch nicht geschehen muss der HTTP/GET-Empfang aktiviert werden.

Dafür wird unter Administration > Alarmeingang “ der Alarmeingang „Externe Schnittstelle“ hinzugefügt.

Im Reiter HTTP müssen die Option „HTTP GET“ aktiviert und folgende Werte als „GET Parameter“ eingetragen werden:

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

In den Reitern „Einstellungen“, „Alarmierung“, „Datenschutz“ und „Metriken“ werden keine Änderungen vorgenommen.

Im Python-Script muss eine Einheitenkennung hinterlegt werden.

Die Einheitenkennung findet sich unter Administration > Organisationen > [Organisation] > Einheiten > [Einheit]

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

Infoalarm

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:

VariableFunktion
FE2_WEBHOOK_URLAPI-URL des FE2-Servers
FE2_UNIT_CODEDer Einheitencode der Einheit, die alarmiert werden soll
FE2_POWER_OUTAGE_KEYWORDKeyword für den Alarmweg bei einem Stromausfall in FE2-Server
FE2_POWER_RESTORE_KEYWORDKeyword für den Alarmweg bei Wiederherstellung der Stromversorgung in FE2-Server
FE2_POWER_OUTAGE_TEXTNachricht, die im Falle eines Stromausfalls an FE2-Server geschickt wird; kann als Alarmtext genutzt werden
FE2_POWER_RESTORE_TEXTNachricht, die an den FE2-Server gesendet wird, wenn die Stromversorgung wiederhergestellt wurde; kann als Alarmtext genutzt werden
CHECK_INTERVALWie viele Sekunden soll nach jeder Statusabfrage gewartet werden
BATTERY_TIMEOUTWie viele Sekunden gewartet wird, bevor nach einem Stromausfall ein Alarm gesendet wird (um kurze Stromausfälle nicht zu beachten)
ALERT_POWER_RESTORESoll bei Wiederherstellung der Stromversorgung erneut ein Alarm gesendet werden?
POWER_RESTORE_TIMEOUTWie viele Sekunden soll nach Wiederherstellen der Stromversorgung gewartet werden, bis ein Alarm gesendet wird

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:

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.

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.

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).

⚠︎ Achtung

Achten Sie unbedingt darauf die Aufgabe nur einmal zu starten. Das Python-Script läuft im Hintergrund dauerhaft weiter, bis es durch einen Neustart des Systems automatisch angehalten und beim Hochfahren durch die eben erstellte Aufgabe wieder gestartet wird. Wird es mehrmals per Hand ausgeführt, läuft es auch mehrmals und der Alarm wird mehrmals abgeschickt.

Öffnen Sie im vorher ausgewählten Ausgabeordner die output.log-Datei und prüfen Sie, ob das Script erfolgreich gestartet wurde.

Bei dieser Variante ist erheblich mehr Konfiguration nötig, dementsprechend ist sie eher für Nutzer geeignet, die bereit Erfahrung mit Linux haben.

Text

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

⚠︎ Warnung

Arbeiten an elektrischen Anlagen sind nur von Elektrofachkräften durchzuführen.
  • 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