用于Triplite UPS电池备份的Python驱动程序。
tripplite的Python项目详细描述
三合板
python usb接口和用于tripplite ups电池备份的命令行工具。
背景
Triplite提供UI software 用于监控电池。然而,它的大部分电池都没有 网络访问,以及现有的TrPrITE软件需要本地安装。
我想从远程无头linux服务器监视ups,所以我写了 这个工具。
安装
apt install gcc libusb-1.0-0-dev libudev-dev
pip install tripplite
将USB电缆从UPS连接到无头服务器,您应该 准备逃跑。如果不想以根用户身份运行,请参见note on permissions 下面。
命令行
$ tripplite
{
"config": {
"frequency": 60, # Hz
"power": 1500, # VA
"voltage": 120 # V
},
"health": 100, # %
"input": {
"frequency": 59.7, # Hz
"voltage": 117.2 # V
},
"output": {
"power": 324, # W
"voltage": 117.2 # V
},
"status": {
"ac present": true,
"below remaining capacity": true,
"charging": false,
"discharging": false,
"fully charged": true,
"fully discharged": false,
"needs replacement": false,
"shutdown imminent": false
},
"time to empty": 1004 # s
}
如果有多个Triplite设备连接到服务器,则需要
指定产品ID(可在lsusb
上找到)。有关详细信息,请参见tripplite --help
。
要在shell脚本中使用,请使用类似于
jq。例如,
tripplite | jq '.status."ac present"'
将返回
检测交流电源。
Python
如果您想将此链接到更复杂的行为(例如,数据记录, 文本警报),考虑使用python脚本。
fromtrippliteimportBatterywithBattery()asbattery:print(battery.get())
state
变量将包含与上述格式相同的对象。使用
state['status']['ac present']
和state['status']['shutdown imminent']
用于
警报,并考虑记录电压、频率和功率。
关于权限的说明
要读取Triplite,需要访问USB端口。您可以选择:
- 以根运行所有内容
- 将您的用户添加到
dialout
组以访问all串行端口 - 创建一个限制通过
udev
访问Triplite USB设备的组
对于最后一个选项,规则如下:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="09ae", GROUP="tripplite"' > /etc/udev/rules.d/tripplite.rules
udevadm control --reload-rules