Deye przez Modbus: czego nauczyliśmy się, pisząc własną integrację
Szukasz mapy rejestrów, żeby samodzielnie odczytywać Deye? Przeszliśmy tę drogę, pisząc Svitgrid, i dzielimy się tym, czego nie ma w dokumentacji, razem z adresami rejestrów. A jeśli potrzebujesz wyniku, a nie projektu, jest gotowy.
Deye nie mówi bezpośrednio Modbus TCP
Przez rejestrator: Solarman V5
Rejestrator Wi-Fi opakowuje Modbus RTU we własny protokół Solarman V5 na porcie TCP 8899. Każde zapytanie niesie numer seryjny rejestratora. Zwykły klient Modbus TCP z nagłówkiem MBAP nie buduje takich ramek.
Rejestratory z numerem seryjnym zaczynającym się od 26
Nowa generacja rejestratorów Deye nie przyjmuje zapytań lokalnych: dane trafiają tylko do chmury Deye. Zostaje kabel.
Kablem: Modbus RTU
RS-485, 9600 8N1, rejestry holding (funkcja 0x03). Adres to pole Modbus SN na ekranie falownika, zwykle 01. Adres 00 to adres rozgłoszeniowy i Deye nigdy na niego nie odpowiada. Układ pinów i pułapki kabla.
Pułapki mapy rejestrów, które sami zmierzyliśmy
Większość map Deye w sieci jest złożona z dokumentów producenta i projektów społeczności. Oto, co okazało się inne na prawdziwych falownikach. Adresy są dziesiętne.
Mapy trójfazowa i jednofazowa się różnią
W SG04LP3 moc PV1 to rejestr 672, naładowanie baterii to 588, a sieć to 625. W jednofazowych SG01LP1, SG02LP1 i SG05LP1 są to 186, 184 i 169. Temperatury też są w różnych blokach, 540/541 i 90/91, a zły blok zwraca zera lub 65535. Moc baterii (590 i 190) jest dodatnia przy rozładowaniu.
Moc w jednostkach po 10 W
Niektóre wersje firmware'u zgłaszają rejestr mocy dziesięć razy za mały, podczas gdy pozostałe pola są prawidłowe. W SG02LP1 dotyczy to obciążenia 178 i 179, a w wysokonapięciowym SG01HP3 mocy baterii 590. Sprawdzaj względem własnych dziennych liczników falownika (w jednostkach jednofazowych: 76 to pobór, 84 to dom, 108 to słońce), a nie wartości chwilowych.
Prądu sieci nie ma
Udokumentowane adresy prądu sieci (610–612 w trójfazowych, 160 w jednofazowych) zawierają w prawdziwych falownikach coś innego: rejestr 160 pokazywał około 5.6 A przy zerowej wymianie z siecią. Oblicz prąd jako |P| / U.
To nie Time of Use włącza ładowanie z sieci
Zezwolenie na ładowanie z sieci to bit 0 rejestru 130 w jednostkach trójfazowych i 232 w jednofazowych. Główny przełącznik Time of Use, bit 0 rejestru 146 lub 248, tylko włącza harmonogram przedziałów. W naszych danych falowniki ładowały się z sieci także przy wyłączonym Time of Use, a żaden nie robił tego przy wyłączonym bicie 0 rejestru 130/232.
Przedział nie ma końca
Sześć przedziałów Time of Use dzieli dobę bez luk: koniec przedziału N to początek przedziału N+1 (148–153 w trójfazowych, 250–255 w jednofazowych). Zapis jednego przedziału przesuwa granicę sąsiedniego, a czasy początku muszą iść rosnąco.
Nieznane bity we włączeniu przedziału
W rejestrach 172–177 (trójfazowy) i 274–279 (jednofazowy) bit 0 włącza przedział, a wyższe bity też mogą być ustawione, z nieznanym znaczeniem. Zmieniaj tylko bit 0, przez odczyt, modyfikację i zapis. Nigdy nie zapisuj 0 ani 1 jako całego słowa.
Zanim zapiszesz cokolwiek do rejestru, odczytaj go z falownika i zachowaj to, co tam było.
Co jeszcze jest potrzebne, żeby z rejestrów zrobić stację
| Krok | Co się z tym wiąże | Przybliżony czas |
|---|---|---|
| Klient | Solarman V5 lub RTU, ponowienia, limity czasu i zerwane połączenia | dni |
| Mapa Twojego modelu | Skale, znaki, 16 lub 32 bity i sprawdzenie na działającym falowniku | dni |
| Zapisy | Przedziały czasowe i tryby bez ryzyka pozostawienia falownika w dziwnym stanie | tydzień |
| Wszystko wokół niego | Gdzie to działa 24/7, przechowywanie historii, alerty i dostęp z telefonu | tygodnie |
| Razem | kilka tygodni |
Czas jest przybliżony: do pierwszej stacji, której możesz używać na co dzień.
Wsparcie
Pytania lub problem z Deye? Napisz do nas.
Napisz do nas na WhatsApp, po polsku, lub do grupy Svitgrid na Telegramie. Czytamy każdą wiadomość i odpowiadamy szybko: w grupie bot widzi Twoją stację dzięki kodowi diagnostycznemu z aplikacji, więc rozmowa zaczyna się od danych, a nie od pytań doprecyzowujących.
Cenimy osoby, które zgłaszają problemy. Potwierdzony błąd daje punkty, a punkty płacą za Twoją subskrypcję.
Pytania
Czy Deye obsługuje Modbus TCP?
Nie bezpośrednio. Rejestrator Wi-Fi mówi Solarman V5 na porcie 8899: to Modbus RTU opakowany w ramkę z numerem seryjnym rejestratora. Rejestratory z numerem seryjnym zaczynającym się od 26 nie przyjmują nawet tego. Po kablu RS-485 falownik odpowiada zwykłym Modbus RTU.
Jakie są ustawienia Modbus RTU w Deye?
9600 baud, 8 bitów danych, bez parzystości, 1 bit stopu (8N1). Adres to pole Modbus SN na ekranie falownika. Deye nigdy nie odpowiada na adres 00, więc ustaw 01, a na każdym kolejnym falowniku na tej samej magistrali ustaw 02, 03.
Jak odczytać prąd sieci w Deye?
Nie da się, bo nie ma go w rejestrach: udokumentowane adresy (610–612 w trójfazowych, 160 w jednofazowych) zawierają coś innego. Dzielimy wartość bezwzględną mocy sieci przez napięcie sieci.
Dlaczego Deye nie ładuje baterii z sieci, nawet gdy Time of Use jest włączony?
Sprawdź bit 0 rejestru 130 (trójfazowy) lub 232 (jednofazowy): to zezwolenie na ładowanie z sieci. Główny przełącznik Time of Use, rejestr 146 lub 248, tylko włącza harmonogram i sam nie zezwala na ładowanie z sieci.
Skąd wziąć mapę rejestrów Deye?
Najważniejsze adresy są powyżej. Trójfazowy SG04LP3 i modele jednofazowe mają różne mapy, a niektóre wersje firmware'u zgłaszają moc w jednostkach po 10 W, więc sprawdź każdy adres na własnym falowniku.
Czytaj dalej
Wypróbuj, zanim napiszesz własne
Wgranie firmware'u Svitgrid na własny ESP32-S3 jest darmowe. Jeśli Svitgrid Ci nie odpowiada, tracisz wieczór, a nie miesiąc.
