Deye по Modbus: що ми дізналися, поки писали свою інтеграцію
Шукаєте карту регістрів, щоб читати Deye самі? Ми пройшли цей шлях, коли писали Svitgrid, і ділимося тим, чого немає в документації, разом з адресами регістрів. А якщо вам потрібен результат, а не проєкт, він уже готовий.
Deye не говорить Modbus TCP напряму
Через логер: Solarman V5
Wi-Fi-логер загортає Modbus RTU у власний протокол Solarman V5 на TCP-порту 8899. Кожен запит несе серійний номер логера. Звичайний клієнт Modbus TCP із заголовком MBAP таких кадрів не формує.
Логери із серійником на 26
Нове покоління логерів Deye не приймає локальних запитів: дані йдуть лише в хмару Deye. Лишається кабель.
Кабелем: Modbus RTU
RS-485, 9600 8N1, holding-регістри (функція 0x03). Адреса — поле Modbus SN на екрані інвертора, зазвичай 01. Адреса 00 широкомовна, і на неї Deye не відповідає ніколи. Розпіновка і пастки кабелю.
Пастки карти регістрів, які ми виміряли самі
Більшість карт Deye в мережі зібрані з документів виробника й проєктів спільноти. Ось що на справжніх інверторах виявилося інакше. Адреси десяткові.
Трифазна й однофазна карти різні
На SG04LP3 потужність PV1 — регістр 672, заряд батареї — 588, мережа — 625. На однофазних SG01LP1, SG02LP1 і SG05LP1 — 186, 184 і 169. Температури теж у різних блоках: 540/541 і 90/91, а «чужий» блок читає нулі або 65535. Потужність батареї (590 і 190) додатна при розряді.
Потужність у 10 Вт на одиницю
Деякі прошивки віддають регістр потужності вдесятеро меншим, а решта полів правильні. На SG02LP1 так приходять навантаження 178 і 179, на високовольтних SG01HP3 — потужність батареї 590. Перевіряйте добовими лічильниками самого інвертора (на однофазних: 76 — імпорт, 84 — навантаження, 108 — сонце), а не миттєвими значеннями.
Струму мережі там немає
Документовані адреси струму мережі (610–612 на трифазних, 160 на однофазних) на реальних інверторах тримають щось інше: регістр 160 показував близько 5,6 А, коли обмін із мережею був нульовий. Рахуйте струм як |P| / U.
Заряд від мережі вмикає не Time of Use
Дозвіл заряду від мережі — біт 0 регістра 130 на трифазних і 232 на однофазних. Головний перемикач Time of Use, біт 0 регістра 146 або 248, лише вмикає розклад слотів. У наших даних інвертори заряджалися від мережі й з вимкненим Time of Use, а з вимкненим бітом 0 у 130/232 — жоден.
У слота немає кінця
Шість слотів Time of Use ділять добу без проміжків: кінець слота N — це початок слота N+1 (148–153 на трифазних, 250–255 на однофазних). Запис одного слота зсуває межу сусіднього, а початки мають іти за зростанням.
Невідомі біти в увімкненні слота
У регістрах 172–177 (трифазні) і 274–279 (однофазні) біт 0 вмикає слот, а вищі біти теж бувають встановлені, і їхнє значення невідоме. Змінюйте лише біт 0 через читання, зміну й запис, ніколи не пишіть 0 чи 1 цілим словом.
Перш ніж писати в будь-який регістр, прочитайте його на своєму інверторі й збережіть, що там було.
Що ще потрібно, щоб з регістрів вийшла станція
| Крок | Що саме | Орієнтовно |
|---|---|---|
| Клієнт | Solarman V5 або RTU, повтори, тайм-аути, обрив зв’язку | дні |
| Карта вашої моделі | Масштаби, знаки, 16 чи 32 біти, перевірка на живому інверторі | дні |
| Запис | Часові слоти й режими без ризику залишити інвертор у дивному стані | тиждень |
| Все навколо | Де це працює цілодобово, зберігання історії, сповіщення, доступ з телефона | тижні |
| Разом | кілька тижнів |
Час орієнтовний: до першої станції, якою можна користуватися щодня.
Питання
Чи підтримує Deye Modbus TCP?
Не напряму. Wi-Fi-логер говорить Solarman V5 на порту 8899: це Modbus RTU, загорнутий у кадр із серійним номером логера. Логери із серійником на 26 не приймають і цього. По кабелю RS-485 інвертор відповідає звичайним Modbus RTU.
Які налаштування Modbus RTU у Deye?
9600 бод, 8 біт даних, без парності, 1 стоп-біт (8N1). Адреса — поле Modbus SN на екрані інвертора. На адресу 00 Deye не відповідає ніколи, тож встановіть 01, а кожному наступному інвертору на тій самій шині — 02, 03.
Як прочитати струм мережі Deye?
Ніяк, його немає в регістрах: документовані адреси (610–612 на трифазних, 160 на однофазних) тримають щось інше. Ділимо модуль потужності мережі на напругу мережі.
Чому Deye не заряджає батарею від мережі, хоча Time of Use увімкнено?
Перевірте біт 0 регістра 130 (трифазні) або 232 (однофазні): це дозвіл заряду від мережі. Головний перемикач Time of Use, регістр 146 або 248, лише вмикає розклад, а сам заряду від мережі не дозволяє.
Де взяти карту регістрів Deye?
Ключові адреси наведено вище. Трифазні SG04LP3 і однофазні моделі мають різні карти, а деякі прошивки віддають потужність у 10 Вт на одиницю, тож перевіряйте кожну адресу на своєму інверторі.
Читайте також
Спробуйте, перш ніж писати свою
Шлюз можна повернути протягом 14 днів. Якщо Svitgrid вам не підійде, ви втратите вечір, а не місяць.