用于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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在AlertDialog builder标题右侧放置图标   安装weblogic server12时发生java获取错误。1在windows 10上   java无法导入:安卓。支持v7。小装置。Android Studio中的RecyclerView   java Android应用程序等待通知奇怪行为   java如何比较ArrayList中的整数元素?   java Quartz属性不会触发Quartz作业   java轻松地将许多JavaFX属性绑定到UINode   Maven插件管理器导致java错误消息的原因是什么?   JAXB解组错误后java文件被阻止   java如何在spark kafka流中创建消费者组并将消费者分配给消费者组   java Gps lat&long随机显示非常不准确的结果   java使用assest文件夹文件在Android上执行shell命令   java如何在客户端使用javascript提取文本   java扩展描述的distincts之和   java重写默认Spring数据REST配置   java SQL未命名参数语法   二进制搜索任务的java真实解决方案   java在一个多模块多数据源项目中,用什么正确的方式来指示将哪个数据源注入我的DAOs?