Среди ИТ специалистов ходит анекдот, что системные администраторы делятся на 10 категории, на тех кто пока не делает бэкап, и на тех, кто уже делает резервное копирование данных. А так как самой частой причиной отказов в ЦОДах является – сбой электропитания, то обеспечение надежного электрическое питания для компьютера (да и для любой другой цифровой техники) является наиглавнейшей задачей.
К сожалению, большинство простых (офисных) источников бесперебойного питания выпускаются либо вообще без возможности дистанционного/автоматизированного контроля его состояния (только звуковое оповещение), либо имеют подключение по USB с собственным протоколом связи и проприетарным приложением, которое обладает самым минимумом функций (наверное маркетологи таким образом ненавязчиво подталкивают потребителей к покупке более дорогих моделей своего оборудования).
Но даже при наличии связи с ИБП, информация о его состоянии батареи бывает, мягко говоря, противоречивая, а информация о температуре внутри ИБП и вовсе отсуствует. И даже на более дорогих моделях может не отслеживать некоторые важные параметры работы источника бесперебойного питания, в первую очередь, состояние его аккумуляторной батареи.
И особая сложность возникает, когда дома используется сразу несколько бесперебойников, ведь следить за их состоянием приходится самому, тогда как сами устройства не очень дорогие, как правило не имеют возможности дистанционного/автоматизированного контроля его состояния и находятся в разных комнатах.
Некоторое время настрадавшись с подключением UPS по USB с помощью проприетарных программ, я решил разобраться с данной проблемой кардинально - сделать простенький контроллер состояния батареи источника бесперебойного питания со стандартным протоколом связи ИБП, который бы подошел для любого типа и модели источника бесперебойного питания при использования дома или в небольшом офисе.
Минусы такого решения (установки дополнительной платы контролера на АКБ) - её нужно делать самостоятельно или покупать уже готовую, а потом вручную устанавливать в каждый ИБП.
Однако плюсы подобного решения мне кажутся значительно весомее - наличие полной и актуальной информации о реальном состоянии батареи, отсутствие зависимости от проприетпрных программ и протоколов связи с UPS и конкретных моделей (можно дорабатывать даже самые дешевые модели ИБП) и индивидуальная идентификация каждого ИБП с накоплением статистики работы.
Изначально я хотел найти уже готовое решение для дистанционного контроля ИБП с помощью какой нибудь малинки. И хотя идея Open Source очень привлекательна, а уж Open Source Hardware и подавно, но всё имеет свою цену. И за открытое железо обычно приходится платить определенной сложностью его изготовления и эксплуатации. А уже если речь идет о самостоятельной сборке электронной платы, то о простоте и дешевизне итогового решения говорить уже не приходится.
Поэтому, так и не найдя устраивающее меня готовое решение, я решил сделать максимально простое и дешевое устройство (в пределах 1-2 тыс.рублей), которое можно было бы подключить к любому источнику бесперебойного питания (точнее к его АКБ). Конечно, при подключении контроллера к клеммам АКБ не будет некоторой информации (например, напряжения питающей сети), но это и не важно, так как основной целью устройства является в первую очередь контроль состояния АКБ и такого подключения вполне достаточно для определения режима работы источника бесперебойного питания (от сети, от АКБ), уровня заряда аккумулятора, статистики работы и т.д.
Первоначально качестве линии связи я хотел использовать RS485 (он более надежный и расстояние значительно больше, чем у USB, а по одной линии связи может работать сразу несколько устройств одновременно), но в конечном итоге решил сделать все максимально просто и дешевле, оставив классический USB, просто добавив к нему еще Bluetooth и WiFi.
Вопрос к читателям Хабра
Сейчас я собрал прототип контроллера в виде макетной платы для отладки схемотехники и прошивки, но в дальнейшем планирую сделать его в виде отдельной платы. Но так как прототипы плат с монтажом компонентов в Китае приходится оформлять через посредников (монтаж компонентов при заказе из России не делают), из-за чего и стоимость изготовления 2-3 палат выходит просто космическая, то передо мной стоит выбор, либо делать пару плат для собственного использования навесным монтажом или утюжным способом или с кем нибудь скооперироваться, чтобы разделить затраты на изготовление контроллеров заводским способом (будет имееть смысл, если наберется хотя бы десяток желающих).
Комментарии (28)
m0xf
08.06.2025 11:36Нормальные ИБП работают по USB без установки дополнительного ПО и драйверов. Сразу после подключения системном трее появляется значёк батареи с процентом заряда, как на ноутбуках.
rsashka Автор
08.06.2025 11:36Согласен, что нормальные ИБП именно так и должны делать.
Вот только где найти такой нормальный и не дорогой ИБП с поддержкой Linux?mano2020
08.06.2025 11:36У вас немного неправильно поставлен вопрос, не ИБП поддерживает Linux, а Linux поддерживает ИБП - в проекте nut https://networkupstools.org/
уже прописаны протоколы для всех основных производителей ИБП. Всё, что ИБП отдает по USB - можно любым способом обрабатывать.
В серьезных серверных ИБП есть либо слоты для карточек SNMP, либо уже встроены такие карточки.Поэтому вы с чистой совестью можете брать любой компьютер с Linux, подключать к нему ИБП через USB и всё нужное посмотреть, передать, обработать, графики нарисовать.
Так сказать - всё придумано до нас.(чтобы не быть голословным - буквально вчера подсоединял ИБП Powercom к NAS Netgear - обоим примерно по десять лет, потратил часа два на изучение вопроса и никак не мог понять почему практически нет информации о том, как нужно сплясать чтобы всё заработало - оказалось что нужно просто вставить провод USB и.... всё! - ИБП определился, оставалось только выбрать уровень заряда аккумулятора, при котором NAS должен штатно завершить работу в случае отключении электросети - nut в Netgear-овский Linux встроен по умолчанию. Нет, совсем без танцев не обошлось - при холодном старте NAS ИБП не определялся, при передергивании провода - определялся, но это проблема алгоритма работы USB портов в NAS - еще пару часов поиска почему такое происходит, по результату написал скрипт на две строчки, который через минуту после загрузки передергивал порт USB - если бы я купил не Powercom, а, например, APC - такого бы не было (поддержка APC в Netgear заявлена)
Но в качестве тренировки - почему нет? Платы, кстати, в Китае собирают и шлют - только через посредника в Китае, информации достаточно как это сделать.
И сисадмины делятся не на 10, а на 11 категорий - вы забыли тех, кто бэкапы потом проверяет на возможность из них развернуть систему.
slog2
08.06.2025 11:36Идея то хорошая. И меня посещала. У меня не ИБП, а некий электротранспорт, в котором 5 батарей 12в 55а*ч последовательно и не плохо бы каждую из них контролировать. Только вы ничего не сообщили кроме того что есть некий прототип. У меня нет проблем разработать, заказать и спаять платы. И стоимость совсем не космическая. Если бы я делал какой-то вольтметр с BLE для одной батареи, то по себестоимости будет не дороже 500руб.
rsashka Автор
08.06.2025 11:36то по себестоимости будет не дороже 500руб.
В пятьсот рублей у меня никак не влезает: IOT модуль + преобразователь питания (12-24В до 5-7В) + токовый шунт 75мВ + 4 резистора для делителей напряжения + датчик температуры ds18b20. Это минимум без платы и без монтажа.
slog2
08.06.2025 11:36Не надо никакой IOT модуль, надо дешевый BLE модуль + дешевый процик за 20 рублей. Питание 12-24 -> 3,3v это 20-30 рублей. А надо ли ток контролировать? Может напряжения достаточно. ds18b20 дорого и оригинальный не найти. С частью которая будет измерять я проблем не вижу. А кто будет это всё собирать и показывать?
Ivanii
08.06.2025 11:36ESP32 + INA3221+ шунт(для тяговых можно перемычку шунтом использовать) + MP2315(до 20 В) + немного рассыпухи. DS18B20 можно взять производства UMW https://www.chipdip.ru/product/ds18b20-umw
rsashka Автор
08.06.2025 11:36Именно так я и делаю.
Ivanii
08.06.2025 11:36DC-DC 40 р., INA3221 80 р., ESP32 150 р., DS18B20 60 р., Шунт 10 р. = 340 р.
slog2
08.06.2025 11:36INA3221 80 р
Где она по 80р ? И зачем 3 канала?
Ivanii
08.06.2025 11:36https://aliexpress.ru/item/32828796768.html Первая что была под руками, лишнее не используйте.
rsashka Автор
08.06.2025 11:36дешевый BLE модуль + дешевый процик за 20 рублей
для которых еще нужна обвязка MCU + разъем и обвязка для USB (у самых дешевых микроконтроллеров поддержки USB может и не быть) + обязательно плата (навесным монтажом проводки к ножкам не припаяешь).
В итоге все это выйдет гораздо дороже и сложнее какого нибудь ESP32 с уже рабочим USB и встроенными WiFi и Bluetooth
slog2
08.06.2025 11:36Плата в любом случае нужна. Или вас устроит колхоз из китайских модулей на проводках и соплях? Меня сопли в принципе не устраивают, наигрался в детстве. Зачем USB и WiFi в батарее? ESP32 кушает слишком много.
VBKesha
08.06.2025 11:36Для дома смысла маловато. Потери не те. Ну потераяешь 1-2 часа работы, максимум. А на серьезном оборудовании стоят другие решения.
PS. С другой стороны рано или поздно многих посещается идея своего бесперебойника.
rsashka Автор
08.06.2025 11:36Ну потераяешь 1-2 часа работы, максимум.
С точки зрения потери данных, потерь вообще не будет, так как я дома работаю на ноутбуке, только с внешним монитором и клавиатурой.
Тут больше защита от скачков напряжения при продолжении работы при отсутствии питания.
alexkuzko
08.06.2025 11:36А можно поставить АВР и переключать назад на сеть если упал ИБП. Не для всех сценариев (если основная сеть ещё не работает, но зато если на ИБП в целом работает что-то постоянно, то так можно тестировать без боязни потерять питание на нагрузке)...
VT100
08.06.2025 11:36Показометр напряжения на аккумуляторе - почти ничего не даст. Дохлая батарея с повышенным внутренним сопротивлением (например - выкипание) - даст то же самое напряжение (на которое настроен блок заряда), но не выдержит и десятка мс.
Даже если делать параллельно контроль тока и, перемножая между собой и со временем, получать реальные кулоны - остаётся вопрос о граничных условиях. Заряд с N1 до N2 вольт током Inom за время T при температуре t - это норма или потеря ёмкости? А если потеря, то скольких процентов? А "новая" батарея, пролежавшая год на складе - насколько "новая"? Решение вопроса потянет на полноценный НИР с погружением в тематику, поиском информации и опытами.
Без возможности переключения на аккумуляторы для теста - любая "нашлёпка" немного стоит. Отсюда - желательность разбора вендорских протоколов (которые часто являются просто дискретными сигналами на линиях "чего-то, похожего на COM-порт") и неверность опроса. Надо спрашивать не "Защищаетесь ли Вы", а "Чем Вы защищаетесь". Как вариант - "нашлёпка" могла бы подавать сигнал на принудительное переключение внутрь схемы UPS. Но это - сузит круг последователей.
Беспроводной интерфейс для стационарного прибора и прочие свистоперделки вроде "подсветки кнопаськи" - считаю излишеством. Но тут уж - каждый как хочет.
rsashka Автор
08.06.2025 11:36Даже если делать параллельно контроль тока
Именно контроль тока на шунте. В этом случае можно будет и емкость/заряд подсчитать и ручную корректировку настроить при необходимости.
Без возможности переключения на аккумуляторы для теста - любая "нашлёпка" немного стоит.
Для этого нужен контроль входного напряжения, но вот это делать как раз и не хочется.
Беспроводной интерфейс для стационарного прибора и
Беспроводные интерфейсы идут в комплекте, тогда как основной это USB
nbkgroup
Может, просто заменить свинцово-кислотную батарею на LiFePo4?
rsashka Автор
В принципе можно, но итоговая стоимость такого решения будет значительно дороже. Ведь такая батарея довольно дорогая и к ней потребуется отдельный контролер заряда (ведь зарядка UPSа рассчитана обычную АКБ)
И все это никак не убирает изначальную проблему - удаленный контроль состояния АКБ в ИБП.
Merkt007
Но ведь если аккум сам по себе фиговый, его мониторинг мало что даст.
powerman
Я сегодня подключил новую LiFePO₄ вместо предыдущей AGM батареи. И, надо признать, с точки зрения юзабилити - это был почти что шок! Единственная особенность AGM/GEL батарей в плане юзабилити - это немного пугающе громкие хлопки с искрами в момент подключения второй клеммы. Моя батарея LiFePO₄ в этом плане отличается принципиально:
- На ней есть кнопка включения! Так что хлопков и искр при подключении удалось избежать.
- Когда батарея включена - кнопка включения подсвечивается!
- На ней есть LCD индикатор! (На котором ещё пара кнопок, с которыми я пока не разбирался.)
- У неё есть Bluetooth и приложение для смартфона:
Да, LiFePO₄ действительно примерно на 25% дороже AGM/GEL, но учитывая разницу в их характеристиках и сроке службы покупать AGM/GEL есть смысл либо если это последние деньги и больше нет (что при покупке аккумулятора для UPS маловероятно - это не жизненно необходимый товар), либо если это массовые закупки в серверную/ДЦ и экономия в 25% сейчас на таких масштабах для компании намного важнее любых возможных преимуществ и экономии которые станут ощутимы через несколько лет.
sim2q
нолик забыли?
Небольшой резистор для начальной зарядки ёмкостей в UPS решает, надо то всего раз...
Но в целом согласен, менять надо. Сам со свинцом намаялся. Акк стоят чуть недозаряженными. В отдельном вентилируемом отсеке, в режим баттарей переходит очень редко и не на долго и.... всё равно сульфатация.
powerman
Откуда там нолик? Может если сравнивать с автомобильными кислотными, но здесь речь об UPS в комнате и необслуживаемых типа-герметичных AGM/GEL. Первые попавшиеся цены на 100 Ah: LiFePO₄=$313, AGM=$250.
powerman
У меня в личке уже несколько человек спросили о какой конкретно модели шла речь, так что я всё-таки оставлю ссылку прямо здесь: Аккумулятор LP LiFePO4 12,8V - 100 Ah (1280Wh) (BMS 100A/50А) пластик LCD Smart BT.