Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

electric
Сообщения: 309
Зарегистрирован: Вт сен 17, 2013 10:11 pm
Благодарил (а): 3 раза
Поблагодарили: 56 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение electric » Вт дек 09, 2014 9:51 am

zelevova писал(а):Спасибо большое! Все как по часам.
После полной перезагрузки малинки или при первом включении система почему то не отрабатывала переход от цвета серого
Скорее всего не успевает стартовать Majordomo. Нужно прописать что бы нут_мон стартовал после запуска скуля и апача. В скрипте запуска зависимости проставить. Тогда не надо будет каждую минуту его дергать.
Драйвер USB + NUT стартовали раньше чем MDM (апач+майэскуэл).
Раз в минуту дергать - это я для измерений в том числе (позже добавил напряжение АКБ и на выходе).
zelevova писал(а): Для себя сделал скрипт для получения информации от бесперибойника "nut.php":

Код: Выделить всё

<?php
if(isset($_GET['ups']) && isset($_GET['parm']))
{
        $value = exec("/usr/local/bin/upsc ".$_GET['ups']."@127.0.0.1 ".$_GET['parm']);
        $parent = "/".$_GET['parm'].": /";
        $value = preg_replace($parent, "", $value);
        echo $value;
}
?>
положил его в корень апача на компьютере где бесперибойник и обращаюсь к нему "http://ups.home.lan/nut.php?ups=myups&p ... ut.voltage". В ответ получаю входящее напряжение на ИБП. Получаем некий вольтметр в сети, полезно когда частые проблемы с напряжение.
Так можно запросить любой параметр который выводит команда upsc.
Да, измерения именно так можно получать, но состояние - лучше сделать NUT мастером (инициатором) передачи состояния, так будет оперативнее...
Даже "моргания света" будут фиксироваться...
Было: Majordomo v.0.6.0.b на Cubietruck. OS Armbian с переносом на HDD
Стало: ioBroker на Cubietruck OS Armbian + ZigBee Xiaomi + OWFS + BLE.
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение zelevova » Вт дек 09, 2014 10:17 am

ну да...
Я сначала начал городить опрос ИБП из MDM, а потом протестировал и перешел на твой скрипт.
А напряжение у тебя тоже NUT сам отдает или с сервера запрашиваешь регулярно?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
electric
Сообщения: 309
Зарегистрирован: Вт сен 17, 2013 10:11 pm
Благодарил (а): 3 раза
Поблагодарили: 56 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение electric » Вт дек 09, 2014 12:20 pm

zelevova писал(а):ну да...
Я сначала начал городить опрос ИБП из MDM, а потом протестировал и перешел на твой скрипт.
А напряжение у тебя тоже NUT сам отдает или с сервера запрашиваешь регулярно?
напряжение передает как у тебя - MDM запрашивает...
а еще процент заряда АКБ забирает и что то еще - не помню, надо смотреть
Было: Majordomo v.0.6.0.b на Cubietruck. OS Armbian с переносом на HDD
Стало: ioBroker на Cubietruck OS Armbian + ZigBee Xiaomi + OWFS + BLE.
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение dmw » Чт дек 11, 2014 4:05 pm

Очень полезная информация, спасибо!
От себя поправил чуть скрипт "SystemInfo_UPS", чтобы не парсить весь вывод, а получать значания сразу в массив.
так например: sg("UPS.InputVoltage",$UPS_state["input.voltage"]);

Код: Выделить всё

//Скрипт проверки состояния ИБП.
//Если вдруг upsmon не смог передать изменение состояния в MDM.
unset($UPS_state);
unset($UPS_state_raw);
exec("upsc CPS@localhost",$UPS_state_raw);
$count=count($UPS_state_raw);
$i=0;
while ($i<$count) {
    $rest = substr($UPS_state_raw[$i],0,strpos($UPS_state_raw[$i],":")); //имя параметра
    $value = substr($UPS_state_raw[$i],strpos($UPS_state_raw[$i],":")+2); //зачение параметра
    $UPS_state[$rest]=$value;
    $i++;
}

switch ($UPS_state["ups.status"]) {
case "OL":callMethod("UPS.checkInputState",array("stateColor"=>"green"));break;
case "OL TRIM":callMethod("UPS.checkInputState",array("stateColor"=>"green"));break;
case "OB":callMethod("UPS.checkInputState",array("stateColor"=>"yellow"));break;
case "LB":callMethod("UPS.checkInputState",array("stateColor"=>"red"));break;
};
Аватара пользователя
viris
Сообщения: 89
Зарегистрирован: Вс янв 20, 2013 5:24 pm
Откуда: ДНР Горловка
Благодарил (а): 1 раз
Поблагодарили: 2 раза
Контактная информация:

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение viris » Пт янв 16, 2015 6:20 pm

Всем привет. Может туплю но как зделать график с сетевым напряжением в МД? Помогите плис.
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение Ivan » Пн янв 26, 2015 9:39 pm

Реализован модуль для NUT
Обсуждения: http://smartliving.ru/forum/viewtopic.p ... 984#p17984
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
MiDash
Сообщения: 27
Зарегистрирован: Пт янв 23, 2015 5:09 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение MiDash » Ср фев 18, 2015 12:52 pm

Хочу обратить внимание, что применяемый здесь сценарий взаимодействия сервера и клиента является идеологически правильным. Скрипт проверки состояния ИБП это не лишний "наворот", а основной инструмент, с помощью которого можно получать нужную информацию с нужной частотой. Дополнительным, но тоже необходимым является как раз скрипт, вызываемый из upsmon, который позволяет узнать про асинхронные события не дожидаясь очередного опроса.
По аналогичной схеме производится взаимодействие по известному сетевому протоколу SNMP. Сервер (менеджер) регулярно опрашивает клиентов (агентов), но в случае непредвиденного события агент отправляет менеджеру сообщение о нем - SNMP Trap. Без этого информация не будет полной.
Vittaly
Сообщения: 118
Зарегистрирован: Вт окт 14, 2014 9:19 pm
Благодарил (а): 48 раз
Поблагодарили: 12 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение Vittaly » Ср мар 04, 2015 10:09 am

Вопрос к electric. Ну и ко всем остальным :D :
А как вы калибровали батареи, чтобы NUT мог вычислять время жизни при батарейном питании? Вот у вас в конфиге есть для этого строчки:

Код: Выделить всё

default.battery.voltage.high = 13.60
default.battery.voltage.low = 10.60
Вот вы их откуда взяли? Очевидно, что у вас стоит одна батарея. У меня их три, соединённых последовательно, и напряжение должно быть 36В. Но сейчас при полной зарядке и питании от сети юпс показывает напряжение батарей около 40В.
В юпсе есть какие-то функции автотеста (short test, long test), но даже в инструкции к юпсу ни слова о том, как ими пользоваться. Как правильно определить минимальное и максимальное напряжение на батареях?
Cubietrunck + Debian
electric
Сообщения: 309
Зарегистрирован: Вт сен 17, 2013 10:11 pm
Благодарил (а): 3 раза
Поблагодарили: 56 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение electric » Ср мар 04, 2015 10:12 am

Vittaly писал(а):Вопрос к electric. Ну и ко всем остальным :D :
А как вы калибровали батареи, чтобы NUT мог вычислять время жизни при батарейном питании? Вот у вас в конфиге есть для этого строчки:

Код: Выделить всё

default.battery.voltage.high = 13.60
default.battery.voltage.low = 10.60
Вот вы их откуда взяли? Очевидно, что у вас стоит одна батарея. У меня их три, соединённых последовательно, и напряжение должно быть 36В. Но сейчас при полной зарядке и питании от сети юпс показывает напряжение батарей около 40В.
В юпсе есть какие-то функции автотеста (short test, long test), но даже в инструкции к юпсу ни слова о том, как ими пользоваться. Как правильно определить минимальное и максимальное напряжение на батареях?
Я просто воспользовался данными из сети.
Думаю и вы сможете подобрать/найти вольтажи.
Можно поискать даташит на АКБ и взять информацию оттуда.
Было: Majordomo v.0.6.0.b на Cubietruck. OS Armbian с переносом на HDD
Стало: ioBroker на Cubietruck OS Armbian + ZigBee Xiaomi + OWFS + BLE.
Vittaly
Сообщения: 118
Зарегистрирован: Вт окт 14, 2014 9:19 pm
Благодарил (а): 48 раз
Поблагодарили: 12 раз

Re: Интеграция ИБП в систему MajorDoMo через NUT (Linux)

Сообщение Vittaly » Ср мар 04, 2015 4:15 pm

Может быть кому-то пригодится. У меня Inelt Monolith K1000LT. В техподдержке Inelt мне сказали, что UPS считает минимальным напряжение на одной банке 1,667 В (это когда ёмкость 0%, и UPS выключается), максимальным напряжение 2,667 В (это когда UPS считает, что батареи полностью заряжены, и прекращает зарядку). В стандартной батарее на 12 В 6 банок. Дальше каждый рассчитывает для себя в зависимости от кол-ва батарей, соединённых последовательно.
Cubietrunck + Debian
Ответить