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

Jeśli powiesz co autor miała na myśli :wink:

Każdy znak w tym polu zweryfikuje ważność 64 adresów.
 Bit4 reprezentuje adres, gdzie najwyższy bit adresu w tym polu plus 1,
 0 oznacza nieprawidłowy; 1 oznacza ważne.

Nie mam takiego falownika aby to sprawdzić.

Miałem na myśli możliwość poprawy na “sucho” samego flow.

Mam rozumieć że zakup “klamotów” do odczytu RS też na niewiele się zda bo czy to logger czy RS to ETH na jedno wyjdzie

Tak być może - w końcu to ten sam modbus.
Pewne wartości można przefiltrować bo znany jest przedział możliwych wartości np. częstotliwość, moc lub produkcja… ale niektórych nie.

Ok, dzięki za pomoc. Będę próbował coś z tym zrobić na zasadzie filtrowania

chcesz mojego flowa?

Bardzo chętnie, ja obecnie testuję rozwiązanie SOLARMAN. Zrobiłem konfigurację dla ktl-x g3 i póki co działa bardzo fajnie, nie wiem tylko w którym miejscu dokonać zmiany by pobieranie danych z falownika było co 15s. Zmiana w pliku const.py nie powoduje częstszego odpytywania.

sofar_ktl-x-g3.yaml (22,4 KB)

const.py - należy dopisać wiersz z nazwą pliku konfiguracyjnego sofar

from datetime import timedelta

DOMAIN = 'solarman'

DEFAULT_PORT_INVERTER = 8899
DEFAULT_INVERTER_MB_SLAVEID = 1
DEFAULT_LOOKUP_FILE = 'deye_hybrid.yaml'
LOOKUP_FILES = [
    'deye_2mppt.yaml',
    'deye_4mppt.yaml',
    'deye_hybrid.yaml',
    'deye_sg04lp3.yaml',
    'deye_string.yaml',
    'kstar_hybrid.yaml',
    'sofar_g3hyd.yaml',
    'sofar_hyd3k-6k-es.yaml',
    'sofar_ktl-x-g3.yaml',
    'sofar_lsw3.yaml',
    'sofar_wifikit.yaml',
    'solis_1p8k-5g.yaml',
    'solis_3p-4g.yaml',
    'solis_hybrid.yaml',
    'solis_s6-gr1p.yaml',
    'zcs_azzurro-ktl-v3.yaml',
    'custom_parameters.yaml'
]

MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=15)

CONF_INVERTER_HOST = 'inverter_host'
CONF_INVERTER_PORT = 'inverter_port'
CONF_INVERTER_SERIAL = 'inverter_serial'
CONF_INVERTER_MB_SLAVEID = 'inverter_mb_slaveid'
CONF_LOOKUP_FILE = 'lookup_file'

SENSOR_PREFIX = 'Solarman'

Bo dane wysyłane z Datamenagera do chmury, nie są wysyłane tak często jak chciałbyś je odczytywać/aktualizować ? , więc w krótszym okresie np. (15s) dane są te same (pod warunkiem, że jest stała komunikacja z chmurą). Z loggera tylko czytasz (nie odpytujesz). Tylko odpytując lokalnie falownik jesteś w stanie zmieniać czas aktualizacji sensorów.
U mnie dane na stronie solarmann smart odświeżają się co 5 minut (czyli mój logger w takim interwale wysyła dane) a więc nie ma sensu go czytać częściej.

1 polubienie

Zgodzę się że na stronie jest co 5min, dodatek Solarman do HA odczytuje lokalnie co 30s natomiast robiąc to przez NR czytało z powodzeniem co 15s.

Lubię mieć dane “live” :wink:

Dlatego używam NR i komunikuję się bezpośrednio “po kablu” z falownikiem.

Czy RS485 WIFI będzie też ok dla Twojego gotowca?

Tak wersja wifi też zadziała, choć lepiej (stabilniej) po kablu. Nie wiem czy z Twoim falownikiem zadziała mój flow a raczej powinienem napisać nie zadziała → masz inne adresy rejestrów w swoim falowniku, np. Frequency Grid u mnie to 1156 a u Ciebie 0484.
PS. nie wiem czy sama zamiana adresów rejestrów we flow załatwi sprawę (zamieściłem w podlinkowanym wyżej poście dokumentację mojego Sofara więc możesz porównać obie dokumentacje i zobaczyć które adresy na jakie należałoby zamienić)


Należałoby zamienić moje adresy na Twoje w nodach funkcyjnych i nodzie switch (wskazane strzałką) i po skonfigurowaniu noda Modbus Flexible Read zobaczyć, choć expertem w tej sytuacji jest z pewnością @RobinI30

Skoro zostałem wywołany :wink: - 1156 (dec) = 0x4804 (hex), więc pasuje

1 polubienie

Witajcie,
Używam flow’a wesley’a z lipca '22. Działa, widzę na debugu prawidłowe wartości z mojego Sofara 11KTL-G3. Po przekopaniu się przez nową składnię w configuration.yaml w stanach w narzędziach deweloperskich mam w końcu 24 pozycje sensor.sofarsolarmqtt, niestety wszystkie maja stan unknown -czy tak jest prawidłowo?. We flow mam pod MQTT cały czas “connecting”. Używam mosquitto broker bez nazwy użytkownika i hasła (na tym chodzi Zigbee2MQTT bez problemów). Wybaczcie pytanie laika ale już nie wiem gdzie szukać.

A miały jakiś inny stan wcześniej? Jak falownik nie pracuje a zrobiłeś “uruchom ponownie HA” to stan będzie unknown.

Powinno być connected
Jeśli tylko skopiowałeś proces bez zmiany ustawień brocker, to teraz w HA masz dwa ustawienia: własny i skopiowany. W NR naciśnij trybik aby to sprawdzić.

dzięki za odpowiedź, wygląda to tak:
image
nie gwarantuje że czegoś nie usunąłem w ferworze walki

@MariuszAK : nie widziałem tam nic innego niż “unknown”, pomimo że dane z Sofara przychodziły prawidłowe (obserwując debug).

Te “obce” serwery powinieneś usunąć aby był tylko Twój (jeden). Ten serwer HA (bez wykrzykników) to zapewne Twój.


Sprawdź czy broker mqtt jeśli to Twój, jest poprawnie skonfigurowany → IP twojego serwera i zakładka security (hasło i użytkownik).

Dzięki za informacje. Kliknięcie w ten z wykrzyknikami powoduje podświetlenie noda ping we flow od wesley’a. Mój serwer mqtt nie ma hasła i użytkownika - założyć? Do tej pory tak to chodziło z zigbee2mqtt…

Jeśli twój serwer MQTT jest

  1. brokerem Mosquitto
  2. jest on w postaci Dodatku do HA (a nie osobnej instalacji)

to powinien akceptować wszystkich użytkowników HA - przeczytaj wbudowaną dokumentację w tym Dodatku.
W sumie przy takiej instalacji on nie pracuje “bez haseł” tylko akurat Z2M (również w postaci Dodatku) potrafi pracować z użyciem poświadczeń autowygenerowanych.

powinieneś go dla przyzwoitości usunąć (jako kopiujesz czyjś flow to naley “obce” konfiguracja usuwać i zastępować swoimi.

powinieneś utworzyć w HA swój binary_sensor (ping) i potem skonfigurować swój w NR zamiast tego, który jest w konfiguracji od autora flow.
Pokaż wiadomości z debug z NR i konfigurację sensorów w HA.