Приложение для контроля вашего ИБП на основе Megatec-протокола (Ippon и некоторые другие), подключаемого к компьютеру по USB, а также для управления питанием компьютера.
- Windows 7 и выше
- NET Framework 4.7.2 и выше
- Последнюю версию в виде zip-архива можно скачать по ссылке https://github.com/indevor/MegatecUpsController/releases/latest
- Справочная система доступна здесь же на Github Wiki
- Эволюция (она же История версий) описана в разделе релизов
- Красивое отображение получаемых от ИБП данных:
- входное и выходное напряжение
- напряжение и заряд батареи
- частота
- ток нагрузки ИБП (в процентах, амперах, ваттах, вольт-амперах)
- температура ИБП (хотя в большинстве случаев она всегда 25°)
- состояние AVR
- Масштабируемый интерфейс (хоть на весь экран)
- Возможность включать-выключать надоедливую пищалку ИБП
- График входного и выходного напряжения
- Выключение или гибернация компьютера при разряде батареи
- Настройка напряжений батареи и мощности под ваш ИБП
- Запись событий в текстовый файл
- Отправка команды по SSH на удалённую Linux-машину, при завершении работы/гибернации
После того как дома уже третий день подряд вырубили электричество, терпение подошло к концу, и в ближайшем ДНСе был куплен мой первый ИБП IPPON Back Basic 1050 с возможностью подключения по USB.
Однако тут же выяснилось, что родное приложение Иппона написано на Java и являет собой тормозное убожество не очень удобную программу. Да, функциональная, с возможностью контроля по сети, но мне это всё было не нужно, хотелось красивый вывод всех показателей ИБП, выключение по событиям, да и всё на этом.
Конечно есть аналоги, например Energy Controller 2. Намного функциональнее родной, всё выводит красиво. Но всё же есть пара надоедающих багов, вроде улетания главного окна за пределы экрана при загрузке компа.
Так зачем оно всё таки создано, при наличии кучи более функциональных аналогов?
Всё просто - захотелось сделать стильно-модно-молодёжно-масштабируемо, сделать СВОЁ, и самое главное - поупражняться в C# (да, первый проект на сишарпе, после многих лет работы на java и python).
Да, тут нет многого из того, что есть даже в родной версии. Но... если проект не будет заброшен, то всё реализуемо.
- C# WPF в Microsoft Visual Studio 2019
- внешний вид интерфейса - по мотивам программы Energy Controller 2
- библиотека UsbLibrary.dll - доработанная от adelectronics.ru (так как изначальная попила кровушки и блистала багами вроде невозможности видеть потерю связи с USB)
- описание Megatec-протокола - от networkupstools.org
- немногочисленные иконки - FontAwesome (хотя тащить всю библиотеку ради пары иконок такое себе. Зато они масштабируются)
- вывод графика - библиотека InteractiveDataDisplay.WPF
- работа с SSH - библиотека SSH.NET
- Добавлена поддержка веб-сервера
https,jsonвеб-сервер для мониторинга данных через браузер или парсинга сторонним софтом. В "настройках" галка. Например парсинга данных в Home Assistant для автоматизаций (аварийное выключение, оповещение и т.д и т.п) отслеживание сенсоров UPS на панели управления умным домом.
В браузере выглядит так:
Проверял на Ippon Back Basic 650 Euro и Home Assistant OS 2025.7.1. Прокинул всё что выдаёт софт в форму по дефолту:
"InputVoltage": 236.0,
"OutputVoltage": 236.0,
"LoadPercent": 9,
"Hz": 50.3,
"BatteryVoltage": 13.6,
"Temperature": 25.0,
"IsUtilityFail": false,
"IsBatteryLow": false,
"IsActiveAVR": false,
"IsBeeperOn": false,
"BatteryPercent": 97,
"CurVA": 94.5,
"CurWatt": 56.7,
"CurAmper": 0.2,
"ConnectStatus": true,
Редактируем /homeassistant/configuration.yaml, добавляем:
rest:
- resource: "https://192.168.1.98:8888/0/json"
verify_ssl: false
sensor:
- name: "UPS Status"
value_template: "{{ value_json.IsUtilityFail }}"
- name: "UPS InputVoltage"
value_template: "{{ value_json.InputVoltage | float }}"
device_class: voltage
unit_of_measurement: "V"
- name: "UPS OutVolt"
value_template: "{{ value_json.OutputVoltage | float }}"
device_class: voltage
unit_of_measurement: "V"
- name: "UPS Freq"
value_template: "{{ value_json.Hz | float }}"
device_class: frequency
unit_of_measurement: "Hz"
- name: "UPS Load"
value_template: "{{ value_json.LoadPercent | int}}"
device_class: power_factor
unit_of_measurement: "%"
- name: "UPS Battary Voltage"
value_template: "{{ value_json.BatteryVoltage | float }}"
device_class: voltage
unit_of_measurement: "V"
- name: "UPS Battary Percent"
value_template: "{{ value_json.BatteryPercent | int}}"
device_class: battery
unit_of_measurement: "%"
- name: "UPS power"
value_template: "{{ value_json.CurWatt | float}}"
device_class: power
unit_of_measurement: "W"
- name: "UPS Current power"
value_template: "{{ value_json.CurAmper | float}}"
device_class: current
unit_of_measurement: "A"
- name: "UPS Apparent power"
value_template: "{{ value_json.CurVA | float}}"
device_class: apparent_power
unit_of_measurement: "VA"
binary_sensor:
- name: "UPS BatteryLow"
device_class: battery
value_template: '{{ value_json.IsBatteryLow }}'
- name: "UPS Active AVR"
device_class: problem
value_template: '{{ value_json.IsActiveAVR }}'
- name: "UPS Connect Status"
device_class: connectivity
value_template: '{{ value_json.ConnectStatus }}'
- name: "UPS Beeper"
device_class: sound
value_template: '{{ value_json.IsBeeperOn }}'
Появятся сенсоры и бинарные сенсоры в объектах.
- Добавлена базовая поддержка протокола
Voltronic(Необходимо тестирование. Отпишитесь в issue если не фуричит, хотя должно.). На хабре пишут:
Протокол Voltronic на множестве указанных выше команд отличается только одной из них – вместо кода Q1 используется QS. При этом форматы ответов совпадают.
- Добавлено возможность отправлять произвольные команды и получать ответ. Пригодится что бы протестировать свой UPS и вытащить больше полезной инфы. Список команд тут: https://networkupstools.org/protocols/megatec.html
- Добавлена кнопка "Тест батареи 10 секунд".
Кому полезно сюда печеньки: BTC: bc1qfug54rq5zavd7ma7ps4q59g685r83f22xsthq8
Для тех кто не осилил перевод лицензии Apache License 2.0, её краткая неполная суть:
- программа бесплатная
- можно распространять и изменять
- если распространили или изменили - укажите что поменяли и первоначального автора (меня :-) )
- программа поставляется как есть, автор не даёт никаких гарантий безошибочной работы, не оказывает техническую поддержку, не несёт никакой ответственности за потерянные данные, сгоревшие компы, взорванные ИБП и тому подобное.
Печеньки автору: BTC: bc1q5aptd289qsvrtsf9t2z42udda5t70e7hc39sc2
Copyright © 2020 Артем Галактионов
galakart.android@gmail.com


