mirror of
https://github.com/raspiblitz/raspiblitz.git
synced 2025-03-17 21:31:45 +01:00
Add support for X708 UPS HAT (#3087)
This commit is contained in:
parent
20045be2f2
commit
6aea40a58b
6
FAQ.md
6
FAQ.md
@ -620,10 +620,12 @@ See issues #3039, #1053 & #782
|
||||
|
||||
A UPS (Uninterruptible Power Supply) is used to protect the RaspiBlitz against power outages. Normally you put it just between your normal power outlet and your RaspiBlitz and you are set. But some UPS offer a way to communicate with devices. This can be very useful for example if on a longer power outage the battery of the UPS runs low the RaspiBlitz could detect this and power down in a clean way - instead of a sudden stop that risks data loss or corruption.
|
||||
|
||||
There is an experimental script to connect the RaspiBlitz to a UPS over USB cable build by APC - the Model tested with was [APC Back-UPS BX - BX700U-GR](https://www.amazon.de/APC-Back-UPS-Unterbrechungsfreie-Stromversorgung-BX700U-GR/dp/B00T7BYRCK) but it should work with every APC model offering a USB port.
|
||||
|
||||
- There is an experimental script to connect the RaspiBlitz to a UPS over USB cable build by APC - the Model tested with was [APC Back-UPS BX - BX700U-GR](https://www.amazon.de/APC-Back-UPS-Unterbrechungsfreie-Stromversorgung-BX700U-GR/dp/B00T7BYRCK) but it should work with every APC model offering a USB port. \
|
||||
To turn it on run from terminal: `/home/admin/config.scripts/blitz.ups.sh on apcusb`
|
||||
|
||||
- There is also a script dealing with Geekworm/Suptronics [X708 UPS HAT](https://www.amazon.com/Geekworm-Raspberry-Management-Detection-Shutdown/dp/B08DNRYM4Y/). The tested model was x708v1.2. \
|
||||
To turn it on run from terminal: `/home/admin/config.scripts/blitz.ups.sh on x708`
|
||||
|
||||
If you have other UPS models or ways to connect ... feel free to extend this script.
|
||||
|
||||
### Can I run my RaspiBlitz on Solar Energy?
|
||||
|
@ -7,6 +7,7 @@ source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
echo "Configure a UPS (Uninterruptible Power Supply)"
|
||||
echo "blitz.ups.sh on apcusb"
|
||||
echo "blitz.ups.sh on x708"
|
||||
echo "blitz.ups.sh status"
|
||||
echo "blitz.ups.sh off"
|
||||
exit 1
|
||||
@ -21,7 +22,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
echo "Turn ON: UPS"
|
||||
|
||||
if [ "$2" = "apcusb" ]; then
|
||||
|
||||
|
||||
# MODEL: APC with USB connection
|
||||
# see video: https://www.youtube.com/watch?v=6UrknowJ12o
|
||||
|
||||
@ -48,13 +49,37 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
sudo sed -i "s/^WALL=.*/#WALL=wall/g" /etc/apcupsd/apccontrol
|
||||
sudo systemctl enable apcupsd
|
||||
sudo systemctl start apcupsd
|
||||
|
||||
|
||||
# set ups config value (in case of update)
|
||||
/home/admin/config.scripts/blitz.conf.sh set ups "apcusb"
|
||||
|
||||
echo "OK - UPS is now connected"
|
||||
echo "Check status/connection with command: apcaccess"
|
||||
|
||||
elif [ "$2" = "x708" ]; then
|
||||
|
||||
# MODEL: Geekworm/Suptronics X708 v1.2
|
||||
|
||||
# enable I2C interface
|
||||
sudo raspi-config nonint do_i2c 0
|
||||
|
||||
# install prerequisites
|
||||
sudo apt-get install -y python3-smbus i2c-tools
|
||||
|
||||
# clone git repository with the X708 scripts
|
||||
git clone https://github.com/HiLivin/x708blitz.git /home/admin/x708blitz
|
||||
cd /home/admin/x708blitz
|
||||
git checkout 2ed6caffedef3bd523732287234ebe9d200fd92f
|
||||
|
||||
# run install script
|
||||
sudo bash /home/admin/x708blitz/install.sh
|
||||
|
||||
# set ups config value (in case of update)
|
||||
/home/admin/config.scripts/blitz.conf.sh set ups "x708"
|
||||
|
||||
echo "OK - X708 UPS HAT is now connected"
|
||||
echo "Please, perform restart to apply changes."
|
||||
|
||||
else
|
||||
echo "FAIL: unknown or missing second parameter 'UPSTYPE'"
|
||||
exit 1
|
||||
@ -87,6 +112,22 @@ if [ "$1" = "status" ]; then
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
|
||||
elif [ "${ups}" = "x708" ]; then
|
||||
info=$(python3 /home/admin/x708blitz/x708.info.py)
|
||||
status=$(echo $info | cut -d "," -f1)
|
||||
if [ ${#status} -eq 0 ]; then
|
||||
echo "upsStatus='n/a'"
|
||||
else
|
||||
echo "upsStatus='${status}'"
|
||||
# get battery level if possible
|
||||
if [ "${status}" = "ONLINE" ] || [ "${status}" = "ONBATT" ]; then
|
||||
battery=$(echo $info | cut -d "," -f2)
|
||||
echo "upsBattery='${battery}'"
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
|
||||
else
|
||||
echo "upsStatus='CONFIG'"
|
||||
exit 0
|
||||
@ -113,6 +154,13 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||
sudo systemctl disable apcupsd
|
||||
sudo apt-get remove -y apcupsd
|
||||
/home/admin/config.scripts/blitz.conf.sh set ups "off"
|
||||
|
||||
elif [ "${ups}" = "x708" ]; then
|
||||
sudo bash /home/admin/x708blitz/uninstall.sh
|
||||
sudo raspi-config nonint do_i2c 1
|
||||
sudo apt-get remove -y python3-smbus i2c-tools
|
||||
/home/admin/config.scripts/blitz.conf.sh set ups "off"
|
||||
|
||||
else
|
||||
echo "FAIL: unknown UPSTYPE: ${ups}"
|
||||
exit 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user