Подключаем ИБП через NUT
Достался мне уже старенький ИБП (источник бесперебойного питания) модели APC SMART 420. Подключается к компьютеру через com порт. Стал смотреть программы для корректного подключения его к компьютеру. На диске с этим ИБП нашел программу под linux размером аж 27Mb! Я так понял, она целиком графическая и требует для работы Java. А у меня на этом компьютере даже графического интерфейса нет, зачем роутеру графика? 🙂 Погуглив выбор пал на программу nut.
Данная программа может работать со многими типами ИБП, например такими как ippon, dell, mge, powercom и множество других моделей. Полный перечень смотрите тут.
Итак, задача вести логи состояния UPS, а также хочется web графический интерфейс для наглядного представления.
Первым делом идем на сайт проекта nut и смотрим есть ли поддержка вашего ИБП. Мне повезло, модели APC имеют хорошую поддержку в данной программе.
Установка nut и правка конфигов
Установка стандартная для каждой ОС, но при установке обязательно закажите собрать cgi скрипты (опция –with-cgi). По умолчанию они не устанавливаются. Эти скрипты будем использовать с web сервером, чтобы наблюдать красивые картинки 🙂
После установки мы увидим достаточно много примеров конфигурационных файлов
Для работы переименуем их в нормальные конфиги без префикса sample и выставим права.
Обратите внимание на права файлов nut.conf, ups.conf, upsd.conf, upsd.users, upsmon.conf, upssched.conf, upsset.conf. Права должны быть 600, а иначе при запуске nut будет выдаваться предупреждение.
Лучше всего показать на примерах моих файлов как заводить новый ИБП.
Первый файл host.conf – нужен для cgi скриптов. Если вам не надо cgi, то можете ничего не заносить сюда.
Файл nut.conf. Тип запуска программы.
Файл ups.conf. Сюда заносим ИБП, которые собираемся мониторить или контролировать. Обратите внимания, что для каждой модели ИБП надо правильно подобрать название драйвера, а иногда даже указать правильно тип кабеля. Но у меня в данном случае проблем не возникло. Еще задайте порт, на котором подключен ваш ИБП. Для linux обычно это порты /dev/ttyS0-1, а для freebsd /dev/cua0-1, что соответствуют портам com1-2
Файл – upsd.conf. Задаем порт и адрес, который будет слушать nut. В нашем случае управлять nut можно только с локальной машины.
Файл – upsd.users. Как видно из названия файлов задает параметры доступа по пользователю. Тут такие важные параметры как пароль и какой уровень команд пользователь может выполнять. Почитайте файл, там разобраны различные примеры настроек. В данном примере у меня разрешено все.
Файл – upsmon.conf. В этом файле собраны переменные для контроля за ИБП. Например до какого времени доводить критический уровень, команда отключения и др. В примерах все написано. Самое главное проверьте команду выключения компьютера. В разных ОС она может отличаться.
Остальные конфиги upssched.conf, upsset.conf, upsstats.html, upsstats-single.html я не трогал.
CGI скрипты я положил в папку cfi-bin на своем apache сервере.
Запуск nut
Запуск осуществляется в несколько этапов.
1. Загрузка драйверов для ИБП и установка с ним связи. Самый главный этап.
От рута выполняем
Если программа не нашла ваш ИБП, то следующие шаги запуска будут бесполезны. Проверьте в тот ли порт подключен ИБП, попробуйте заменить драйвер или указать ваш тип кабеля в файле ups.conf. Возможно это поможет.
2. Загрузка демона upsd и синхронизация с вашим ИБП
3. Запуск мониторинга ИБП. Тут программа работает с теми переменными, что вы задали в файле upsmon.conf.
Это все, теперь ваш ИБП настроен и будет работать при отлючении сети как вы задали.
Для просмотра через web заходим по адресу cgi скриптов. http://ваш_комьютер/cgi-bin/upsstats.cgi. В конфигурации web сервера должен быть разрешен запуск скриптов из этой папки. В apache сервере по умолчанию разрешены скрипты из папки cgi-bin.
Визуальная информация в графиках
Ведем логи ИБП
Я делаю это с помощью программы upslog, которая ставится вместе с программой nut.
Запускаем
и в файле ups.log каждые 30 секунд создается запись с основными характеристиками ИБП. Из этой команды я сделал скрипт и назвал его log. Файл положил рядом с остальными бинарными файлами nut.
Колонки – дата, время, емкость батареи, входное напряжение, загрузка ИБП, статус, температура, частота сети.
С помощью этого файла в будущем можно анализировать какое состояние электрической сети в вашем здании и как реагирует на это ваш ИБП.
Ну и на закуску команды, которыми можно управлять напрямую вашим ИБП. Вот перечень команд с их описанием. Не пробуйте выполнять команды, если не знаете их назначение, можете запросто выключить компьютер.
показать
Теперь остается сделать только общий скрипт скрипт запуска программы и положить в стартовые скрипты компьютера.
У меня скрипт для linux получился такой.
Если что-то не получается сделать первым делом читайте документацию на сайте или в man файлах.
Инструкция по установке китайского USB-шнурка mini-VCI/X-Horse/HDS на Windows 10 x64
! На последнем обновлении 10 винды перестало работать! как починить еще не разорался.
На вопросы «почему у меня не работает?» не отвечаю.
На винде до 19 года всё отлично.
3 вечера промучался с этим делам, полазил по разным ресурсам с инструкциями и нигде ничего не работало. Пробовал и виртуалки и прямую установку. В общем пришёл к выводу что все инструкции верные но некоторые нюансы не прописаны. Поэтому решил попробовать написать как это делал я.
Купил шнурок обычный китайский шнурок «XHORSE HDS кабель для Honda» на али.
Устанавливал программу буду на windows 10 х64 сборка 1909.
Мой рабочий набор программ и дайверов тут.
Можно скачивать любую версию программы Honda HDS, я ставил Honda HDS 3.102.054(2018)
В архиве «HDS_3.103.048 (Пароль — DRIVE2).zip» под паролем DRIVE2 лежит версия которая у некоторых пользователей заходит в большее количество блоков и дублируются все драйвера. Я разницы не заметил, но вдруг кому пригодиться. (Благодарность onelin48 он описал у себя в этой теме. Вот тут его рабочий набор)
Установка патча:
1. Запустить патч «HIMGNA.exe» из архива «Honda HDS Win 7 8 10 64 32 fix.7z» от имени Администратора. (Брал тут). Пароль архива: fix
2. Запускаем файл XHorce64.reg. (или *32.reg если система 32бит).
Установка драйверов:
0. Желательно отключить антивирус и интернет. (Антивирус блокирует файл «MVCI32.dll», а через интернет windows скачивает левые драйвера)
1. Распаковываем папку «XHorce» в папку по адресу «C:\XHorce\»
2. Проверяем чтобы файл «MVCI32.dll» лежал по адресу «C:\XHorce\MVCI32.dll» и что антивирус его не блокирует.
3. Запускаем файл «CDMI20814_SETUP.exe» из папки «ТруДрайверыX-horse.7z» от имени Администратора (брал тут).
4. Подключаем шнурок и видим в диспетчере задач 2 новых устройства:
Контроллеры USB/USB Serial Converter,
Порты (COM и LPT)/USB Serial Port(COM1).
5. Если их нет а есть только «M-VCI» с восклицательным знаком то правой кнопкой мышки кликаем на нём нажимаем обновить драйвер. Нажимаем «выбрать в ручную» и указываем путь «C:\XHorce\»
Должно появиться 2 новых устройства Контроллеры USB/USB Serial Converter, Порты (COM и LPT)/USB Serial Port(COM1).
6. Кликаем 2 раза на каждый из них и проверяем чтобы изготовитель был «FTDI»
Запуск программы:
1. Запускаем программу с ярлыка на рабочем столе.
2. Нажимаем F12 и выбираем шнурок «XHorce» или «hondahybrid HDS»
3. Для нашего японца нажимаем F12 еще раз и выбираем регион поставки ЯПОНИЯ. (каждый раз при запуске программы!), иначе требует VIN а у нас его нет. В варианте ЯПОНИЯ вводится номер кузова.
4. Нажимаем F2 и в правом верхнем углу «Выберите новое Т/С», шнурок должен начать мигать. Если мигает значит всё работает и можно идти в машину и радоваться.
Если что то не так, то удаляем все программы, драйвера, чистим реестр и проверяем антивирус и пробуем заново, должно работать 100%
VT’s blog
Категории
Свежие записи
Облако меток
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.
Взял я недавно себе UPS Ippon Smart Winner в замен много лет служившего PowerCom, мощности которого стало не хватать для обеспечения работы нового компа при плохих условиях в сети.
В Windows с любыми вариациями штатного ПО сие «чудо» по USB заставить работать мне так и не удалось, однако нашлись альтернативные программы, которые смогли с ним работать. Странно, что с этим у производителя возникли такие сложности, т.к. протокол «Megatec», по которому работает данная железка достаточно распространенный и очень простой. Также мне не понятно, зачем имея у ИБП нативный COM-порт нужно было делать параллельно USB-порт, работающий как USB-HID. Гораздо логичнее было бы представлять его как USB-COM адаптер. Анализ форумов показал, что такие проблемы не только у меня одного, а в мануалах вообще указано, что если ИБП с протоколом Megatec имеет сразу оба порта (USB+COM), то в Linux он будет работать только через COM. С Linux (поставил все-таки Debian Lenny на mini-ITX, об этом я еще может напишу) родное ПО тоже не заработало, но альтернативное решение было найдено. Немножко удивляет беспечность производителей железа. У меня сложилось мнение, что ИБП от APC без проблем работают с Windows/*nix, а вот остальные производители на это забили и в лучшем случае отдали на откуп сторонним программистам, которые на это тоже забили.
Из заработавших у меня программ под Windows мне понравились следующие:
Достаточно продвинутая программа, имеет встроенный WebGUI, может управлять УПС-ом, умеет выключать компьютер.
очень компактная и отличается выводом в трей иконки с указанием загрузки ИПБ в процентах.
Linux
С Linux все оказалось намного веселее. Во-первых, единого мануала по настройке ИБП такого типа я не нашел и по частям пришлось восстанавливать процесс подключения, который в конечном итоге оказался очень простым, за исключеним того, что я не один вечер потратил на попытки заставить его заработать через USB, что так и не удалось (массовое явление, кстати). Зато через COM-порт он потом подключилось очень быстро (т.к. пришлось поправить только пару строчек в конфиге). Итого, для Debian Lenny процесс настройки UPS Ippon для работы с NUT (Network UPS Tool) можно осуществить так (предполагаем, что эти действия делаются от root):
Сервис работает, переходим к «удобствам».
В качестве графического клиента для Linux я поставил knutclient.
Для настройки надо добавить UPS со следующими параметрами:
Установите галочку в строке “Хранить NUT пароль в конфигурационном файле” для того, чтобы каждый раз его не пришлось вводить вручную. В полях “UPS переменные” можно указать датчики, которые должны отображаться в графическом виде на панели программы. У меня работают только те, которые указаны на скришноте. Хотя сам драйвер ИБП выдает намного большее число параметров, программа даже не предлагает отображать их в виде индикаторов, но этом их видит:
Также она может управлять UPS-ом:
Можно настроить программу так, что она будет при запуске сворачиваться в трей и там отображать нагрузку на ИБП и остаток заряда батареи. Минус программы в том, что если при запуске она не смогла подключиться к демону (а обычно демон пускается позже), то она сама не будет пытаться повторить соединение и это надо будет делать вручную. В качетсве решения можно пускать данную программу с задержкой, достаточной для загрузки всех компонент NUT.
Индикатор «UPS On Battery», горящий желтым светом, вовсе не сигнализирует о том, что ИБП работает от батарей. Здесь он сигнализирует об работе блока AVR, работающего в режиме повышения или понижения входного напряжения.
Программа для подключения из Windows к удаленному NUT-серверу, сделанная без GUI с возможностью работы как сервис. Имеет поддержку авторизации на NUT. Удобна для использования в качестве службы, автоматически выключающей Windows-ПК при неполадках электропитания, информацию о которых она получает по сети. Конфиг у нее текстовый и максимально унифицирован с конфигами NUT. В конфиге нужно не забыть исправить пути к программе AlertPopup.exe, т.к. инсталлятор их сам не правит.
В итоге получаем конфигурацию, когда УПС подключен к постоянно функционирующему мини-серверу, и при этом со стационарного компа можно наблюдать за его состоянием, управлять им и т.д.















14 комментариев к “Подключение UPS Ippon в Linux и Windows. NUT+Windows”
Слушай, не по теме: какую файловую систему в итоге заюзал?

2 апреля, 2009 at 22:13
Я про ФС давно уже думал опус выдать, материалу и мыслей достаточно нобралось. В результате потестив несколько ФС, изучив это ( http://software.intel.com/en-us/articles/windows-client-cifs-behavior-can-slow-linux-nas-performance/ ), и вспомнив, что дефрагментировать все равно надо будет я для раздела с закачками применил XFS, т.к. ее можно дефрагментировать, а потеря их или сбои мне не важны (к тому же есть HASH для торрентов и можно докачать побившийся кусок). Систему поставил на ЕХТ3, а диск с музыкой у меня был на NTFS, там и оставил, т.к. ее поднять в случае чего можно, в отличие от юниксовых ФС, в особенности XFS. Скорости получились странные, особенно в связке с samba. Как в итоге работает кеширование я не понял. Итоговая потеря в скорости от Windows 7 (см предыдущие замеры) составила 1.5-2 раза на больших файлах, но все равно намного быстрее FreeBSD. До кучи заметил, что залитый через самбу на пустой XFS раздел 40Гб файл оказывается уже сильно фрагментируемым, да и сам дефрагментатор, имхо, в зачаточном состоянии по функционалу.

3 апреля, 2009 at 9:34
Я бы на клиент багрепорт всё же написал. Раз уж работает под юниксами, то пускай учится писать в файлы, например, единицы, а не нули…

3 апреля, 2009 at 16:21
Тогда и на дефрагер тоже надо писать:
там таймер таймаута не прерывает процесс, если он занят обработкой файла. Таймер опрашивается в период между окончанием одного и началом другого файла. Если файл 40Гб, то вместо 10-минутного временного интервала, разрешенного программе для работы, можно ждать пару часов и более.
Спасибо за пост. Подкину свои 5 копеек для следующих гостей из гугла, если такие будут.
В линуксе еще неплохо работают MGE, во всяком случае Evolution’ы, проверено на версии tower 850. Сначала поставил psp (personal solution pack) с офсайта, потом сам psp снес, а nut поставил из репа дистра (fedora 8 x64, потом 11-я). Работает по юсб нормально, правда раз в пару часов отваливается на несколько секунд с «communication lost» и строчками в dmesg типа
«hub 2-0:1.0: port 1 disabled by hub (EMI?), re-enabling…
usb 2-1: USB disconnect, address 9
Data for UPS [mgeups] is stale — check driver
drivers/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed
UPS [mgeups] data is no longer stale»
Хотя на работоспособность не влияет. Может из-за того, что шнурок длинный (>6м), хз.
Настраивающим в первый раз есть смысл попробовать сначала заюзать psp, посмотреть, что она там надетектит и напишет в конфиги, потому как с нуля разбираться будет небыстро. Если не будет коннектиться, может помочь добавление «upsd: 127.0.0.1 @nut» в hosts.allow (упоминание есть в каком-то из манов nut).
Пробую тоже настроить Smart Winner 3000. Драйвер megatec не видит иппона 🙁 Возможно у вас другая модель была
debug level is ‘1’
Starting UPS detection process…
5 out of 5 detection attempts failed (minimum failures: 2).
Megatec protocol UPS not detected.
От модели в данном случае ничего не зависит, протокол у них всех стандартный. По USB мне завести так и не удалось, а с последовательным портом никаких проблем быть не должно. У вас какое подключение ИБП к ПК?
neptune Reply:
21 декабря, 2009 at 21:50
Vasiliy Reply:
21 декабря, 2009 at 22:03
Результат отработки команды:
Network UPS Tools 2.2.2- – Megatec protocol driver 1.5.14 [megatec]
Carlos Rodrigues (c) 2003-2008
debug level is ‘1′
/dev/ttyS0 is locked by another process
PS: версия у меня новее, но может просто из репозитария апдейт скачался. Для исключения аппаратной проблемы логично проверить под другой ОС с какой-нибудь из комплектных программ.
neptune Reply:
21 декабря, 2009 at 22:15
Vasiliy Reply:
21 декабря, 2009 at 23:17
Цепляет с первой попытки.
Для работы с Ippon лучше использовать blazer_usb он вроде учитывает кривость реализации протокола megatec через usb рядом производителей. Но и у него был не большой глюк, не отрабатывалась команда отключения UPS c последующим включением через таймаут, хотя это устранилось правкой парой строк в драйвере. Сейчас возможно уже исправили не проверял, а так работает хорошо для техники подобного класса.
Прикупил подобный. Настроил NUT с одним мастером и несколькими слейвами. ИБП мощный, хватает пока на 30 мин. работы после выключения питания. Вопрос в следующем: по сигналу от ИБП сервера уходят в halt, т.е. завершают все процессы, но не выключаются. Таким образом, если питание ИБП получит раньше, чем закончится заряд батарей, то сервера так и не включатся самостоятельно. Пытались ли вы подобную проблему обойти?

6 августа, 2010 at 11:05
У меня такой именно проблемы нет, отправляется уведомление на почту, дальше я всегда смогу включить удаленно с помощью WOL.
Если в BIOS стоит автовключение при подаче питания, ОС выключила систему а питание так и не пропало, то можно оставить хотя бы один рабочий комп, который будет WOL-пакеты для остальных слать если сеть восстановится, а если не восстановится, то тогда первая ранее выключенная группа при своем включении также пошлет WOL-пакеты и включет тот самый комп.
NUT — Network UPS Tools
Наконец-то установил более-менее приличный UPC в стойку (Powercom KIN-2200AP-RM). Быстренько прицепил его COM-портом к серверу, и начал искать софтину, которая умела бы с ним работать. Выбор остановил на NUT — набор утилит, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS.
Устанавливать будем, конечно же, из портов:
| # cd /usr/ports/sysutils/nut && make install clean && rehash |
Мой набор опций оказался следующим:
| Options for nut 2.4.1_3 Приступаем к настройке. Для начала создадим необходимые каталоги для драйверов и сервера, выставим права: Далее необходимо определиться, какой драйвер будет использоваться для данного UPS:
В моем случае нужно использовать драйвер «powercom», поскольку KIN относится к серии King PRO. Теперь пора ознакомиться с конфигурационными файлами NUT. Все они находятся в директории /usr/local/etc/nut. ups.conf — настройки UPS драйвера для сбора данных Теперь по порядку займемся настройкой каждого из конфигурационных файлов. ups.conf Необходимо добавить в конфигурационный файл UPS и его настроки подключения.
В результате нехитрых манипуляций, получим следующий результат:
Более детально о каждой из опций: Допускается использование дополнительных опций, исходя из специфики оборудования (необходимо смотреть маны по конкретно используемому драйверу). В моем случае не совпадал тип с тем, который используется по умолчанию, соответственно пришлось конкретизировать. Значения по умолчанию для драйвера Powercom: upsd.conf upsd отвечает за передачу данных от драйвера клиентским программам в сети. upsd должен находится под управлением и по возможности, как единственный источник состояния и мониторинга клиентов, таких как upsmon. upsd использует этот файл для контроля доступа к серверу и для установки других значений различных конфигурации. Этот файл содержит подробные сведения об управлении доступом, таким образом, обеспечивается безопасность.
Редактируем до следующего состояния:
upsd.users Контроль доступа до UPS-демона (профили пользователей). Именно в этом файле вы указываете, кто и в какой мере будет контролировать и работать с утилитой. Для начала создадим этот файл:
Правим конфиг до следующего состояния:
Теперь более подробно о доступных опциях. Каждый UPS монитор может определяться как один из трех возможных типов: upsmon.conf upsmon предоставляет основные функции, которая собирается найти в программе мониторинга UPS, например это безопасное завершений работы при сбое питания. В многоуровневой схеме утилиты NUT это клиент. Создадим файл конфигурации:
Редактируем конфиг до следующего состояния: Итак, мы добавили monitir, формат записи которого следующий:
С конфигурационными файлами разобрались. Теперь проверим права на файлы и каталоги. Владельцем /var/db/nut должен быть пользователь uucp, права на выставлены на 0750: Потом устанавливаем необходимые права на конфигурационные файлы. Условия — пользователь uucp должен иметь доступ на чтение:
Кажется ничего не забыли… Пробуем запустить сервис. Добавляем NUT в /etc/rc.conf и даем команду запуска для сервисов:
Кажется все в порядке. На всякий случай, проверим: Все замечательно, сервисы запущены, работают и ведутся логи. Теперь подключимся к UPS для проверки его статуса:
Вот и отлично, все необходимые параметры снимаются. Для проверки только режима работы UPS можно воспользоваться следующей командой (по аналогии можно запрашивать и другие параметры):
Переменная может принимать следующие значения: Теперь посмотрим монитором:
Когда upsmon необходимо быстро выключить локальную систему, она устанавливает флаг «FSD» (forced shutdown — принудительное отключение) для любых UPS, на котором она выполняется в master режиме. Данная возможность используется и для синхронизации slaves компьютеров в том случае,если master UPS передает событие и всем рассылается сообщение о немедленном прекращении работы.Можно вручную вызвать этот режим на master upsmon, запустив другой экземпляр с флагом ‘-c fsd ‘. Это полезно, когда вы хотите инициировать shutdown перед критическим этапом. Эмулируем падение мощности: Система должна корректно завершить работу. upsstats Скопируем необходимые для работы файлы из предложеных примеров:
В конфигурационный файл apache добавим еще один virtualhost (надеюсь он у вас настроен с поддержкой виртуалхостов):
|















