[Anleitung] Simples USV Batterie Schnelltest User Script mit NUT


Recommended Posts

Hier ein kleiner Anfänger Guide/Inspiration für einen automatischen Batterie Test einer USV, welche per NUT Plugin betrieben wird.

Das Script lässt einen lautlosen Batterie schnelltest der USV laufen und gibt das Ergebnis per Standard Unraid Nachricht aus. 

 

Vorab sollte man einmal testen, ob test.battery.start.quick verfügbar ist. Das ganze per folgendem Befehl im Terminal:

upscmd -l UnraidUPS

 

UnraidUPS steht hier für den UPS Name aus dem NUT Plugin:

546962493_Screenshot2023-03-0519_57_11.png.55de74eff4436c34491a7a1a2519d97e.png

 

Sollte test.battery.start.quick in der Liste auftauschen, kann man recht einfach folgendes Script per User Script Plugin ausführen lassen:

#!/bin/bash

###NUT UPS QUICK BATTERY TEST###
###V1.1
###https://forums.unraid.net/topic/135969-anleitung-simples-usv-batterie-schnelltest-user-script-mit-nut/
################################


#vars###
u="admin"			#username
p="adminpass"			#password
upshost="UnraidUPS"		#UPSname@IP:Port - IP and PORT are optional
########



#battery test
upscmd -u $u -p $p $upshost test.battery.start.quick
upscmd -u $u -p $p $upshost beeper.mute
sleep 2s


#wait for result
result=$(upsc $upshost ups.test.result)
while [[ $result == "In progress"* ]]
do
  sleep 0.5s
  result=$(upsc $upshost ups.test.result)
done


#unraid notifitcation
result_success="$(echo ${result} | grep -E '\b(passed|success|OK|successful)\b')"
result_warn="$(echo ${result} | grep -E '\b(warning|WARN)\b')"

if [ -n "${result_warn}" ]; then
  /usr/local/emhttp/webGui/scripts/notify -s "UPS test passed with warnings." -d "$result" -i warning
elif [ -n "${result_success}" ]; then
  /usr/local/emhttp/webGui/scripts/notify -s "UPS test passed." -d "$result" -i normal
else
  /usr/local/emhttp/webGui/scripts/notify -s "UPS test failed!" -d "$result" -i alert
fi

 

uund upshost sind in dem Script die default Werte des NUT Plugins, können/sollten jedoch angepasst werden, wenn diese verändert wurden.

 

Edited by sonic6
  • Like 3
Link to comment

Da ich mit Skripten etc nicht viel Erfahrung habe, bin ich für Kritik und Anmerkungen offen.

 

Um das Script aktuell zu halten und zu erweitern, teilt mir bitte mit, wenn ihr es mit euer USV getestet habt und/oder abweichende Meldungen für Bestandene oder Fehlgeschlagene Tests bekommt.

 

Getestet wurde das Script mit folgenden USVen:

- CyberPower CP900EPFCLCD

 

 

Changelog/Anpassungen

06.03.2023 - V1.1 (danke an @Anym001 und @ich777 fürs Notification IF), getestete USVen, Anpassung der Beschreibung

Edited by sonic6
Link to comment

Vorschlag für die Unraid Notification: 

 

#unraid notification
result=$(upsc $upshost ups.test.result)
if [[ $result == "Done and passed" ]]; then
  /usr/local/emhttp/webGui/scripts/notify -i normal -s "USV test passed." -d "$result"
else
  /usr/local/emhttp/webGui/scripts/notify -i alert -s "USV test failed!" -d "$result"
  exit 1
fi

 

Edited by Anym001
  • Thanks 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.