Also gut, es hat mir keine Ruhe gelassen.
Raspberry Pi (egal welche Version, ich hab einen Zero2W genutzt)
1 - das OS mit dem RaspberryPi-Imager installieren. Hier reicht es die 64Bit Lite Version zu nutzen.
2 - per SSH auf den Raspi loggen und alle Updates fahren
Code:
sudo apt-get update&&sudo apt-get upgrade
3 - Nut installieren
4 - nun legen wir die Fake-USV an.
Code:
sudo nano /etc/nut/ups.conf
und fügen ganz unten folgendes ein:
Code:
[ups]
driver = dummy-ups
port = /etc/nut/fakeups.state
desc = "Fake UPS for Synology"
Danach legen wir die Statusfiles der Fake-USV an:
Code:
sudo touch /etc/nut/fakeups.state
sudo chown nut:nut /etc/nut/fakeups.state
5 - Nun müssen wir den Service selbst konfigurieren:
Code:
sudo nano /etc/nut/upsd.conf
und fügen wieder ganz unten folgendes ein:
sowie in
Code:
sudo nano /etc/nut/upsd.users
ganz unten:
Code:
[monuser]
password = upsmonpass
upsmon master
ein
6 - Nut als Server Konfigurieren:
Code:
sudo nano /etc/nut/nut.conf
Dort passen wir MODE=none zu MODE=netserver an
7 - nun starten wir den Service und aktivieren ihn dauerhaft:
Code:
sudo systemctl enable nut-server
sudo systemctl enable nut-monitor
sudo systemctl restart nut-server
sudo systemctl restart nut-monitor
8 - Testen obs funktioniert:
eine Ausgabe sollte so aussehen:
Code:
Init SSL without certificate database
device.mfr: Dummy Manufacturer
device.model: Dummy UPS
device.type: ups
driver.debug: 0
driver.flag.allow_killpower: 0
driver.name: dummy-ups
driver.parameter.mode: dummy
driver.parameter.pollinterval: 2
driver.parameter.port: /etc/nut/fakeups.state
driver.parameter.synchronous: auto
driver.state: updateinfo
driver.version: 2.8.1
driver.version.internal: 0.18
ups.mfr: Dummy Manufacturer
ups.model: Dummy UPS
ups.status: OL
danach müssen wir unter Systemsteuerung -> Hardware&Energie -> USV -> USV-Unterstützung aktivieren -> Synology USV-Server aktivieren.
Dank NUT sollte die Syno das sofort erkennen.
Nun können wir ein kleines Skript erstellen um das ganze zu testen:
Code:
sudo nano simulate_full_cycle.sh
und dort fügen wir folgendes ein:
Code:
!/bin/bash
STATE="/etc/nut/fakeups.state"
set_state() {
echo "--------------------------------------------------"
echo ">>> $2"
echo "--------------------------------------------------"
echo -e "$1" | sudo tee $STATE > /dev/null
sleep 20
}
# 1. Normalzustand (Netzbetrieb)
set_state "ups.status: OL
battery.charge: 100
battery.runtime: 600
input.voltage: 230
output.voltage: 230
ups.load: 10" \
"Setze Zustand: NETZBETRIEB (OL) – Akku 100%, Laufzeit 10 min"
# 2. Stromausfall (On Battery)
set_state "ups.status: OB
battery.charge: 80
battery.runtime: 480
input.voltage: 0
output.voltage: 230
ups.load: 20" \
"Setze Zustand: STROMAUSFALL (OB) – Akku 80%, Laufzeit 8 min"
# 3. Batterie niedrig
set_state "ups.status: OB LB
battery.charge: 30
battery.runtime: 120
input.voltage: 0
output.voltage: 230
ups.load: 30" \
"Setze Zustand: BATTERIE NIEDRIG (OB LB) – Akku 30%, Laufzeit 2 min"
# 4. Kritisch → Synology fährt herunter
echo "--------------------------------------------------"
echo ">>> Setze Zustand: KRITISCH (OB LB FSD) – Synology sollte jetzt herunterfahren!"
echo "--------------------------------------------------"
echo -e "ups.status: OB LB FSD
battery.charge: 5
battery.runtime: 30
input.voltage: 0
output.voltage: 230
ups.load: 40" | sudo tee $STATE > /dev/null
echo ">>> Warte 120 Sekunden, bevor die USV wieder auf Normalzustand gesetzt wird..."
sleep 120
# 5. Automatischer Reset auf Normalzustand
echo "--------------------------------------------------"
echo ">>> Setze Zustand zurück auf NETZBETRIEB (OL) – System wieder normal"
echo "--------------------------------------------------"
echo -e "ups.status: OL
battery.charge: 100
battery.runtime: 600
input.voltage: 230
output.voltage: 230
ups.load: 10" | sudo tee $STATE > /dev/null
echo ">>> Zyklus abgeschlossen. Die USV ist wieder im Normalzustand."
Nun noch ausführbar machen:
Code:
sudo chmod +x simulate_full_cycle.sh
und mit
zum Test starten
Das Skript geht nun alle 20 sekunden einen block weiter.
beim start des Skripts sind alle werte super
nach 20 sek wird in den akkubetrieb umgeschalten
nach 40 sek wird die batterie niedrig geschalten
nach 60 sek sollte die Syno in den USV-Safemode gehen
hier müsstest du deine Steckdose ausschalten, sofern es eine Wifi-Fähige dose ist kannst du das sogar automatisch hier im skript machen lassen, lass der Syno aber genügend zeit zum sauberen aushängen. im Notfall erhöre die Delays auf mehrere Minuten
nach 180sekunden wird die USV wieder auf Normalbetrieb gesetzt. Sofern das Ausschalten noch nicht erfolgt ist, startet sich die Syno nun erneut und fährt wieder hoch, da die "Stromversorgungsprobleme" ja "behoben" sind
Bei meiner Syno lief das jetzt mehrmals Problemfrei durch.
Viel Spaß damit
