Sofar Solar inwerter - odczyt danych bezpośrednio przez fabryczny DataLogger

Witam wszystkich.
To jest mój pierwszy temat i chciałem się podzielić moim “dziełem”.
Inwerter Sofar komunikuje się poprzez datalogger bezpośrednio chmurą solarmanpv.com.
Dotychczas odczyt możliwy był na kilka sposobów.
Zawsze wymagało to szczególny zabiegów. Ja używałem do tego przejściówki RS485 i modbus.
Fabryczne loggery SLW-3 i SLE-3 z inwerterem komunikują się też poprzez modbus.
Zagadką było jak strorzyć ramkę TCP aby zapytać o to samo lokalnie.
Rozgryzienie samej ramki nie jest moją zasługą - informacje wziąłem z neta i “ubrałem” to w Node-Red.


SofarLanMqtt.json (12,9 KB)
Flow trorzy dwa subflows:
“Sofar inwerter” - do komunikacji z inwerterem.
W konfiguracji należy podać IP:Loggera, jego S/N oraz określić zakres rejestrów, który nas interesuje (rejestry zgodne z modbus Sofara).
Na wyjściu otrzymujemy bufor z danymi z określonego wcześniej zakresu.!
Dodatkowo zrobiłem parser do MQTT : SofarToMQTT.
Jednak nie jest tak uniwersalny i stworzyłem go pod własne potrzeby.!
Należy wpisać główny temat MQTT i zaznaczyć “All”.
“Ptaszki” poniżej MIAŁY służyć do wyboru konkretnych rejestrów do parsowania, za dużo było z tym roboty i dla własnych potrzeb mi się odechciało :slight_smile:
Funkcja wyboru częściowo działa, ale jest nie skończona.
Warunkiem poprawnego działania jest odczyt od rej.nr. 0, minimum 30 pierwszych rejestrów.
Zapraszam do testów i dalszego rozwoju.
Interesuje mnie czy to działa ze wszystkimi S/N i firmware.

Jak coś w poście “na paprałem” to przepraszam - nowy jestem :slight_smile:

PS… miały być obrazki, ale jako “pierwszy” mogę dodać tylko jeden

zobacz Monitoring farmy solarnej SofarSolar - #4 przez McKenzi
bez inwestycji:)
Tylko Local LAN, oraz Ginlond
A serwisów do których wysyła SOFAR jest duuuużo;

  1. http://myevolvecloud.com/
  2. https://m.ginlong.com/
  3. home.solarman.cn
    Pozdrawiam

Moje rozwiązanie nie potrzebuje chmury. Działa bezpośrednio z falownika

przy konfiguracji sensor.scrape również nie potrzebna chmura,
masz dane z ip lokalnego, częstotliwość pobierania Ty decydujesz. Bez kosztów,
Ja zrobiłem to tak jak umiałem :),
PS możesz przesłać foto tego modułu RS485 , i gdzie zakupiłeś :slight_smile:
Dzięki

Jeden to EW11-Elfin kupiony w Chinach za kilkadziesiąt złotych, oraz EDW100 Westermo i Moxa NPotr 5230 … jakieś “zdobyczne” z demontażu.
Co do proponowanej przez kol. metody to zrozumiałem, że pełny dostęp do rejestrów możliwy jest przez serwer m.ginlong.com (czyli jednak nie lokalnie) oraz lokalnie poprzez scraping strony statusowej w okrojonej ilości informacji.
Moje rozwiązanie daje pełny lokalny dostęp do parametrów.
Sprawdzone zostało to tylko na dwóch typach Sofara (właściwie to dataloggera), stąd moja ciekawość jak wypadną testy na innych.

Cześć @RobinI30.
Chciałeś testy, to zrobiłem ;-).
Co może być przyczyną takich skoków wartości?
image
Niekiedy ma piki ponad 1000 razy, to samo z wartością energii.
image

Też to zauważyłem. Problem zaczął się gdy spadła produkcja.
U mnie pojawiał się raz w czasie gdy był w stanie “Wait”. Ciekawostką jest, że u Ciebie jest tego więcej.
Na razie zmieniłem, żeby aktualizować tylko w stanie normal i jest dobrze.
Z tego co pokazałeś muszę jednak sprawdzać sumę kontrolną otrzymanych danych.
Przyznam, że to pominąłem.
Przez RS485 nigdy takich błędów nie było, więc podejrzewam, że to uroda SLW a nie inwertera.
Jeśli będzie liczył CRC na podstawie niewłaściwych danych to będzie to nie do wykrycia - “lipa”.

@RobinI30
Można, by jeszcze dodać zabezpieczenie w postaci progu maksymalnej wartości.
Np. jak falownik 10kW to produkcja nie większa niż 12kW jak tak to nie przekazuj wiadomości lub wyślij błąd. Można by dać dodatkowe wejście w KTL jako moc falownika i dodawać do tego 20% rezerwy.
Masz u siebie pełną tablicę adresów RS485? Chyba podłącze bezpośrednio sofara pod HA poprzez RS485.

Mam, jak znajdę to podeśle. Jak masz taką możliwość podłączenia to pewnie.
U mnie było za daleko więc wymagało konwertera, jest to dodatkowe urządzenie pobierające prąd, stąd pomysł aby zrobić to na minimalnej infrastrukturze. Poczekaj chwilę to wprowadzę poprawki i byś to przetestował.
SOFARSOLAR ModBus-RTU Communication Protocol (1) (1).zip (59,1 KB)

1 Like

Zobacz jeszcze do wartości spoczynkowej mocy, nie wiem dlaczego, ale pokazuje wartość 2080W jak nie pracuje falownik.
image

Doraźnie przed Mqtt out dodaj
[{"id":"91900adc50f0a0e2","type":"function","z":"c0f67a1f.047d88","name":"only Normal","func":"if (msg.topic == \"Sofar/Status\" || msg.topic == \"Sofar/status\"){\n context.set(\"Status\",msg.payload);\n return msg;\n }\n else{\n if (context.get(\"Status\")==\"2\"){\n return msg; \n }\n \n }\nreturn null;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":160,"wires":[["56d38d7a.a9fe54"]]}]

Nie mogę dokończyć bo się za szybko robi ciemno. U mnie to załatwiło sprawę, ale to jeszcze nie koniec

Dodałem, zobaczymy jutro, bo dziś już nie ma komunikacji z falownikiem

Dodałem kontrolę długości ramki i sprawdzam CRC całej otrzymanej ramki.
Nie ma jeszcze CRC podramki modbus, zobaczymy czy będzie poprawa.
Jak to nie pomoże… to nie mam pomysłu :frowning:
Przed importem lepiej usunąć poprzedni.
SofarLanMqtt_v1.2.json (15,5 KB)
W “Sun” ustawić swoją geopozycję.

@RobinI30
Dziś było bez pików, jedyne co zostało to dziwna wartość TotalEnergy, która na koniec zmniejszyła się o 1 …
image
Możesz też zobaczyć do V_Bus
image
Dziś nie mogę bezpośrednio na falowniku sprawdzić, bo już się wyłączył…
A w aplikacji jet zaokrąglenie …
image
Energia wyprodukowana dziś też się nie zgadza o 0,01kWh za mało

Nie wiem, czy za wcześnie nod SUN się nie wyłącza …
Dziś ustawiłem offsety po 60 minut zobaczymy jutro.

Tym zaokrąglaniem to się nie przejmuj, taka uroda operacji na float. Zmienisz ilość po przecinku to uzyskasz większą precyzję.
Sun jest ustawiony na cywilny wschód/zachód co daje już offset. Na brzegowych porach falownik już nie pracuje. Pod warunkiem, że masz ustawione właściwe współrzędne geo.
Sprawdź czy te wartości pojawiają się w okolicy cywilnego zachodu dla Twojej lokalizacji.
U mnie jest czyściutko więc są zerowe szanse abym znalazł przyczynę.

To zaokrąglenie jest w aplikacji producenta, więc nic w niej nie zmienię, zobaczymy dziś na koniec dnia.

6 postów zostało podzielonych na nowy temat: Tani serwer portów szeregowych lub konwerter na USB (RS-232/422/485)

Koledzy ten temat jest o tym, jak nie używać konwerterów :wink: :pray:

1 Like

dziala super - dzieki

Po trzech dniach zero problemow / pikow itp - dziala stabilnie, co srednio 30 sekund pobiera dane no i robi to lokalnie. Dzieki