Synchroniczny odczyt danych z home assistant

Witam,

Posiadam dwa falowniki fotowoltaiczne z których odczytuje aktualną moc ze słońca.
Dodatkowo mam zainstalowany licznik firmy shelly 3em(na głównej rozdzielnicy domu).
Wieczorem po zmroku odczyt zużycia mocy przez dom jest prawidłowy, stworzyłem ziemną : suma 3 faz shelly, sumującą trzy encje poboru mocy dla każej z faz(posiadam instalacje trójfazową)
W dzień natomiast podczas pracy instalacji fotowoltaicznej licznik shelly(utworzona zmienna: suma 3 faz shelly) pokazuje mi ujemne wskazanie mocy co jest normalne gdyż prąd płynie od mojego domu do sieci.
Wobec powyższego stworzyłem dodatkową zmienną celem odczytu realnego zużycia mocy przez dom w danym momencie(moc chwilowa).
Zmienna zużycie mocy = moc falownika 1 + moc falownika 2 + suma 3 faz shelly(w dzień suma 3 faz shelly jest ujemna, natomiast po zmroku wartości moc falownika 1 oraz moc falownika 2 przyjmują wartość zero).
W związku z chwilowymi zmianami natężenia słońca a co za tym idzie mocy z falowników oraz niesynchronicznym odczytem wszystkich zmiennych(brak odczytu wszystkich zmiennych w tej samej chwili) czasem zmienna: Zmienna zużycie mocy osiąga wartości ujemne co jest niemożliwe bo przecież dom zawsze coś pobiera.(występuje to rzadko ale drażni oko). Domyślam się że za powyższy stan rzeczy odpowiada niesynchroniczny odczyt wszystkich danych.
Chciałbym zrobić funkcję tego typu: jeśli wartość którejkolwiek zmiennej (moc falownika 1 lub moc falownika 2 lub suma 3 faz shelly)ulegnie zmianie, wówczas następuje synchroniczny odczyt wszystkich zmiennych oraz przypisanie nowej wartości zmiennej Zmienna zużycie mocy.

Czy ktoś z forumowiczów może podpowiedzieć jak się z tym uporać.

Pozdrawiam Tomasz

Ps. nie wklejam kodu bo to tylko nowa zmienna w zakładce sensors.yaml, będąca sumą wymienionych encji.
Mam nadzieję że w najprostszy możliwy sposób wyjaśniłem istotę problemu.

Niech mnie koledzy z forum poprawia, ale z tego co sie orientuje w HA nie ma czegos takiego jak odczyt synchroniczny, poniewaz dane do HA zawsze trafiaja z wielu asynchronicznych zrodel, wiec musialbys podejsc do tematu inaczej. Falowniki generuja energie za dnia wiec bys musial sobie napisac sensor ktory, po pierwsze sprawdza czy wartosc generowanej energii z dowolnego z dwoch falownikow jest wieksza niz zero, a jesli ten warunek jest spelniony to filtruje wynik uwzywajac fukcji max

{{ [ states('sensor.shelly3em02_channel_a_power')|float(0) + channel_b + channel_c + falownik_1 + falownik_2, 0.0 ] | max }}

wtedy w czasie produkcji pradu przez falowniki masz tylko nieujemne wartosci zuzycia ktore chcesz wyswietlac. Nie jest to idealne rozwiazanie ale zawsze krok w kierunku lepszego :slight_smile:

Kolego opensource4life, doprecyzuje.
Falowniki nie produkują energii ujemnej, tj. zmienne : moc falownik 1 oraz moc falownik 2 nie przyjmują wartości ujemnych a co najwyżej zero.
Poniżej przykład prawidłowego odczytu za dnia:
moc falownik 1 = 100 Watt
moc falownik 2 = 200 Watt
Odczyt z licznika na rozdzielnicy suma 3 faz shelly = - 50 W
Obliczona zmienna:
Zmienna zużycie mocy = moc falownik 1 + moc falownik 2 + suma 3 faz shelly, co daje
zmienna zużycie mocy = 100 + 200 + (-50) = 250W czyli w danej chwili dom pobiera na własny użytek 250 W mocy.
Czasem jednak odczyt jest ujemny bo np. odczyt z shelly = -50 W, ale nagle słońce zostało zakryte chmurami wobec czego moc falownik 1 = 10W, moc falownik 2 = 20 W , wobec czego zmienna zużycie mocy = 10 + 20 +(-50) = - 20W.

Jeśli odczyt zmiennych byłby przeprowadzony w kolejności (np. w odstępie 100ms ):

  1. odczyt mocy falownika 1
  2. odczyt mocy falownika 2
    I na samym końcu:
  3. odczyt : suma 3 faz shelly
    Wówczas wynik byłby prawdziwy i większy od zera.

Być może była by jeszcze opcja sprzętowa tj. dołożenie 2 kolejnych liczników shelly po jednej sztuce na falownik i wspólna konfiguracja(wydaje mi się że odczyty mogły by się synchronizować,) Ale to dodatkowe koszty (kilka stówek).

Pozdrawiam Tomasz