Пытаюсь подключить ИБП по порту RS 232 контролер WB 7 с прошивкой wb-2410
Модель ИБП: PowerMan Online 1000 Plus
Подключение: RS-232 к ttyMOD2
Конфигурация /etc/nut/ups.conf:
[powerman]
driver = blazer_ser
port = /dev/ttyMOD2
desc = "PowerMan Online 1000 Plus on WB"
Библиотеку /lib/nut/megatec не находит (No such file or directory )
с библиотекой `/lib/nut/blazer_ser - выдает ошибку
Результат systemctl status nut-driver.service:
● nut-driver.service - Network UPS Tools - power device driver controller
Loaded: loaded (/lib/systemd/system/nut-driver.service; static)
Active: failed (Result: exit-code) since Sat 2025-06-28 16:08:23 UTC; 11s ago
Process: 21579 ExecStart=/sbin/upsdrvctl start (code=exited, status=1/FAILURE)
CPU: 51ms
Jun 28 16:08:06 wirenboard-APBCR36S upsdrvctl[21712]: No supported UPS detected
Jun 28 16:08:06 wirenboard-APBCR36S upsdrvctl[21712]: Network UPS Tools - Megatec/Q1 protocol serial driver 1.57 (2.7.4)
Jun 28 16:08:06 wirenboard-APBCR36S upsdrvctl[21579]: Driver failed to start (exit status=1)
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21841]: No supported UPS detected
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21841]: Network UPS Tools - Megatec/Q1 protocol serial driver 1.57 (2.7.4)
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21579]: Driver failed to start (exit status=1)
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21579]: Network UPS Tools - UPS driver controller 2.7.4
Jun 28 16:08:23 wirenboard-APBCR36S systemd[1]: nut-driver.service: Control process exited, code=exited, status=1/FAILURE
Jun 28 16:08:23 wirenboard-APBCR36S systemd[1]: nut-driver.service: Failed with result 'exit-code'.
Jun 28 16:08:23 wirenboard-APBCR36S systemd[1]: Failed to start Network UPS Tools - power device driver controller.
root@wirenboard-APBCR36S:~# journalctl -xe
Jun 28 16:08:18 wirenboard-APBCR36S Node-RED[342]: at Async.drainQueues [as _onImmediate] (/mnt/data/root/.node-red/node_modules/bluebird/js/release/async.js:15:14)
Jun 28 16:08:18 wirenboard-APBCR36S Node-RED[342]: at process.processImmediate (node:internal/timers:478:21)
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21841]: No supported UPS detected
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21841]: Network UPS Tools - Megatec/Q1 protocol serial driver 1.57 (2.7.4)
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21579]: Driver failed to start (exit status=1)
Jun 28 16:08:23 wirenboard-APBCR36S upsdrvctl[21579]: Network UPS Tools - UPS driver controller 2.7.4
Jun 28 16:08:23 wirenboard-APBCR36S systemd[1]: nut-driver.service: Control process exited, code=exited, status=1/FAILURE
Залез внутрь ИБП выглядит как будто пины стандартные (к ним подходит распайка), основная плата к которой идет шлейф от порта rs 232 - это Megatec, тоже как будто стандартная.
Еще наткнулся на такой форум где человек подключал аналогичный ИБП к ардуинке и пишет что у него все заработало в штатных командах https://radiokot.ru/forum/viewtopic.php?f=11&t=188086&p=4408271
один из пользователей в конце темы пишет что использовал драйвер powercom для моей модели ИБП, попробовал с этим драйвером (он есть в комплекте WB), драйвер поднялся, ИБП видит, но обратную связь от ИБП не получает. Попытался поменять типы в /etc/nut/ups.conf ( KIN → IMP → BNT ->BNT-other и т.д.), но тоже не помогло выдает “data receiving error (0 instead of 16 или 11 bytes)”
[powerman]
driver = powercom
port = /dev/ttyMOD2
desc = "PowerMan Online 1000 Plus on WB"
type = KIN
systemctl status nut-driver.service --no-pager
● nut-driver.service - Network UPS Tools - power device driver controller
Loaded: loaded (/lib/systemd/system/nut-driver.service; static)
Active: active (running) since Sun 2025-06-29 04:50:51 UTC; 7s ago
Process: 7442 ExecStart=/sbin/upsdrvctl start (code=exited, status=0/SUCCESS)
Main PID: 7468 (powercom)
Tasks: 1 (limit: 4790)
Memory: 180.0K
CPU: 24ms
CGroup: /system.slice/nut-driver.service
└─7468 /lib/nut/powercom -a powerman
Jun 29 04:50:48 wirenboard-APBCR36S systemd[1]: Starting Network UPS Tools - power device driver controller...
Jun 29 04:50:51 wirenboard-APBCR36S upsdrvctl[7443]: data receiving error (0 instead of 16 bytes)
Jun 29 04:50:51 wirenboard-APBCR36S upsdrvctl[7442]: Network UPS Tools - UPS driver controller 2.7.4
Jun 29 04:50:51 wirenboard-APBCR36S powercom[7468]: Startup successful
Jun 29 04:50:51 wirenboard-APBCR36S systemd[1]: Started Network UPS Tools - power device driver controller.
Jun 29 04:50:54 wirenboard-APBCR36S powercom[7468]: data receiving error (0 instead of 16 bytes)
Jun 29 04:50:57 wirenboard-APBCR36S powercom[7468]: **data receiving error (0 instead of 16 bytes)**
Порт действительно занят двумя процессами (драйвером и штатной службой mqtt-serial от WB. Если я полностью отключаю в настройках консоли WB данный порт, то такое чувство что он не инициализируется (петлевой тест не работает при включенном драйвере и отключенных настройках в WB). Если я включаю RS 232 на порт /dev/ttyMOD2 в WB, то после инициализации он его не отпускает и драйвер висит вместе с WB на этом порту:
lsof /dev/ttyMOD2
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
wb-mqtt-s 1679 root 10u CHR 4,70 0t0 427 /dev/ttyS6
powercom 2188 nut 4u CHR 4,70 0t0 427 /dev/ttyS6
Выполняю остановку wb-mqtt-serial, порт используется только драйвером
lsof /dev/ttyMOD2
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
powercom 2188 nut 4u CHR 4,70 0t0 427 /dev/ttyS6
Смотрю статус, драйвер с устройством не взаимодействует (параметры пробовал разные, TX RX местами менял)
/lib/nut/powercom -DDDDD -a powerman
Network UPS Tools - PowerCom protocol UPS driver 0.17 (2.7.4)
0.000000 send_to_all: SETINFO driver.parameter.port "/dev/ttyMOD2"
0.000218 send_to_all: SETINFO driver.parameter.type "KIN"
0.000351 debug level is '5'
0.004385 Flow control disable
0.004606 Num of bytes requested for reading from UPS: 16
3.007736 data receiving error (0 instead of 16 bytes)
3.007871 send_to_all: SETINFO device.type "ups"
3.007914 send_to_all: SETINFO driver.version "2.7.4"
3.007952 send_to_all: SETINFO driver.version.internal "0.17"
3.007992 send_to_all: SETINFO driver.name "powercom"
3.008029 send_to_all: SETINFO ups.mfr "PowerCom"
3.008065 send_to_all: SETINFO ups.model "Unknown"
3.008101 send_to_all: SETINFO ups.serial "Unknown"
3.008136 send_to_all: SETINFO ups.model.type "KIN"
3.008172 send_to_all: SETINFO input.voltage.nominal "230"
3.008209 send_to_all: ADDCMD test.battery.start
3.008243 send_to_all: ADDCMD shutdown.return
3.008275 send_to_all: ADDCMD shutdown.stayoff
3.008399 Num of bytes requested for reading from UPS: 16
6.011524 data receiving error (0 instead of 16 bytes)
6.011883 dstate_init: sock /run/nut/powercom-powerman open on fd 5
6.011970 send_to_all: SETINFO driver.parameter.pollinterval "2"
6.012012 send_to_all: SETINFO driver.parameter.synchronous "no"
6.012055 send_to_all: SETINFO device.mfr "PowerCom"
6.012094 send_to_all: SETINFO device.model "Unknown"
6.012134 send_to_all: SETINFO device.serial "Unknown"
6.012270 Num of bytes requested for reading from UPS: 16
9.015398 data receiving error (0 instead of 16 bytes)
Линукс машины тем более с com портом нет к сожалению, буду искать, но это долгая история
powercom не знает про такой параметр к сожалению работает только с опцией “/lib/nut/powercom -DDDDD -a powerman”, с debug_min выдает ошибку:
Jul 13 09:29:29 wirenboard-APBCR36S upsdrvctl[19911]: Fatal error: 'debug_min' is not a valid variable name for this driver.
Jul 13 09:29:29 wirenboard-APBCR36S systemd[1]: nut-driver.service: Failed with result 'exit-code
Есть ощущение что дело все же в драйвере. Но вот какой драйвер для него применить непонятно тем более с учетом ограниченности выбора на контроллере.
Есть еще какие-то мысли что можно попробовать?
Ребята, огромное спасибо!!! все завелось))) скупая мужская слеза прокатилась по моей щеке когда я увидел вывод на консоли))
После изменения настроек порт действительно освободился и стал доступен монопольно для драйвера
Да, после замены драйвера на nutdrv_qx увидел первый вывод на экране, но часть парамтров он выдал с ошибками, в частности заряд батареи, который был для меня очень важен. После чего поменял драйвер на blazer_ser и все заработало. Огромное спасибо за совет!!!
Делюсь настройками, может кому-то еще потребуется подружить этот упс с wirenboard по rs 232:
nano /etc/nut/ups.conf
[powerman]
driver = blazer_ser
# driver = nutdrv_qx
port = /dev/ttyMOD2
desc = "PowerMan Online 1000 Plus on WB"
sudo service nut-server stop
sudo service nut-server start
sudo service nut-server status
● nut-server.service - Network UPS Tools - power devices information server
Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2025-07-19 11:19:26 UTC; 14min ago
Process: 12678 ExecStart=/sbin/upsd (code=exited, status=0/SUCCESS)
Main PID: 12679 (upsd)
Tasks: 1 (limit: 4790)
Memory: 428.0K
CPU: 2.029s
CGroup: /system.slice/nut-server.service
└─12679 /lib/nut/upsd
Jul 19 11:19:26 wirenboard-APBCR36S upsd[12678]: listening on ::1 port 3493
Jul 19 11:19:26 wirenboard-APBCR36S upsd[12678]: listening on 127.0.0.1 port 3493
Jul 19 11:19:26 wirenboard-APBCR36S upsd[12678]: listening on ::1 port 3493
Jul 19 11:19:26 wirenboard-APBCR36S upsd[12678]: Connected to UPS [powerman]: blazer_ser-powerman
Jul 19 11:19:26 wirenboard-APBCR36S upsd[12678]: Connected to UPS [powerman]: blazer_ser-powerman
Jul 19 11:19:26 wirenboard-APBCR36S upsd[12679]: Startup successful
Jul 19 11:19:26 wirenboard-APBCR36S systemd[1]: Started Network UPS Tools - power devices information server.
Jul 19 11:19:30 wirenboard-APBCR36S upsd[12679]: User monitor@127.0.0.1 logged into UPS [powerman]
Jul 19 11:29:42 wirenboard-APBCR36S upsd[12679]: Can’t connect to UPS [powerman] (blazer_ser-powerman): Connection refused
Jul 19 11:33:24 wirenboard-APBCR36S upsd[12679]: Connected to UPS [powerman]: blazer_ser-powerman
В Home Assistant поставил еще плагин для управления питанием Power Flow Card Plus через HACS, выглядит прикольно, показывает откуда идет питание и какая нагрузка на линии, но пока не донастроил его, добью на следующих выходных видимо уже))