全部 / 技术交流 / 生活杂谈 · 2024年2月25日 2

一款锂电池的UPS

本文最后更新于 300 天前,其中的信息可能已经有所发展或改变。
外包装

前段时间购入NAS之后,经历了租房带来的各种意外停电,居然让NAS中的固态硬盘数次丢失数据(一次音乐数据,两次Docker数据)。为了将来避免突然断电对固态的损伤,决定再次购入一台UPS。

此前使用的UPS为山克600W,目的是为PS5供电,但针对一个几十瓦的迷你主机,用上一块如此大的砖头显得不太合适。好在万能的淘宝提供了“锂电池UPS”这一选项,锂电池的能量密度远高于铅酸电池,这使得UPS的体积巨幅缩小。但低功耗UPS市场也较小,因此没有大厂在这个领域竞争。最后博主选择了睿斯的电源,只能默默祈祷它的安全性过关了。

打开包装,是四根DC转接线、两根转接头、一条电源适配器,以及UPS本体。

使用情况

UPS的体积与重量都比普通充电宝稍大,输入功率144W,输出功率72W+10W+10W。接口配置还算丰富,三个功率共享的DC接口(总功率12V*6A,72W),一个5V2A DC接口,一个5V2A USB接口。除了功率共享需要手动设置,其它都是即插即用。

博主三个接口分别接入了迷你主机、路由器、光猫,测试关闭电源后UPS切换成功,足以带起三个轻量级的设备~

#!/bin/bash

ips=("192.168.2.100" "192.168.2.102" "192.168.2.110")

url="https://api.day.app/******"

no_response_count=0

for ip in "${ips[@]}"; do
  # Ping IP,设置超时为5秒
  ping -c 1 -W 5 $ip > /dev/null 2>&1
  if [ $? -ne 0 ]; then
    ((no_response_count++))
  fi
done

if [ $no_response_count -eq ${#ips[@]} ]; then
  curl -X POST $url
fi
ShellScript

由于UPS不支持通过USB连接至NAS实现关机,所以只能想其他方案实现停电关机。

博主采用的方案:每隔一小时向内网三台稳定的设备IP发送PING响应(博主选用了APPLE TV、小爱音响以及空气净化器)。如能ping通,则表明家中电力正常,反之如果全部无响应,那么表面已经停电,NAS会向特定URL发送CURL请求,在手机上发送对应通知。(通知使用开源项目BARK

通知

收到通知后,点击通知即可跳转至NAS的公网地址,进一步确认停电情况后可以选择手动关机。