[BUG] CyberPower / 硕天 USB UPS 已被系统与 NUT 正常识别,但飞牛 UI “USB UPS” 页面不显示设备
一、问题概述

我使用 CyberPower / 硕天 UPS UT650EGC 通过 USB 连接飞牛 NAS,在两台不同版本的飞牛系统上测试:
两台机器的共同现象是:
- USB 设备可以被系统正常识别
- NUT 后端可以识别并读取 UPS 状态
- 但飞牛前端页面“连接 UPS → USB UPS → 选择设备”中,仍然显示 “暂无数据 / 请接入 USB UPS 设备”
也就是说:
后端正常,前端不显示。
其中:
- 1.1.18 还存在后端自动配置缺失问题(
ups.conf 为空)
- 1.1.26 后端已经基本正常,但前端页面依旧疑似有设备枚举 / 展示 bug
二、测试环境
1)UPS 设备信息
- 品牌:CyberPower / 硕天
- 实际识别型号:UT650EGC
- USB ID:
vendorid = 0764
productid = 0501
lsusb 识别结果如下:
Bus 001 Device 003: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
或:
Bus 001 Device 002: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
三、飞牛 1.1.18 上的表现
1)初始现象
系统已识别 USB UPS:
lsusb
输出:
Bus 001 Device 002: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
但是:
upsc -l
报错:
Error: Connection failure: Connection refused
同时:
systemctl status nut-server.service --no-pager -l
显示:
进一步查看日志后,发现核心报错为:
Warning: no UPS definitions in ups.conf
Fatal error: at least one UPS must be defined in ups.conf
2)1.1.18 的根因
/etc/nut/ups.conf 实际为空,没有任何 UPS 定义,导致:
nut-server.service 无法启动
upsc -l 返回 Connection refused
也就是说:
1.1.18 除了 UI 不显示外,还存在后端自动生成 UPS 配置失败的问题。
3)在 1.1.18 上做过的修改
(1)手工写入最小可用配置
写入:
[ups]
driver = usbhid-ups
port = auto
vendorid = 0764
productid = 0501
对应命令:
sudo tee /etc/nut/ups.conf >/dev/null <<'EOF'
[ups]
driver = usbhid-ups
port = auto
vendorid = 0764
productid = 0501
EOF
(2)修改 nut.conf
原来:
MODE=netserver
改为:
MODE=standalone
对应命令:
echo 'MODE=standalone' | sudo tee /etc/nut/nut.conf
(3)重启 NUT 服务
sudo systemctl restart nut-driver-enumerator.service
sudo systemctl restart nut-server.service
sudo systemctl restart nut-monitor.service
4)修改后的结果(1.1.18)
nut-server.service 正常运行
systemctl status nut-server.service --no-pager -l
显示:
并可见:
Connected to UPS [ups]: usbhid-ups-ups
upsc -l 正常
upsc -l
输出:
ups
upsc ups@localhost 正常
示例输出:
battery.charge: 43
battery.runtime: 3108
battery.voltage: 12.8
device.mfr: CPS
device.model: UT650EGC
driver.name: usbhid-ups
driver.parameter.port: auto
driver.parameter.productid: 0501
driver.parameter.vendorid: 0764
input.voltage: 232.0
output.voltage: 232.0
ups.status: OL CHRG
ups.realpower.nominal: 360
这说明:
- 底层 USB 正常
- NUT 驱动正常
- UPS 状态可读
- 后端已经可以正常工作
5)1.1.18 上仍然存在的问题
虽然命令行层面已经完全正常,但飞牛前端页面中:
- UPS 类型选择
USB UPS
- “选择设备” 下拉框仍然显示 暂无数据
也就是说:
1.1.18 在手工修复后端之后,UI 仍然无法显示设备。
6)1.1.18 上尝试过但无效/不建议的改法
曾经尝试把 ups.conf 改成更完整的写法:
[ups]
driver = usbhid-ups
port = auto
vendorid = 0764
productid = 0501
vendor = "CPS"
product = "UT650EGC"
desc = "CyberPower UT650EGC"
结果:
upsc ups@localhost
报错:
Error: Driver not connected
因此确认:
vendor= / product= 这类字段不能随便手工补
- 对这台 UPS,最稳定的仍是最小配置:
[ups]
driver = usbhid-ups
port = auto
vendorid = 0764
productid = 0501
四、飞牛 1.1.26 上的表现
1)USB 与 NUT 后端均正常
lsusb:
Bus 001 Device 003: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
upsc -l:
Init SSL without certificate database
1514091
这里的 1514091 不是报错,而是 NUT 当前识别到的设备名。
systemctl status nut-server.service --no-pager -l:
说明:
1.1.26 的后端已经明显比 1.1.18 正常,系统已能自动生成并加载 UPS 设备。
2)1.1.26 上 UPS 状态可直接读取
执行:
upsc 1514091@localhost
返回完整 UPS 状态,例如:
battery.charge: 47
battery.charge.low: 10
battery.charge.warning: 20
battery.runtime: 648
battery.voltage: 12.9
device.mfr: CPS
device.model: UT650EGC
driver.name: usbhid-ups
driver.parameter.bus: 001
driver.parameter.port: auto
driver.parameter.product: UT650EGC
driver.parameter.productid: 0501
driver.parameter.vendor: CPS
driver.parameter.vendorid: 0764
input.voltage: 232.0
output.voltage: 233.0
ups.load: 25
ups.realpower.nominal: 360
ups.status: OL CHRG
x.additional.devicetype: USB
说明:
- 1.1.26 已经能自动完成 NUT 设备定义
- UPS 已被后端正常接管
- 状态读取完全正常
3)1.1.26 上仍然存在的问题
即使:
lsusb 正常
nut-server.service 正常
upsc -l 正常
upsc 1514091@localhost 正常
飞牛页面中:
- “连接 UPS”
- 类型选
USB UPS
- “选择设备” 下拉框仍显示 暂无数据
也就是说:
1.1.26 已没有 1.1.18 的后端空配置问题,但 UI 仍可能存在设备枚举 / 展示 bug。
五、问题对比总结
飞牛 1.1.18
存在两个问题:
- 后端配置生成问题
/etc/nut/ups.conf 为空
nut-server.service 启动失败
- 需要手工写入最小配置才能恢复
- 前端 UI 不显示问题
飞牛 1.1.26
后端已经明显修复:
nut-server.service 正常
upsc -l 正常
upsc 设备名@localhost 正常
但仍存在:
六、我的结论
结论 1
这不是 UPS 本身不兼容的问题。
结论 2
这不是 USB 物理连接问题。
结论 3
飞牛底层 NUT 对这台 UPS 的识别和状态读取是正常的。
结论 4
问题主要在飞牛前端 UPS 页面:
后端能识别并读取,前端却不展示设备。
结论 5
版本差异如下:
- 1.1.18:后端自动配置 + 前端显示都有问题
- 1.1.26:后端已基本正常,但前端显示问题仍疑似存在
七、建议官方重点排查方向
- UPS 页面“选择设备”下拉框的数据来源
- 前端是否只能识别某种固定格式的 UPS 配置
- 1.1.18 的自动配置流程
- 1.1.26 的页面逻辑
- 为什么
upsc -l 与 upsc 设备名@localhost 已正常,但 UI 仍然暂无数据
八、官方可用于复现/判断的关键命令
USB 层识别
lsusb
NUT 服务状态
systemctl status nut-server.service --no-pager -l
查看当前 NUT 识别到的设备
upsc -l
查看 UPS 实时状态
1.1.18 修复后:
upsc ups@localhost
1.1.26 自动识别后:
upsc 1514091@localhost
九、希望官方确认的问题
- 飞牛 UPS 页面是否存在“后端已识别但前端不显示”的已知 bug
- 1.1.18 中
ups.conf 为空是否属于自动配置异常
- 1.1.26 中 UI 是否仍存在设备枚举/展示问题
- 该问题是否影响其他 CyberPower / 硕天 USB UPS 型号
十、附加说明
1.1.18 最终可用配置(手工修复后)
/etc/nut/nut.conf
MODE=standalone
/etc/nut/ups.conf
[ups]
driver = usbhid-ups
port = auto
vendorid = 0764
productid = 0501