В нашей лаборатории солнечный инвертор Deltron Ultra 11kW (он же Voltronic Axpert Ultra). Инвертор умеет подключаться к wifi и слать телеметрию в своё облако. Но нам надо автономно, по этому читаем данные с rs232 и забираем на наш mqtt сервер.
Первоначально это был скрипт на php, а инвертор подключался к серверу через переходник rs232 — usb, но надёжность работы переходника оставляла желать лучшего, по этому было решено перенести функционал на esp8266.
Что умеет устройство
- Опрашивает инвертор командами
QPIGS(сеть, выход, нагрузка, АКБ, солнечные панели, температура),QMOD(режим работы) иQPI(версия протокола). - Читает второй вход солнечных панелей (
QPIGS2) у моделей с двумя MPPT, например Axpert Ultra. Датчики второго входа появляются, только если инвертор отвечает на эту команду. - Публикует все данные одним JSON в MQTT, а статус
online/offline— через Last Will. - Поддерживает MQTT Discovery: в Home Assistant устройство и все датчики появляются сами, без YAML.
- Имеет веб-интерфейс на английском или русском: страница статуса, настройки MQTT, интервала опроса, пинов и скорости порта.
- Первая настройка Wi-Fi через собственную точку доступа, как у Tasmota.
- Показывает на странице статуса, сколько байт пришло с RS232 и что именно ответил инвертор. Это сильно упрощает поиск ошибок в проводке прямо у инвертора, с телефона.
Проверено на Voltronic Axpert Ultra. Протокол у инверторов Voltronic общий, поэтому устройство должно работать и с другими моделями с портом RS232 на RJ45 (Axpert, MKS, King, VM и их клоны под другими брендами).

На скриншоте сокращённая карточка, из которой я убрал не интересные мне параметры. Всего их 24.
Что понадобится
| Деталь | Примечание |
|---|---|
| NodeMCU v3 (ESP8266) | Подойдёт любая плата на ESP8266 |
| Модуль RS232-TTL на MAX3232 с разъёмом DB9 | Именно MAX3232: он работает от 3,3 В. Модули на MAX232 рассчитаны на 5 В |
| Кабель с RJ45 | Родной кабель инвертора RJ45–DB9 или самодельный |
| Питание 5 В | Любая USB-зарядка |
Схема подключения
Инвертор RJ45 ──RS232── MAX3232 (DB9) ──TTL 3,3 В── NodeMCU
Модуль MAX3232 и NodeMCU
| NodeMCU | Модуль MAX3232 |
|---|---|
| D1 (GPIO5), приём | TXD |
| D2 (GPIO4), передача | RXD |
| 3V3 | VCC |
| GND | GND |
Важно: питайте модуль только от 3,3 В. При 5 В на выводе TXD модуля тоже будет 5 В, а входы ESP8266 на это не рассчитаны. Пины можно переназначить в веб-интерфейсе, так что если TXD и RXD на вашем модуле подписаны иначе, перепаивать ничего не нужно.
Инвертор и модуль: «папа» или «мама»
На разъёме RJ45 инвертора Voltronic: вывод 1 — передача данных (TX), вывод 2 — приём (RX), вывод 8 — земля. Выход одной стороны всегда идёт на вход другой, а какой вывод DB9 у модуля выход, зависит от разъёма на модуле. Модули продаются с обоими вариантами разъёма.
| RJ45 инвертора | DB9 «папа» (штырьки) | DB9 «мама» (гнёзда) |
|---|---|---|
| 1 (TX инвертора) | 2 | 3 |
| 2 (RX инвертора) | 3 | 2 |
| 8 (GND) | 5 | 5 |
Модуль с разъёмом «папа» устроен как COM-порт компьютера, поэтому родной кабель инвертора вставляется в него напрямую. Модуль с разъёмом «мама» рассчитан на подключение к компьютеру, и у него выводы 2 и 3 нужно перекрестить. С родным кабелем для этого подойдёт нуль-модемный переходник «папа–папа». Обычный прямой переходник не поможет.
На этом мы и попались сами: модуль с разъёмом «мама» прекрасно работал с компьютером, а от инвертора не пришло ни одного байта. Причина простая: и модуль, и инвертор рассчитаны на подключение к компьютеру, поэтому соединять их напрямую нельзя. Достаточно поменять местами провода на выводах 2 и 3. Если сомневаетесь, проверьте вольтметром: выход RS232 в покое держит около −5…−6 В относительно земли, а вход — около нуля.
Прошивка и настройка
Прошивка собирается в PlatformIO:
git clone https://github.com/ibuben/esp8266-voltronic-mqtt.git
cd esp8266-voltronic-mqtt
pio run -t upload
- После прошивки плата поднимает точку доступа
voltronic-XXXX. Подключитесь к ней с телефона, портал настройки откроется сам или по адресу192.168.4.1. - Выберите сеть Wi-Fi и укажите адрес MQTT-брокера, логин и пароль.
- Плата подключится к сети, а в Home Assistant появится устройство со всеми датчиками.
Остальное настраивается в веб-интерфейсе платы: топики, интервал опроса (по умолчанию 5 секунд), пины и скорость порта. Интерфейс по умолчанию на английском, русский включается в настройках. Чтобы снова открыть портал Wi-Fi, удерживайте кнопку FLASH на плате 3 секунды.
Что приходит в MQTT
На каждом цикле опроса плата отправляет один JSON. Фрагмент:
{
"grid_voltage_v": 230.1,
"output_frequency_hz": 49.9,
"output_active_power_w": 410,
"battery_voltage_v": 52.4,
"battery_capacity_pct": 85,
"pv_power_w": 0,
"pv2_power_w": 0,
"pv_total_power_w": 0,
"mode": "Battery"
}
Полный список полей, светодиодная индикация и таблица типичных неисправностей — в инструкции на GitHub.
