Bushi Posted October 21, 2014 · Report post Мониторинг устройств SNR-UPS-ONRT на unix like системах при использовании инструмента NUT умеет свои особенности. необходимо использовать драйвер blazer_usb устройство сообщает напряжение на ячейке аккумулятора, уровень заряда вычисляется по формуле: battery.voltage - battery.voltage.low battery.charge = ------------------------------------------ x 100 % battery.voltage.high - battery.voltage.low значения battery.voltage.high и battery.voltage.low драйверу неизвестны, поэтому эти параметры надо задавать вручную: battery.voltage.high = 2.27 battery.voltage.low = 1.72 указано напряжение на одной ячейке аккумулятора. UPS не возвращает серийный номер устройства. Это вызывает проблему, если к одной USB шине сервера подключено несколько UPS, так как идентифицировать их невозможно. Для решения проблемы можно использовать патч для libusb, который позволяет сделать привязку к имени устройства. UPS не возвращает runtimecal (расчетное время работы), его придется ввести вручную, используя таблицу Время автономной работы из инструкции для данной модели. Пример конфигурационного файла ups.conf: [ups1] desc="SNR-UPS-ONRT-3-MPL-1" port = /dev/ugen1.4 file = /dev/ugen1.4 driver = blazer_usb default.battery.voltage.high = 2.27 default.battery.voltage.low = 1.72 runtimecal = 240,100,720,50 >upsc ups1 battery.charge: 100 battery.runtime: 1200 battery.voltage: 2.35 battery.voltage.high: 2.28 battery.voltage.low: 1.65 device.type: ups driver.name: blazer_usb driver.parameter.file: /dev/ugen1.4 driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ugen1.4 driver.parameter.runtimecal: 120,100,420,50 driver.version: 2.7.2 driver.version.internal: 0.11 input.frequency: 49.9 input.voltage: 229.2 input.voltage.fault: 0.0 output.voltage: 220.0 ups.beeper.status: enabled ups.delay.shutdown: 30 ups.delay.start: 180 ups.load: 11 ups.productid: 0000 ups.status: OL ups.temperature: 19.0 ups.type: online ups.vendorid: 0001 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Victor Pestov Posted October 22, 2014 · Report post Устройства SNR-ERD-3S позволяют отслеживать параметры УПСов удаленно - по ethernet: само устройство к УПСу подключается по интерфейсу RS-232, параметры УПСа доступны на WEB-странице и по SNMP интерфейсу. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Bushi Posted October 22, 2014 · Report post Устройства SNR-ERD-3S позволяют отслеживать параметры УПСов удаленно - по ethernet: само устройство к УПСу подключается по интерфейсу RS-232, параметры УПСа доступны на WEB-странице и по SNMP интерфейсу. А смысл? У SNR UPS отсутствует RS-232. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Victor Pestov Posted October 22, 2014 · Report post Устройства SNR-ERD-3S позволяют отслеживать параметры УПСов удаленно - по ethernet: само устройство к УПСу подключается по интерфейсу RS-232, параметры УПСа доступны на WEB-странице и по SNMP интерфейсу. А смысл? У SNR UPS отсутствует RS-232. конкретно у SNR-UPS-ONRT он есть. другими словами SNR-ERD-3S заменяет более дорогой модуль Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Bushi Posted October 22, 2014 · Report post У нас SNR-UPS-ONRT-3-MPL и там нет RS323. Да и еще при работе с USB невозможно идентифицировать UPS (кроме как по физическому порту разветвителя USB), так как serial number не передается. Я думаю, что по RS232 контроллер передает тот же набор данных, что и по USB, а значит, что параметры charge и runtime не передаются, что очень сильно усложняет мониторинг. Вопрос - можно ли получить эти данные, используя SNR-UPS-ODC? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Bushi Posted October 29, 2014 · Report post Тестируем SNR-UPS-ONRT при нагрузке 15%. Время работы на батареях до перехода в состояние LB (low battery) составило 41 минуту, при этом почему-то отвалился один потребитель, а все остальные продолжали работать (видно на графике - падение нагрузки). Видимо, состояние LB нельзя использовать как сигнал для отключения серверов, делать надо это раньше, ориентируясь на время работы или уровень заряда. При пропадании питания в сети уровень заряда батарей на дисплее скачком меняется со 100% до 60% (видимо для расчета уровня заряда просто использует напряжение батареи без учета нагрузки), драйвер blazer_usb уровень заряда и оставшееся время работы считает правильнее. Вопрос к SNR Team - есть ли смысл покупать SNR-UPS-ODC? Будет ли это устройство сообщать параметры charge и runtime? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrey Platov Posted October 30, 2014 · Report post Добрый день. SNMP-карта также получает от ИБП напряжение одной ячейки АКБ, далее необходимо сконфигурировать систему. Необходимо указать напряжение полностью заряженной ячейки, количество АКБ и напряжение разряженной ячейки. По этим параметрам ИБП будет вычислять состояние АКБ. По поводу Runtime. SNMP-карта указывает время, которое ИБП проработал от АКБ и время, которое ИБП проработает при текущей нагрузке и заряде АКБ. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maverick5 Posted February 24, 2016 · Report post Здравствуйте! Приобрели на НАГе: УПС: SNR-UPS-ONRT-2-M и блок батарей к нему: SNR-UPS-BCRT-2-M для ИБП 2kVA подскажите пожалуйста, какие параметры ввести в конфиг NUT: battery.voltage.high = battery.voltage.low = runtimecal = СПАСИБО. П.С. В инструкции не нашел ((( Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrey Platov Posted March 22, 2016 · Report post Здравствуйте! Приобрели на НАГе: УПС: SNR-UPS-ONRT-2-M и блок батарей к нему: SNR-UPS-BCRT-2-M для ИБП 2kVA подскажите пожалуйста, какие параметры ввести в конфиг NUT: battery.voltage.high = battery.voltage.low = runtimecal = СПАСИБО. П.С. В инструкции не нашел ((( Добрый день. Для АКБ используемых в ИБП SNR стандартным напряжением заряженного элемента является 2,133 В, для разряженного - 1,666. Внутри ИБП установлено 4 АКБ последовательно, в каждом АКБ по 6 элементов. Таким образом напряжение заряженной линейки (battery.voltage.high) = 4*6*2,133 = 51,2 В Параметр battery.voltage.low = 4*6*1,666 = 40 В. Для расчета параметров runtimecal необходимо исходить из количества подключенных блоков АКБ. При работе с одним блоком, суммарная ёмкость 21 Ач. Воспользовавшись калькулятором АКБ. Получим 48 минут автономной работы с нагрузкой в 800 Вт (50%) и 21 минута с нагрузкой 1600 Вт (100%). Параметр будет выглядеть следующим образом: runtimecal = 1260, 100, 2880, 50 Обращаем ваше внимание, что данные параметры справедливы для свежих АКБ, в процессе старения данные будут меняться. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Pasha_49 Posted October 5, 2016 · Report post Подскажите пожалуйста, что за не стандартный драйвер/протокол используется у моделей SNR-UPS-LID-xxxx? Хочется прикрутить мониторинг через USB к NUT. Не встречал упсов, которые нельзя было бы подружить с NUT, кроме этой линейки UPS. Начинает работать с blazer_usb, но ups тогда возвращает нули на все параметры. Стандартная программа UPSmart работает с упсом без проблем. Вот еще похожая модель, использующая тот же протокол и софт. Судя из статьи, драйвера закрыты. Можете ли открыть драйвера, для добавления их в NUT? http://composter.com.ua/content/ups-s-nestandartnym-intellektom-2016-03-23 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlexZagr Posted January 18 (edited) · Report post Здравствуйте. Помогите с конфигом SNR-UPS-ONRT-6000-INTXL под NUT lsusb: Bus 005 Device 002: ID 1a86:7523 QinHeng Electronics CH340 serial converter Пробовал blazer_usb и nutdrv_qx по usb, blazer_ser через переходник usb-serial, прописывал разные subdriver, нигде не видит UPS, Device not supported! или No supported UPS detected один из вариантов конфига: [ups0] driver = blazer_usb #driver = nutdrv_qx port = /dev/ttyUSB0 vendorid = 1a86 productid = 7523 Edited January 18 by AlexZagr Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlexZagr Posted January 22 (edited) · Report post Ничего с NUT-ом не получилось, ТП ответили что NUT они не поддерживают. Программа под Windows общается с UPS-ом по протоколу modbus, не получилось собрать NUT с поддержкой modbus, поэтому подобрать что-то аналогичное не смог, да и не уверен что подошло бы что-то. Мониторинг программой под Windows нам не подходит, все на nix-ах, мониторинги, графики. Вобщем пришлось самому лепить на коленке, может кому-то пригодится. К UPS-у подключен Orange Pi Zero 3 по usb. Если ничего не трогать то в теории подключение всегда будет к /dev/ttyUSB0, но решил на всякий случай забиндить на отдельное имя. /etc/udev/rules.d/99-usb-serial.rules SUBSYSTEM=="tty", ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0001", SYMLINK+="USB_to_UPS" idVendor и idProduct видно в lsusb, в итоге получяем постоянный порт /dev/USB_to_UPS Установил python-библиотеку minimalmodbus https://github.com/pyhys/minimalmodbus Программа под Windows за один запрос забирает весь блок регистров, я по примеру из документации minimalmodbus читаю по одному регистру, по 2 байта. Циклом забрал 80 регистров, сравнил со значениями под Windows, опеределил нужные регистры, получился такой модуль: snr_modbus.py import sys import minimalmodbus cells = dict( Vin = 1, HZin = 7, Iin = 16, HZout = 19, Vout = 25, Iout = 28, Pout = 40, LOADout = 46, Vbatt = 50, STATE = 55, CHARGEbatt = 56 ) port = '/dev/USB_to_UPS' instrument = minimalmodbus.Instrument(port, 1) instrument.serial.baudrate = 9600 instrument.serial.timeout = 5 instrument.mode = minimalmodbus.MODE_ASCII def getValue(name): value = instrument.read_register(cells[name], 1) if name == 'HZin' or name == 'HZout': value /= 10 if name == 'STATE' and value > 0: value = 1 return round(value, 1) if __name__ == "__main__": if len(sys.argv) == 1: for name in cells: value = getValue(name) print(name, "=", value) else: print(getValue(sys.argv[1])) Если использовать просто как программу то можно получить все значения списком: # python3.9 snr_modbus.py Vin = 221.5 HZin = 50.0 Iin = 5.4 HZout = 50.0 Vout = 220.1 Iout = 4.6 Pout = 0.8 LOADout = 17.4 Vbatt = 215 STATE = 0 CHARGEbatt = 100 Или любой по имени из cells: # python3.9 snr_modbus.py Vin 222.3 Вобщем это уже можно привязать к UserParameters в Zabbix, хотя если считывать по одному значению то могут быть коллизии если Zabbix запросит более 1 ключа одновременно. Я списком забираю через AgentX в snmp. Есть пара вопросов: 1. Ячейка STATE, номер 55, в нормальном состоянии (OnLine) там 0, когда переходит на баттареи там что-то около 505, я так понимаю что нужно забрать какое-то битовое поле а не 2 байта, пока сделал условие если > 0, то состояние 1 (OnBattery) 2. Не нашел температуру на UPS-е, есть ли на них вообще температура? Edited January 23 by AlexZagr Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...