MyCottage.cc

Deye
Wiren Board

RS-485, Modbus RTU, wb-mqtt-serial и графики

Подключаем гибридный инвертор Deye SUN-3.6/5/6/7.6/8K-SG05LP1-EU-SM2 к WB7/WB8 штатными средствами Wiren Board: без LogicCL, без облака и без отдельного шлюза Home Assistant.

К списку статей

Задача

Нужно подключить гибридный инвертор Deye SUN-3.6/5/6/7.6/8K-SG05LP1-EU-SM2 к Wiren Board 7 или Wiren Board 8 по RS-485 и получить нормальные графики: генерация солнечных панелей, заряд аккумулятора, потребление дома, импорт и экспорт из сети.

В этой схеме не используется LogicCL. Низкоуровневый обмен делает штатный драйвер wb-mqtt-serial, историю пишет wb-mqtt-db, а графики строит стандартный Web UI Wiren Board.

Путь данных от Deye до графиков Wiren Board
От Modbus-регистра до графика: Deye → wb-mqtt-serial → MQTT → wb-mqtt-db → Web UI.
Коротко
Да, это будет работать для графиков WB, если правильно описать регистры, масштабы, знаковые значения и метаданные MQTT-контролов.

Физическое подключение

У Deye используется внутренний RJ45-порт RS485/Modbus. В документации и готовых интеграциях для этой серии встречается такая распиновка: pin 1 — RS485B, pin 2 — RS485A, pin 3 — GND. На практике у RS-485 часто путаются обозначения A/B, поэтому отсутствие связи не всегда означает ошибку шаблона: иногда достаточно поменять две линии местами.

Практическая схема подключения Deye к Wiren Board 7 или 8 по RS-485
Практическая схема подключения: питание контроллера, WB7/WB8 и линия RS-485 до инвертора Deye.
Упрощенная распиновка RS-485 Deye и Wiren Board
Упрощенная распиновка для проверки A/B/GND. Если обмена нет, сначала поменяйте A и B местами.
Deye RJ45НазначениеWiren Board
pin 1RS485 BB
pin 2RS485 AA
pin 3GNDGND

Настройки порта

ПараметрЗначениеКомментарий
ПротоколModbus RTUчерез RS-485
Slave ID1на Deye: Modbus SN = 01
Baudrate9600типовое значение для Deye
Data bits88N1
ParityNoneбез контроля чётности
Stop bits18N1

Если порт Deye ведет себя так, будто сам постоянно передает данные, проверьте режим COM-порта. В некоторых моделях Deye после обновления коммуникационной платы появляется выбор METER или 485; для опроса со стороны WB нужен режим 485, где инвертор работает как Modbus slave.

Если обмен нестабильный, а проводка короткая и заведомо правильная, попробуйте терминатор 120 Ом между линиями A и B на стороне адаптера/контроллера. В обсуждениях Home Assistant есть практический пример, где без терминатора данные читались с ошибками даже на коротком кабеле, а после установки резистора обмен стал стабильным.

Как это работает в штатном ПО WB

  1. wb-mqtt-serial открывает RS-485 порт WB и опрашивает Deye как Modbus RTU master.
  2. Каждый регистр из JSON-шаблона становится MQTT-контролом, например /devices/deye_sg05lp1_eu_sm2/controls/PV1 Power.
  3. wb-mqtt-db сохраняет историю числовых контролов.
  4. Web UI Wiren Board показывает текущие значения и строит графики по истории.

Регистры для графиков

Для графиков не нужно выводить все регистры подряд. Лучше разделить параметры на быстрые мощности, медленные температуры и накопительные счётчики энергии.

РегистрКаналФорматМасштабЕд.График
184Battery SOCu161%АКБ
183Battery Voltageu160.01VАКБ
191Battery Currents160.01AАКБ
190Battery Powers161WАКБ
186PV1 Powers161WPV
187PV2 Powers161WPV
109/111PV1/PV2 Voltageu160.1VPV
110/112PV1/PV2 Currentu160.1APV
169Grid Powers161Wсеть
172Grid CT Powers161Wсеть
150Grid Voltageu160.1Vсеть
79Grid Frequencyu160.01Hzсеть
178Load Powers161Wдом
108Day PV Energyu160.1kWhэнергия
76/77Day Grid Import/Exportu160.1kWhэнергия
96/97Total PV Energyu320.1kWhэнергия
90/91/182температурыs160.1, offset −100deg Cдиагностика
Пример групп графиков Deye в Wiren Board
Практичный набор графиков: мощности, сеть, аккумулятор и накопленная энергия.

Стартовый шаблон wb-mqtt-serial

Полный стартовый JSON-шаблон вынесен в отдельный файл: deye-sg05lp1-eu-sm2-wb-mqtt-serial-template.json. Его нужно использовать как базу и проверить на живом инверторе: некоторые прошивки могут отличаться по адресации или знаку мощности.

{
  "device_type": "deye_sg05lp1_eu_sm2",
  "group": "g-inverters",
  "device": {
    "name": "Deye SUN-3.6/5/6/7.6/8K-SG05LP1-EU-SM2",
    "id": "deye_sg05lp1_eu_sm2",
    "max_read_registers": 32,
    "response_timeout_ms": 1000,
    "guard_interval_us": 4010
  },
  "protocol": "modbus",
  "channels": [
    { "name": "Battery SOC", "reg_type": "holding", "address": 184, "type": "value", "format": "u16", "scale": 1, "units": "%", "readonly": true },
    { "name": "PV1 Power", "reg_type": "holding", "address": 186, "type": "value", "format": "s16", "scale": 1, "units": "W", "readonly": true },
    { "name": "PV2 Power", "reg_type": "holding", "address": 187, "type": "value", "format": "s16", "scale": 1, "units": "W", "readonly": true },
    { "name": "Grid Power", "reg_type": "holding", "address": 169, "type": "value", "format": "s16", "scale": 1, "units": "W", "readonly": true },
    { "name": "Load Power", "reg_type": "holding", "address": 178, "type": "value", "format": "s16", "scale": 1, "units": "W", "readonly": true }
  ]
}

Как добавить шаблон в WB7/WB8

В WB7 и WB8 используется один и тот же штатный механизм: wb-mqtt-serial берет JSON-шаблон устройства, а веб-интерфейс Wiren Board показывает его в списке типов Modbus-устройств. Предустановленные шаблоны лежат в /usr/share/wb-mqtt-serial/templates, а пользовательские лучше класть отдельно — в /etc/wb-mqtt-serial.conf.d/templates. Такой шаблон не потеряется при обновлении пакетов и имеет приоритет над штатными шаблонами с тем же типом.

ШагЧто сделатьЗачем
1Скачать файл deye-sg05lp1-eu-sm2-wb-mqtt-serial-template.jsonэто описание регистров Deye для wb-mqtt-serial
2Зайти на контроллер по SSH или открыть файловый менеджер WBнужно положить шаблон в системный каталог контроллера
3Создать каталог /etc/wb-mqtt-serial.conf.d/templates, если его ещё нетэто место для пользовательских шаблонов
4Скопировать JSON-файл в этот каталогпосле этого конфигуратор WB сможет увидеть новый тип устройства
5Подождать около 20 секунд или перезапустить wb-mqtt-confedконфигуратор перечитает список шаблонов
6В Web UI открыть настройку Serial-устройств и добавить Modbus-устройство DeyeWB создаст устройство на нужном RS-485 порту

Минимальный вариант через SSH выглядит так. IP-адрес, имя пользователя и способ копирования зависят от конкретного объекта; на новых установках обычно удобнее зайти в Web UI и пользоваться встроенным доступом к файлам, если он включён.

ssh [email protected]
mkdir -p /etc/wb-mqtt-serial.conf.d/templates

# файл можно передать с компьютера командой scp:
scp deye-sg05lp1-eu-sm2-wb-mqtt-serial-template.json [email protected]:/etc/wb-mqtt-serial.conf.d/templates/

# после копирования обновить список шаблонов:
systemctl restart wb-mqtt-confed

После этого в веб-интерфейсе WB откройте Настройки → Конфигурационные файлы → Настройка драйвера Serial-устройств. В нужном порту RS-485 добавьте устройство с протоколом Modbus RTU, выберите тип Deye SUN-3.6/5/6/7.6/8K-SG05LP1-EU-SM2, задайте адрес 1, baudrate 9600, 8N1 и сохраните конфигурацию. Обычно wb-mqtt-serial перезапускается автоматически после сохранения, но при ручной отладке его можно перезапустить отдельно.

systemctl restart wb-mqtt-serial
systemctl status wb-mqtt-serial --no-pager
mosquitto_sub -t '/devices/deye_sg05lp1_eu_sm2/#' -v

Если новый тип устройства не появился в списке, проверьте имя файла, валидность JSON и журнал wb-mqtt-serial. Если тип появился, но все каналы красные, проблема уже не в шаблоне, а в линии RS-485, адресе Modbus, режиме порта Deye или перепутанных A/B.

Важно для WB7/WB8
Не редактируйте штатные файлы в /usr/share/wb-mqtt-serial/templates: при обновлении системы они могут быть заменены. Для объекта используйте пользовательский каталог /etc/wb-mqtt-serial.conf.d/templates.

Как настроить графики

Графики строятся по MQTT-контролам. Для этого каждый канал должен быть числовым: type: "value", единицы задаются через units, точность через precision. Для температур можно использовать type: "temperature", но для мощности, напряжения и тока сейчас лучше использовать value с единицами W, V, A.

ГруппаКаналыИнтервал
Быстрые мощностиPV1/PV2 Power, Grid Power, Load Power, Battery Power5–10 секунд
Сеть и температурыGrid Voltage, Frequency, DC/AC Temperature30–60 секунд
ЭнергияDay/Total kWh1–5 минут

Проверка после подключения

  1. В Web UI проверьте, что устройство Deye появилось без красной ошибки.
  2. Откройте MQTT-топики и убедитесь, что меняются PV Power, Load Power и Battery SOC.
  3. Проверьте знак Grid Power: при импорте и экспорте он должен меняться ожидаемо.
  4. Проверьте знак Battery Power: при заряде и разряде он должен отличаться направлением.
  5. Откройте историю канала и убедитесь, что точки появляются в графике.
mosquitto_sub -t '/devices/deye_sg05lp1_eu_sm2/controls/+/meta' -v
mosquitto_sub -t '/devices/deye_sg05lp1_eu_sm2/controls/+' -v

Типовые ошибки

СимптомВероятная причинаЧто сделать
Все каналы красныенет связи RS-485проверить порт, slave id, baudrate, A/B
Ответов нет, но порт активенне тот RJ45-порт Deyeиспользовать RS485/Modbus monitoring port, не CAN/BMS/Parallel
RX мигает постоянно, даже без запроса WBпорт Deye работает как master или meter-портпроверить COM Settings и выбрать режим 485, а не METER
Чтение то появляется, то пропадаетпомехи, отражения или нет согласования линиипроверить экран/GND и попробовать терминатор 120 Ом между A/B
Значения похожи на мусорневерный масштаб или знаковостьсверить format, scale, offset
Энергия слишком мала или великаошибка 32-битного регистрапроверить u32 и порядок слов
График не появляетсянет истории или канал не числовойпроверить type, units, wb-mqtt-db

Что важно проверить на объекте

  • PV1/PV2 должны расти днём и падать вечером.
  • Load Power должен примерно совпадать с реальной нагрузкой дома.
  • Grid Power должен показывать направление обмена с сетью.
  • Battery SOC должен совпадать с экраном инвертора или BMS.
  • Total Energy лучше проверить за сутки: накопление должно быть монотонным.

Практика из Home Assistant

Обсуждения вокруг Home Assistant и проекта Sunsynk полезны как полевая проверка: там встречаются те же инверторы Deye/Sunsynk, тот же Modbus RTU и похожая логика датчиков. Для Wiren Board меняется только верхний уровень: вместо HA Add-on данные принимает wb-mqtt-serial, а дальше их пишет MQTT-история WB.

  • kellerza/sunsynk discussion #489 — полезный пример, где порт Deye сначала работал как master/meter, а для нормального опроса потребовался режим 485 / slave.
  • Home Assistant Community: Deye/Sunsynk Integration — подтверждает, что Deye часто интегрируют через Sunsynk/Deye-совместимые решения, а локальная RS-485 схема дает более частые данные, чем облачные варианты.

Итог

Deye можно подключить к Wiren Board 7/8 без промежуточного сервера и без LogicCL: RS-485 подключается к порту WB, wb-mqtt-serial читает Modbus-регистры, а Web UI строит графики по MQTT-истории. LogicCL можно добавить позже, если нужны сценарии: например, ограничивать нагрузки при низком SOC или отправлять уведомления.