Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Odczyt danych z falownika FoxESS T5 przez RS485: komunikacja, pakiety danych, rejestry

tomek_byd 30 Apr 2023 20:46 1017 7
NDN
  • #1
    tomek_byd
    Level 13  
    Witam!

    Mam falownik FoxESS T5 i podłączony kabel do porty COM pod piny 1 i 2. Z informacji od serwisu wynikało by, że idą tam pakiety danych które idą potem do chmury. W moim przypadku odbieram w kółko pakiety 02 04 00 00 00 06 70 3B. Idzie około 580 takich pakietów na minutę. Z analizatora modbus wynika, że to zapytanie do urządzenia o adresie 0x02 i odczyt 2 bajtów od adresu 0x4A.
    Już zwątpiłem czy nie pomyliłem się i nie podłączyłem się pod RS od licznika, ale na pewno podpiąłem się pod piny 1 i 2. Sam licznik DTSU666, który jest dedykowany pod ten falownik, nie ma rejestru 0x4A, więc falownik nawet nie miał by czego tam szukać.
    Czy może komuś udało się skomunikować z tą serią falowników i naprowadzi mnie jak odczytać dane na temat pracy falownika?
  • NDN
  • #2
    miszko
    Level 14  
    Cześć,
    mam Foxess T10, ale to jest co do zasady to samo.

    tomek_byd wrote:
    Z informacji od serwisu wynikało by, że idą tam pakiety danych które idą potem do chmury. W moim przypadku odbieram w kółko pakiety 02 04 00 00 00 06 70 3B. Idzie około 580 takich pakietów na minutę. Z analizatora modbus wynika, że to zapytanie do urządzenia o adresie 0x02 i odczyt 2 bajtów od adresu 0x4A.


    Te falowniki mają 2 rodzaje komunikacji. Po WiFi i tutaj faktycznie dane trafiają do ich chmury i za pomocą apki na telefon możesz sobie przeglądać co się dzieje.
    Przez port COM nie ma komunikacji z chmurą, to po prostu RS485. Ja mam RPi4 + USB->RS485 i napisałem sobie parser danych. Nic pięknego, ale działa.

    Licznik ma oddzielne piny do komunikacji po RS485 (oznaczony jako METER+ i METER-). To na pewno się tam wpiąłeś, a nie w ten do komunikacji? Piny 1 oraz 2 są do RS485 a 3 oraz 4 do licznika też po RS485.

    Inwerter komunikuje się z szybkością 9600 baudrate, 8bit fame, stopbit 1, brak parity. Wysyła raz na minutę ramkę, więc nie zdziw się jak podłączysz to nic nie dostaniesz zaraz. Musisz czekać za danymi. No i tam nie ma modbusa, dane lecą "RAW". Ja w pythonie mam ten skrypt stworzony. Ramka, która niesienie dane dot. parametrów pracy ma 165 bajtów długości, ale leca też inne ramki jak te mówiące o wersji softu, adresie inwertera itp. Ta właściwa jest największa. Zaczyna się od nagłówka 0x7e 0x7e 0x2. Nie łączyłem tego z zewnętrznym licznikiem, bo nie mam takiej możliwości (nie dam rady przeciągnąć do kabla) to też kupiłem sobie liczniki Zamel MEW-01 z WiFi i po mqqt zbieram sobie z nich dane po WiFi. Porównując sobie wiele rzeczy nie stwierdziłem przekłamań w tym co Zamel mówi, a mam z innych źródeł dane. Tak więc z podłączeniem licznika nie pomogę, ale z tym wyżej myślę rozjaśniłem.

    Jeżeli chcesz zbierać dane do siebie to popatrz sobie na Foxess + HomeAssistan, ale szukaj informacji o serii T, bo wiele rzeczy mówi o innych seriach i są różnice. Ja zbieram sobie to do Zabbixa, bo tak mi wygodniej i wszystko mi ładnie rysuje.

    Ja pamiętam jak zaczynałem tworzyć to miałem już inny szkielet skryptu po rozkodowaniu innego sterownika (do pieca), ale tutaj znajdziesz prezentację adresów w ramce, które dadzą Ci konkretne wartości -> https://github.com/assembly12/Foxess-T-series-ESPHome-Home-Assistant

    I takie coś mam (pochmurno u mnie dzisiaj):
    Odczyt danych z falownika FoxESS T5 przez RS485: komunikacja, pakiety danych, rejestry
  • NDN
  • #3
    tomek_byd
    Level 13  
    miszko wrote:
    Licznik ma oddzielne piny do komunikacji po RS485 (oznaczony jako METER+ i METER-). To na pewno się tam wpiąłeś, a nie w ten do komunikacji? Piny 1 oraz 2 są do RS485 a 3 oraz 4 do licznika też po RS485.

    Jestem wpięty w piny 1 i 2 w falowniku. Piny 3 i 4 rozumiem, że służą tylko do komunikacji z licznikiem, a ja powinienem być wpięty w te 1 i 2? Z przetwarzaniem danych nie będę miał problemu. Niestety nie dostaje nic poza tym jednym pakietem w kółko, więc na razie to główna przeszkodą przed pójściem dalej.
    Odczyt danych z falownika FoxESS T5 przez RS485: komunikacja, pakiety danych, rejestry
  • #4
    miszko
    Level 14  
    Tak, 1-2 to komunikacja do pobrania danych z falownika, 3-4 to do podłączenia licznika zewnętrznego.
    Odczyt danych z falownika FoxESS T5 przez RS485: komunikacja, pakiety danych, rejestry

    Sprawdź czy parametry transmisji masz OK. Tam te pakiety latają jak wspomniałem dość rzadko, ten z blokiem danych jak zobaczyłem w swój kod to mam timeout na otrzymanie jego na 150s.
  • #5
    tomek_byd
    Level 13  
    miszko wrote:
    Sprawdź czy parametry transmisji masz OK. Tam te pakiety latają jak wspomniałem dość rzadko, ten z blokiem danych jak zobaczyłem w swój kod to mam timeout na otrzymanie jego na 150s.

    Mam 9600,8,1,None. Obecnie idzie to przez moduł EW11 do serwera który odbiera przez port otwarty przez PHP, ale sprawdzałem też bezpośrednio i ten sam efekt. Czy ja dobrze rozumiem, że powinienem tylko nasłuchiwać i powinienem dostać te pakiety danych? Czy może muszę aktywnie coś wysłać? Ten jeden pakiet 0x02 0x04 0x00 0x00 0x00 0x06 0x70 0x3B dostaję kilka razy na sekundę. Nie dostaję nic innego. Całe dnie monitoruje dane i nie ma nic oprócz wieczoru gdzie po prostu urywa pakiet i idzie tylko fragment tego co zawsze. Nie ma nic innego.
  • #6
    miszko
    Level 14  
    Tak, tylko nasłuchujesz tutaj. Nic nie wysyłasz. Pakiety jak pamiętam są 3 czy 4 rodzaje, ale najważniejszy z danymi jest to ten największy i ma nagłówek taki jak podałem wcześniej.

    Na pewno jak pamiętam, jeden blok danych niesie wartość tekstową z numerem seryjnymi czy numerem wersji oprogramowania.

    Przerzucić sobie tego hexa do stringa. Jak zobaczysz w komunikacji takie napisy to znaczy że wartość transmisji masz ok.

    A D+ i D- po stronie gdzie wpinasz w odbiornik RS485 masz ok? Polaryzacji nie pomyliłeś?

    Ten efekt wyłączenia jest ok. Jak falownik skończy pracę to idzie spać i wtedy komunakcja po RS485 też zanika. Port otwarty po stronie RPi mam nadal, ale nie lecą ramki. Jak się rano wszystko włączy to po prostu zaczynają biegać.

    Gdzieś może mam jeszcze zapisane widmo lub mogę Ci coś zlogowac do pliku, jak to u mnie wygląda co inwerter daje po RS485.
  • #7
    tomek_byd
    Level 13  
    miszko wrote:
    A D+ i D- po stronie gdzie wpinasz w odbiornik RS485 masz ok? Polaryzacji nie pomyliłeś?

    Do tej pory miałem tak:
    - biała żyła idzie z pinu 1 w falowniku na B w EW11.
    - pomarańczowa żyła idzie z pinu 2 w falowniku na A w EW11.
    Jest to niby zgodne z https://github.com/assembly12/Foxess-T-series-ESPHome-Home-Assistant/wiki/Hardware-setup
    Już zwątpiłem jak powinno być i podpiąłem na odwrót i teraz idą w kółko pakiety 7f df 6b ff fb 5f c5 ff
    Dokonałem też parę testów i obserwowałem czy dane idą na pewno z falownika i odpiąłem wtyczkę i odczyt zanikł. Podobnie przy odpinaniu linii A lub B na EW11, też przerywało odbieranie danych.
    Sprawdziłem też przy podpięciu pod piny 3 i 4 i dostaje dokładnie takie same pakiety.
    Żeby wyeliminować problemy z modułem EW11 musiał bym odnaleźć konwerter RS485 na USB. Niestety chyba gdzieś mi się zapodział i będę musiał kupić nowy, więc jakieś kolejne testy będę mógł zrobić dopiero za parę dni.

    EDIT:
    Przy tym pierwszym sposobie podłączenia zawsze idą pakiety 01 04 00 4a 00 02 50 1d.
    Przy tym drugim sposobie podłączenia nie zawsze idzie pakiet 7f df 6b ff fb 5f c5 ff. Poniżej zrzut tego co dostaję. # to po prostu zastąpione pakietów 01 04 00 4a 00 02 50 1d lub 7f df 6b ff fb 5f c5 ff żeby łatwiej wyłapać odmienne dane.
    
    Socket created
    Socket bind OK
    ##################################
    192.168.101.26 - 9999 - 2023-05-03 17:05:41.282 - ffffadfb5fc5ff
    ####################################################
    192.168.101.26 - 9999 - 2023-05-03 17:05:52.041 - 0c50#
    #
    192.168.101.26 - 9999 - 2023-05-03 17:05:52.447 - ffffbffb5fc5ff
    #
    192.168.101.26 - 9999 - 2023-05-03 17:05:52.852 - 7fdf6bffff5fdc
    #############################################################################################################################################################################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:06:37.917 - 80#
    ############################################################
    192.168.101.26 - 9999 - 2023-05-03 17:06:50.300 - 7fdf6fffff5fc5ff
    ##########################################################
    192.168.101.26 - 9999 - 2023-05-03 17:07:02.276 - 7fdf6bfffb5fc5
    ####################################################
    192.168.101.26 - 9999 - 2023-05-03 17:07:13.035 - 7fff6ffb5fc5ff
    #
    192.168.101.26 - 9999 - 2023-05-03 17:07:13.440 - 7fdf6bfffb5fdc
    #######################################################
    192.168.101.26 - 9999 - 2023-05-03 17:07:24.809 - 7fdf6bffff5fc5ff
    ##
    192.168.101.26 - 9999 - 2023-05-03 17:07:25.417 - 7fdf6bfffb5ff1
    #############################################################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:07:47.747 - 7fdf6bffff5dff
    #
    192.168.101.26 - 9999 - 2023-05-03 17:07:48.152 - 7fdf6bfffb5fc5
    ###################################################
    192.168.101.26 - 9999 - 2023-05-03 17:07:58.708 - f4f7ff6bfffb5fc5ff
    ##
    192.168.101.26 - 9999 - 2023-05-03 17:07:59.317 - 7fdf6bffffdf71
    #####
    192.168.101.26 - 9999 - 2023-05-03 17:08:00.535 - 7fdf6bfffb5fcdff
    #####################################################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:08:21.241 - 10#
    #############################################################
    192.168.101.26 - 9999 - 2023-05-03 17:08:33.826 - 7fdf6bfffbdfc5ff
    ##################################################
    192.168.101.26 - 9999 - 2023-05-03 17:08:44.178 - 80#
    #######################################################
    192.168.101.26 - 9999 - 2023-05-03 17:08:55.546 - 18#
    ##
    192.168.101.26 - 9999 - 2023-05-03 17:08:56.154 - e8f7ff6bfffb5fc5ff
    #######################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:09:10.770 - 7fff7bfb5fc5ff
    #########################################
    192.168.101.26 - 9999 - 2023-05-03 17:09:19.296 - 7fdf7fffbf55ff
    ##################################################
    192.168.101.26 - 9999 - 2023-05-03 17:09:29.648 - 18#
    ###
    192.168.101.26 - 9999 - 2023-05-03 17:09:30.460 - ffffadfb5fc5ff
    ###
    192.168.101.26 - 9999 - 2023-05-03 17:09:31.272 - 7fdf6bfffb5fc7ff
    ###############################################################
    192.168.101.26 - 9999 - 2023-05-03 17:09:44.264 - 7fdf7ffffb5fc5ff
    ##########################################
    192.168.101.26 - 9999 - 2023-05-03 17:09:52.993 - 3080#
    #
    192.168.101.26 - 9999 - 2023-05-03 17:09:53.399 - ffff6bfffb5fc5ff
    #################################################################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:10:16.540 - 7fdfbdfb5fc5ff
    #####################################################
    192.168.101.26 - 9999 - 2023-05-03 17:10:27.501 - 0c80f7ff6bfffb5fc5ff
    ######################################################
    192.168.101.26 - 9999 - 2023-05-03 17:10:38.666 - 80#
    ###
    192.168.101.26 - 9999 - 2023-05-03 17:10:39.478 - 7fdf6bfb5fc5ff
    #
    192.168.101.26 - 9999 - 2023-05-03 17:10:39.884 - 7fdf6bfffb5fcfff
    ######################################################################################################################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:11:13.784 - 7fdf6bffc5ff
    #########################################################
    192.168.101.26 - 9999 - 2023-05-03 17:11:25.557 - 7fdf6bfffb5fd5ff
    ###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
    192.168.101.26 - 9999 - 2023-05-03 17:13:54.147 - 7fdf7bfffb5fc5ff
    #########################
    


    EDIT:
    Sprawdziłem na konwerterach RS485 na USB oba porty, od licznika i od danych. Na obu idzie to samo. Podłączałem na kablu luźno wiszącym, choć miał parę metrów. W końcu odkopałem oscyloskop na USB i podłączyłem najpierw na jeden port, potem na oba na raz i widzę, że na obu idzie dokładnie to samo w tym samym czasie. Tak jak by te porty były połączone ze sobą. Nie wiem czy coś tu da się zrobić bez serwisu, bo to nie wygląda na poprawne działanie falownika.
    Odczyt danych z falownika FoxESS T5 przez RS485: komunikacja, pakiety danych, rejestry Odczyt danych z falownika FoxESS T5 przez RS485: komunikacja, pakiety danych, rejestry

    EDIT:
    Po dłuższym męczeniu producenta dostałem informację, że oba porty są fizycznie ze sobą połączone, więc to co dostawałem było normalne. Co do tych pakietów to odpytywanie licznika, którego nie miałem. O dziwo w ustawieniach dla licznika miałem wybraną opcję "niedostępny". Była jeszcze opcja "licznik" i opcja "comm" i dopiero przy ustawieniu na "comm" zaczęły iść te pakiety co trzeba. Teraz muszę to wszystko rozkodować.
  • #8
    tomek_byd
    Level 13  
    Rozwiązanie na końcu poprzedniego postu.