Задача
Нужно подключить гибридный инвертор 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 используется внутренний RJ45-порт RS485/Modbus. В документации и готовых интеграциях для этой серии встречается такая распиновка: pin 1 — RS485B, pin 2 — RS485A, pin 3 — GND. На практике у RS-485 часто путаются обозначения A/B, поэтому отсутствие связи не всегда означает ошибку шаблона: иногда достаточно поменять две линии местами.
| Deye RJ45 | Назначение | Wiren Board |
|---|---|---|
pin 1 | RS485 B | B |
pin 2 | RS485 A | A |
pin 3 | GND | GND |
Настройки порта
| Параметр | Значение | Комментарий |
|---|---|---|
| Протокол | Modbus RTU | через RS-485 |
| Slave ID | 1 | на Deye: Modbus SN = 01 |
| Baudrate | 9600 | типовое значение для Deye |
| Data bits | 8 | 8N1 |
| Parity | None | без контроля чётности |
| Stop bits | 1 | 8N1 |
Если порт Deye ведет себя так, будто сам постоянно передает данные, проверьте режим COM-порта. В некоторых моделях Deye после обновления коммуникационной платы появляется выбор METER или 485; для опроса со стороны WB нужен режим 485, где инвертор работает как Modbus slave.
Если обмен нестабильный, а проводка короткая и заведомо правильная, попробуйте терминатор 120 Ом между линиями A и B на стороне адаптера/контроллера. В обсуждениях Home Assistant есть практический пример, где без терминатора данные читались с ошибками даже на коротком кабеле, а после установки резистора обмен стал стабильным.
Как это работает в штатном ПО WB
- wb-mqtt-serial открывает RS-485 порт WB и опрашивает Deye как Modbus RTU master.
- Каждый регистр из JSON-шаблона становится MQTT-контролом, например
/devices/deye_sg05lp1_eu_sm2/controls/PV1 Power. - wb-mqtt-db сохраняет историю числовых контролов.
- Web UI Wiren Board показывает текущие значения и строит графики по истории.
Регистры для графиков
Для графиков не нужно выводить все регистры подряд. Лучше разделить параметры на быстрые мощности, медленные температуры и накопительные счётчики энергии.
| Регистр | Канал | Формат | Масштаб | Ед. | График |
|---|---|---|---|---|---|
184 | Battery SOC | u16 | 1 | % | АКБ |
183 | Battery Voltage | u16 | 0.01 | V | АКБ |
191 | Battery Current | s16 | 0.01 | A | АКБ |
190 | Battery Power | s16 | 1 | W | АКБ |
186 | PV1 Power | s16 | 1 | W | PV |
187 | PV2 Power | s16 | 1 | W | PV |
109/111 | PV1/PV2 Voltage | u16 | 0.1 | V | PV |
110/112 | PV1/PV2 Current | u16 | 0.1 | A | PV |
169 | Grid Power | s16 | 1 | W | сеть |
172 | Grid CT Power | s16 | 1 | W | сеть |
150 | Grid Voltage | u16 | 0.1 | V | сеть |
79 | Grid Frequency | u16 | 0.01 | Hz | сеть |
178 | Load Power | s16 | 1 | W | дом |
108 | Day PV Energy | u16 | 0.1 | kWh | энергия |
76/77 | Day Grid Import/Export | u16 | 0.1 | kWh | энергия |
96/97 | Total PV Energy | u32 | 0.1 | kWh | энергия |
90/91/182 | температуры | s16 | 0.1, offset −100 | deg C | диагностика |
Стартовый шаблон 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-устройство Deye | WB создаст устройство на нужном 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.
/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 Power | 5–10 секунд |
| Сеть и температуры | Grid Voltage, Frequency, DC/AC Temperature | 30–60 секунд |
| Энергия | Day/Total kWh | 1–5 минут |
Проверка после подключения
- В Web UI проверьте, что устройство Deye появилось без красной ошибки.
- Откройте MQTT-топики и убедитесь, что меняются PV Power, Load Power и Battery SOC.
- Проверьте знак
Grid Power: при импорте и экспорте он должен меняться ожидаемо. - Проверьте знак
Battery Power: при заряде и разряде он должен отличаться направлением. - Откройте историю канала и убедитесь, что точки появляются в графике.
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 или отправлять уведомления.