Witam,
postaram sie dorzucic na szybko moje 3 grosze, jako ze odczytywalem i odczytuje dane z falownika na rozne sposoby.
Mam SUN2000 4.6KTL L1, najprawdopodobniej ze smart donglem do Wifi (a moze wifi wbudowane ?).
Falownik wysylal od samego poczatku wszystkie dane do portalu Fusionsolar, laczac sie przez moja siec Wifi
Jednak sciaganie danych z portalu jest to dla mnie zbyt powolne (aktualizacja co 2-3 minuty czy cos), pozatym nie lubie za duzo chmur, wiec chcialem brac te dane bezposrednio (za pomoca pymodbus i wrzucac do homeassistanta).
Najpierw, laczylem sie normalnie po adresie IP (ktory falownik dostal z mojej sieci), na porcie 502.
To rozwiazanie ogolnie dzialalo i staralem sie utrzymywac ciagle polaczenie modbus, ale falownik czasami sie rozlaczal i pare minut mial przerwy.
Po zainstalowaniu baterii LUNA i smartmetera podlaczonego kablem modbus, to zupelnie przestalo dzialac. Tzn falownik dalej laczy sie z moja siecia wifi i wysyla dane do portalu Fusionsolar, ale port 502 jest zamkniety, i nie ma mozliwosci pobierania danych. Gdzies wyczytalem, ze to przez to, ze smartmeter "zuzywa" ten port modbusa, ktory wczesniej byl dostepny po IP (nie jestem pewnien czy to ma sens, ale polaczenia nie ma, a nic sie nie zmienilo). Rownie prawdopodobne jest ze instalator zaktualizowal firmware i port modbus zostal zamkniety.
Wyczytalem jednak, ze przez polaczenie z wifi falownika (SUN2000-HVxxxxxx i haslo Changeme) wciaz mozna wyciagnac te dane.
Tak tez zrobilem, ale na poczatku nie chcialo to dzialac... dopoki nie okazalo sie ze oprocz tego ze jest oczywiscie inne IP (to ktore falownik daje sobie sam, bo teraz dziala jako access point) (IP falownika teraz to 192.168.200.1), ale rowniez port dostepu jest inny, bo teraz jest to 6607.
Tak wiec laczac sie z WIFI falownika oddzielnym polaczeniem wifi, i laczenie pymodbus na adres 192.168.200.1 na port 6607 dziala !!!
Problem nr 52: Teraz, tak jak wczesniej, staralem sie utrzymywac polaczenie wifi i polaczenie modbus caly czas... niestety utrzymujac polaczenie modbus, blokuje to falownik przed wysylaniem danych do fusionsolar (przez co sa tam nieaktualne i pojawiaja sie warningi).
Podobnie w momencie jak pymodbus jest polaczony, to aplikacja na telefonie tez sie nie polaczy.
Rozwiazanie: Wifi jest stale polaczone, ale polaczenie modbus jest nawiazywane tylko jak jest potrzebne, co 30 sekund i potem od razu zrywane (zczytywanie danych to nie cale 5 sekund). W ten sposob w portalu fusion solar wszystko sie rowniez pieknie pojawia, a ja mam swiezutkie dane co 30-40 sekund.
ip_inverter="192.168.200.1"
portnr=6607
client = ModbusClient(ip_inverter, port=portnr, unit_id=0)
client.connect()
time.sleep(1)
Wazne u mnie jest unit_id=0, oraz jedna sekunda sleep po polaczeniu, bo jak tego nie ma, to sa bardzo czesto problemy z odczytem registrow.
Jak wszystko jakos ogarne, i ktos jest zainteresowany, to wrzuce moj skrypt na github, bo mam w nim od razu autodiscovery do homeassistanta i wysylanie mqtt.
EDIT 1: Nie mam w ogole dostepu do konta instalatora... Tak wiec nie moge za duzo grzebac.
EDIT 2: Alternatywa to Modbus-ESP32 adapter na kablu, przez co wszystkie przygody z firmwareami, wifi itp odpadaja.
Moze nawet dodatkowo mozna przez kablowy modbus zapisywac jakies rejestry w falowniku (czego przez wifi raczej sie nie da).