Panel Energia - wskazania produkcji PV

Czołem Grupo.
Ostatnio walczę z panelem Energia w HA i staram się go zrozumieć i okiełznać.
Może podpowiecie mi gdzie błądzę.

Dane/encje dot. produkcji PV jakie posiadam (po sporych bojach bo niestety z mojej instalacji trzeba było kombinować aby wyciągnąć dane) to m.in:

  • produkcja dzisiaj (aktualizowana co 15 min, zeruje się na koniec dnia),
  • produkcja w tym miesiącu (zasila ją dana “produkcja dzisiaj” jednorazowo na koniec dnia)
  • produkcja total (działa identycznie jak miesięczna - zasilana raz dziennie na koniec dnia).

Wszystkie encje powstały poprzez wyciągnięcie danych z brokera MQTT.
Na warsztat wziąłem produkcję dzienną. Za pomocą template oraz customize “dopracowałem” tą encję aby posiadała wszystkie niezbędne atrybuty do użycia w panelu Energii. W wyniku tego powstała nowa encja:

image

I wszystko ładnie zlicza i prezentuje:
image

I teraz tak. Zapiąłem wczoraj po raz pierwszy tą encję do panelu energii i w ciągu dnia prezentowała ładnie dane w podziale na godziny. Dzisiaj zobaczyłem że dzisiejszy dzień także ładnie prezentuje, ale już wczorajszy wskazuje ze znakiem “-” i wartość produkcji z wczoraj:

image

Nie bardzo kumam o co może chodzić.
Czy pracuję z nie tą encją? Czy coś namieszałem przy jej konfiguracji?, albo po prostu nie nadaje się ta encja do prawidłowych wskazań? A może jeszcze czegoś zabrakło (jakiś wyliczeń czy coś)?

Będę wdzięczny za wszelkie podpowiedzi/nakierowania.

Pozdr.

Też się zbieram do wykorzystania panelu energii i przez zaledwie miesiąc istnienia w stabilnej wersji last_reset jest już przestarzałą opcją jeśli dobrze kojarzę, niestety więcej nie podpowiem, bo jak dotąd się nie ogarnąłem, jakkolwiek wydaje mi się że “ujemna” produkcja na wykresie zużycia energii jest OK - sam nie produkuję, a jedynie pobieram i mam jak na razie wszystko “na plusie”.

To wygląda, jakby coś o północy się zwaliło i zapisało dane z ujemną wartością. I te dane wyglądają na całkowitą produkcję z wczoraj. U mnie tak to wygląda i na wykresie Solar production zawsze mam wartości większe od zera:

Wczoraj to była bieda, więc pokazuję dobry dzień z sierpnia :wink:

@szopen

w stabilnej wersji last_reset jest już przestarzałą opcją jeśli dobrze kojarzę

Wczoraj błądziłem już po tylu różnych źródłach, forach opracowaniach że straciłem rachubę. Możliwe że jest jak mówisz.

jakkolwiek wydaje mi się że “ujemna” produkcja na wykresie zużycia energii jest OK

zgadzam się z Tobą, ale mój screen to nie właśnie nie monitor zużycia, a tylko wykres z produkcji, więc zakładam że powinien wskazywać wartości jedynie >= 0.

@stemer

I te dane wyglądają na całkowitą produkcję z wczoraj.

Zgadza się, wczorajszy dzień zakończył z całą uzyskaną produkcją, ale na minusie.
Zobaczymy czy dzisiaj będzie tak samo (zakładam, że tak, że gdzieś jest problem z czymś).
Jak na razie w ciągu dnia pokazuje znowu ok.

Nie produkuje energii ale w moim przypadku miałem wartości ujemne gdy założyłem przekładnik prądowy odwrotnie jak powinien być (shellyem3) czyli dla systemu było to widoczne jako wysyłanie energii ( tak w skrócie )

No to co innego - sądziłem, że wykres produkcji i zużycia jest wspólny (ale w mojej instalacji tego nie stwierdzę).

Tu jest wskazanie bezposrednio z inwertera wiec nie wchodzi w gre odwrotna instalacja przekladnika itp. Dodatkowo wartość oryginalna jest stringiem i w Wh wiec po drodze jeszcze ją konwetruje na liczbę oraz przeliczam na kWh, takze na 100% (wg stanu mojej wiedzy) jest to liczba dodatnia.
Poza tym zwróć uwagę, ze wskazania godzinowe w ciagu dnia (z tej samej encji) są prawidlowo zliczane i wrzucane na wykres.
Coś nie tak dzieje sie chwilę po północy gdzie wartość ta się zeruje. Nie wiem tylko czy to błędna interpretacja panelu Energia czy ja czegoś nie dostrzegam.

Być może trzeba użyć wartości “total” (tego raczej się spodziewam bez sprawdzania aktualnej dokumentacji) jakkolwiek przez te około 2 miesiące, przez które wykorzystywałem opcje integracji energii zauważyłem, że HA zaczął liczyć zużycie energii inaczej gdzieś koło wydania 2021.09.0

Tylko wtedy ta encja aktualizowana jest raz dziennie, o północy. Niby pokaże co trzeba (prawdopodobnie), ale wiadomo, jak jest przewidziany pomiar niemal ciągły to tak chciałoby się go wykorzystać :slight_smile:

P.S. na koniec wczorajszego dnia znowu ta sama historia:
image

Historia encji wygląda tak, więc wg mnie prawidłowo:

witojcie. Aż sobie konto założyłem żeby odpisać.
Miałem podobny problem jak uzywałem encji z wartością jednodniową.
Po zmianie na wartość total, o czym z resztą pisze szopen, na wykresie dane są dodatnie.
Pozdr.

@gaza1
A u Ciebie encja total jest zasilana w dane w interwale w ciągu dnia, czy tylko raz, na koniec dnia?

Na pewno nie raz się jeszcze przyda :slight_smile:

@stemer
Jaką encję masz u siebie podpiętą pod produkcję PV? Dzienną czy jakiś total? Jaki masz na niej state_class?

Mam encję pokazującą bezpośrednią produkcję z PV. Integracja mi ją dostarcza.

sensor.solaredge_modbus_ac_energy_kwh

state_class: total_increasing
unit_of_measurement: kWh
friendly_name: Produkcja
icon: mdi:solar-power
device_class: energy

Faktem jest jednak to, że mogłem ją dodać dopiero, jak została odpowiednio “poprawiona” przez autora integracji (total_increasing itd.) - może w przypadku twojej integracji jeszcze nie było aktualizacji?

Witam,
Rozpocząłem zabawę z zakładką energia wczoraj i mam podobny problem z wartością ujemną koło północy. Wszystko w ciągu dnia ładnie liczy. Wartość mi wskakuje jako ujemna.
Jak to ogarnąć?

nie wiem czy jest sens to drążyć, mam to samo a dużo czasu poświęciłem na konfigurację tego, może tak to ma być

Zużycie energii ma być na 100% dodatnie, niestety panel energii powinien być przynajmniej parę miesięcy dostępny tylko w wersji beta, a opublikowano go w produkcyjnej (podobnie jak i wiele integracji dostarczających mu dane), w mojej testowej instalacji wygląda to tak (tak niskie wartości, bo pochodzą tylko z kilku eksperymentalnych sensorów):


a do produkcyjnych wdrożę może po nowym roku?

Na tym obrazku za to widać problemy z wyświetlaniem skali, gdy wartości są bardzo małe

PS Chyba najlepiej jak to powinno wyglądać pokazuje demo

Mnie udało sie w końcu ogarnąć temat, tylo ciągle brak czasu na opis. Postaram sie dziś popoludniu wrzucić. W międzyczasie wrzucić screena jak wyglądają atrybuty encji ktora zapinasz do energii.

Zmieniłem sensory z today na total i zaczęło pokazywać lepiej. Zobaczymy jak to jutro będzie wyglądać.

Jak pisałem wyżej, w moim konkretnym przypadku udało się pokonać wroga :slight_smile:
Zajęło mi to 5 dni przekopywania netu po forach oraz testowania różnych kombinacji zlepków informacji i wytycznych.
Nie twierdzę że rozwiązanie jest full poprawne względem np. założeń twórców oraz czy przetestowałem wszelkie możliwe kombinacje, ale załapało, działa to nie ruszam :slight_smile:

Tak na marginesie, chyba brakuje trochę takiego pełnego, jasnego, klarownego zebranego w jednym miejscu opisu całej funkcjonalności panelu Energia, założeń, wytycznych itp. (albo może ja mało rozumny jestem).

No więc u mnie zagrało to tak (powtórzę trochę opis z pierwszego posta, ale niech będzie pełna instrukcja, może komuś się przyda):
Koniecznie chciałem i użyłem opisanej w pierwszym poście encji “Produkcja dzisiaj” (zerowana codziennie). Na potrzeby przykładu nazwijmy ją “encja_zrodlowa”.
Na jej podstawie poprzez template utworzyłem nową encję “PV - produkcja”. W przykładzie - “encja_wynikowa”. Zmieniłem jej wartość ze stringa na liczbę, nadałem jednostkę miary kWh oraz dokonałem odpowiednich przeliczeń dla nowej jednostki miary (z Wh na kWh).

Kod gotowiec:

- platform: template
    sensors:
       encja_wynikowa:
         friendly_name_template: "jakas_nazwa"
         unique_id: jakies_id
         value_template: "{{ ((states('encja_zrodlowa') | float) /1000) | round(2) }}"
         unit_of_measurement: "kWh"

Dodatkowo w pliku customize.yaml nadałem encji atrybuty: device_class: energy oraz
state_class: total_increasing.
Ważne, aby najpierw dodać encję poprzez template i potem przerestartować HA żeby stworzyła się encja. Dopiero potem dodać wpisy w customize. Inaczej debuger yaml bedzie krzyczał.

I w sumie to tyle*. Teraz encja oprócz tego że będzie możliwa do dodania do panelu Energia to pomimo zerowania o północy HA nie będzie pokazywał bzdur.

Z moich testów wychodzi, że kluczowy jest atrybut state_class.
Dla wartości measurement za każdym razem gdy encja przybierze wartość “0” dzieje się tak jak w problemie opisanym wyżej w tym temacie.
Dla wartości total_increasing HA “z jakiś powodów” wie, że encja ta może być resetowana (?). To dla mnie jest kompletnie nie jasne i wg mnie nie wynika to z żadnych opisów. Doszedłem do tego na zasadzie prób i błędów i chyba to mnie najbardziej wkurzyło.

*) Jak dotarliście z czytaniem dotąd - gratuluje. Bo teraz zaczyna się jazda :slight_smile:

Otóż cały powyższy opis załatwia temat…ale połowicznie :sweat:

O ile state_class: total_increasing załatwia problem zerowania encji o północy to niestety nie załatwia problemu gdy encja dostanie wartość “0” z innych powodów/o innej porze doby (?).
Np. gdy enca_zrodlowa z jakiś powodów będzie niedostępna (np. u mnie gdy dodatek w HA do mikroinwertera nie wstał poprawnie) encja_wynikowa będzie miała wartość 0. Wystarczy że przegapimy ten moment i odczyt panelu Energia złapie to - mamy ponownie całą dotychczasową produkcję ze znakiem “minus”. Za ch…olerę nie wiem czemu tak, ale tak jest (sprawdzone na własnej wkurzonej skórze :slight_smile: ).

Remedum (może nie idealne, ale jednak) : opcja availability_template. Dzięki niej możemy określic, że “jeżeli encja_zrodlowa jest niedostępna to encja_wynikowa zwróci wartoś “unavailable” zamiast 0”
Efekt - w opisanym kilka linijek wyżej przykładzie, będziemy mieli przerwę w danych, a nie 0 i w efekcie produkcję na minusie.
Aby zastosować, dodajemy 3 linijki kodu. W pełnej formie kod będzie taki:

- platform: template
    sensors:
       encja_wynikowa:
         friendly_name_template: "jakas_nazwa"
         unique_id: jakies_id
         availability_template: >-
          {%- if not is_state("encja_zrodlowa", "unavailable") %}
            true
          {%- endif %}
         value_template: "{{ ((states('encja_zrodlowa') | float) /1000) | round(2) }}"
         unit_of_measurement: "kWh"

I teraz wreszcie ma to ręce i nogi i działa jak należy. Przynajmniej u mnie :slight_smile:
Teraz jeszcze po kilku dniach działania, myślę że warto dodać jeszcze do tego małą automatyzację żeby gdy encja_wynikowa ma stan “unavailable” dłużej niż np. 10 min żeby HA dał o tym powiadomienie adminowi, aby zminimalizować czas bez danych (ja przez to mam wyrwę w danych przez cały 1 dzień).

Przepraszam za tak koszmarnie długi wywód. Jak sobie przypomnę ile zajęło mi dotarcie do tych informacji, zlepienie ich w całość i przetestowanie…yyhhh.

Jeśli dobrnęliście z czytaniem aż tutaj - gratuluję i dziękuję :slight_smile:
Jeśli komukolwiek choć trochę to pomoże, będzie mi bardzo miło :slight_smile:

3 Likes

A nie masz encji, która pokazuje aktualną produkcję w danej chwili?

Mam, ale jak wszystkie inne odczyt jest aktualizowany co 15mim, wiec wyliczenia na tej podstawie w HA raczej nie będą prawidłowe (jeśli to miałeś na myśli).