Zliczanie energii, licznik MEW01 - błędne zliczanie

Witam! Potrzebuje pomocy bo poległem na prostej zapewne rzeczy. Mam licznik energii MEW01 gdzie miedzy innymi mam moc pobrana (ale dla kazdej fazy osobno) wiec trzasnąłem sume wszystkich trzech faz jako:

template:
- sensor:
      - name: mew_energia_oddana_do_sieci
        state_class: total
        device_class: energy
        unique_id: mew_energia_oddana_do_sieci
        icon: mdi:home-lightning-bolte
        state: "{{ (states('sensor.electricity_meter_total_reverse_active_energy_phase_1')|float(2) + states('sensor.electricity_meter_total_reverse_active_energy_phase_2')|float(2) + states('sensor.electricity_meter_total_reverse_active_energy_phase_3')| float(2)) | round(2) }}"
        unit_of_measurement: "kWh"
#################################  zsumowanie energii I II i III fazy dla oddania  ######################################
      - name: mew_energia_pobrana_z_sieci
        state_class: total
        device_class: energy
        unique_id: mew_energia_pobrana_z_sieci
        icon: mdi:home-lightning-bolt
        state: "{{ (states('sensor.electricity_meter_total_forward_active_energy_phase_1')|float(2) + states('sensor.electricity_meter_total_forward_active_energy_phase_2')|float(2) + states('sensor.electricity_meter_total_forward_active_energy_phase_3')| float(2)) | round(2) }}"
        unit_of_measurement: "kWh"

Wszystko pięknie ładnie na pierwszy rzut oka. Następnie trzasnąłem podział na dzienne, tygodniowe, miesięczne i roczne:

#######################   LICZNIK  MEW01  pobranie z sieci  d, t, m, r ############
# dobowe #
  mew_pobranie_z_sieci_dzien:
    source: sensor.mew_energia_pobrana_z_sieci_2
    unique_id: mew_pobranie_z_sieci_dzien
    cycle: daily
    name: Pobranie z sieci Dobowe
# tygodniowe #
  mew_pobranie_z_sieci_tydzien:
    source: sensor.mew_energia_pobrana_z_sieci_2
    unique_id: mew_pobranie_z_sieci_tydzien
    cycle: weekly
    name: Pobranie z sieci Tygodniowe
  # miesięczne #
  mew_pobranie_z_sieci_miesiac:
    source: sensor.mew_energia_pobrana_z_sieci_2
    unique_id: mew_pobranie_z_sieci_miesiac
    cycle: monthly
    name: Pobranie z sieci Miesieczne
  # roczne #
  mew_pobranie_z_sieci_rok:
    source: sensor.mew_energia_pobrana_z_sieci_2
    unique_id: mew_pobranie_z_sieci_rok
    cycle: yearly   
    name: Pobranie z sieci Roczne


###########################   LICZNIK  MEW01  oddanie do sieci  d, t, m, r ############
# dobowe #
  mew_oddanie_do_sieci_dzien:
    source: sensor.mew_energia_oddana_do_sieci_2
    unique_id: mew_oddanie_do_sieci_dzien
    cycle: daily
    name: Oddanie do sieci Dobowe
# tygodniowe #
  mew_oddanie_do_sieci_tydzien:
    source: sensor.mew_energia_oddana_do_sieci_2
    unique_id: mew_oddanie_do_sieci_tydzien
    cycle: weekly
    name: Oddanie do sieci Tygodniowe
# miesieczne #
  mew_oddanie_do_sieci_miesiac:
    source: sensor.mew_energia_oddana_do_sieci_2
    unique_id: mew_oddanie_do_sieci_miesiac
    cycle: monthly
    name: Oddanie do sieci Miesieczne
# roczne #
  mew_oddanie_do_sieci_rok:
    source: sensor.mew_energia_oddana_do_sieci_2
    unique_id: mew_oddanie_do_sieci_rok
    cycle: yearly
    name: Oddanie do sieci Roczne

no i na pierwszy rzut oka tez pięknie ładnie…
ALE! w związku z tym, że nie miałem wcześniej nic wspólnego z MEW01 byłem przekonany że:

sensor.electricity_meter_total_reverse_active_energy_phase_1 …2 i …3 oraz sensor.electricity_meter_total_forward_active_energy_phase_1 …2 i …3

resetują się w cyklu dobowym… a naliczanie pobrania i oddania zaczęły straaaaasznie narastać dodając każdy kolejny odczyt do poprzedniego… Gdzie popełniłem błąd?? przeszukałem forum i inne zakamarki i nie potrafię tego ogarnąć.
Dodam, że w taki sposób mam zliczanie z PV z produkcji i kilku innych urządzeń. Czy błąd popełniłem w sumowaniu faz?

podpowiedzcie! z góy dzieki!

W MEW 01 powinieneś mieć sensor
sensor.electricity_meter_total_forward_active_energy_balanced
oraz
sensor.electricity_meter_total_reverse_active_energy_balanced
te dwa sensory są sumą wysłanej i pobranej energii
Na tych instalacjach gdzie używałem MEW-01 działa to ok
Dla utilitymeter mam tak

##################################################
##    Wysłana energia MEW-01                                              ##
##################################################

meter_ensrgia_wyslana_kwadrans:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: quarter-hourly
meter_ensrgia_wyslana_godzina:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: hourly
meter_ensrgia_wyslana_dzien:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: daily
meter_ensrgia_wyslana_tydzien:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: weekly
meter_ensrgia_wyslana_miesiac:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: monthly
meter_ensrgia_wyslana_dwumiesieczny:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: bimonthly
meter_ensrgia_wyslana_kwartal:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: quarterly
meter_ensrgia_wyslana_rok:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced
  cycle: yearly
meter_ensrgia_wyslana_produkcja_narastajaco:
  source: sensor.electricity_meter_total_reverse_active_energy_balanced

U mnie to działa, sensor energy_balanced bilansuje energię między fazową
Spróbuj zmienić state_clas na state_class: total_increasing
Poza tym jak porównasz sumę 3 faz a obliczony przez suplę to zobaczysz różnicę wynikającą z bilansowania międzyfazowego.

template:
- sensor:
      - name: mew_energia_oddana_do_sieci
        state_class: total_increasing
        device_class: energy
        unique_id: mew_energia_oddana_do_sieci
        icon: mdi:home-lightning-bolte
        value_template: >-
        {% set faza1 = states('sensor.electricity_meter_total_reverse_active_energy_phase_1') | float %}       
        {% set faza2 = states('sensor.electricity_meter_total_reverse_active_energy_phase_2') | float %}
        {% set faza3 = states('sensor.electricity_meter_total_reverse_active_energy_phase_3') | float %}
        {{ (faza1+faza2+faza3)| round(3) }}




Tylko niemożliwe zebym miał dobowe sensor.electricity_meter_total_forward_active_energy_balanced na poziomie 0,60 kWh… chyba że się myle…?
Jeśli chodzi o sensor.electricity_meter_total_reverse_active_energy_balanced wynik jest prawidłowy moim zdaniem…

@Dariusz_Barczyński na dodatek u mnie sensor.electricity_meter_total_reverse_active_energy_balanced oraz forward mają reset dobowy…

W takim układzie spróbuj zmienić w sensorze sumującym na
’ state_clas: measurement ’
ja mam takie sensory

type: entities
entities:

  - entity: sensor.electricity_meter_frequency_phase_1
  - entity: sensor.electricity_meter_frequency_phase_2
  - entity: sensor.electricity_meter_frequency_phase_3
  - entity: sensor.electricity_meter_power_active_phase_1
  - entity: sensor.electricity_meter_power_active_phase_2
  - entity: sensor.electricity_meter_power_active_phase_3
  - entity: sensor.electricity_meter_power_apparent_phase_1
  - entity: sensor.electricity_meter_power_apparent_phase_2
  - entity: sensor.electricity_meter_power_apparent_phase_3
  - entity: sensor.electricity_meter_power_reactive_phase_2
  - entity: sensor.electricity_meter_power_reactive_phase_3
  - entity: sensor.electricity_meter_total_cost_balanced
  - entity: sensor.electricity_meter_total_cost
  - entity: sensor.electricity_meter_total_forward_active_energy_balanced
  - entity: sensor.electricity_meter_total_forward_active_energy_phase_1
  - entity: sensor.electricity_meter_total_forward_active_energy_phase_2
  - entity: sensor.electricity_meter_total_forward_active_energy_phase_3
  - entity: sensor.electricity_meter_total_forward_active_energy
  - entity: sensor.electricity_meter_total_forward_reactive_energy_phase_1
  - entity: sensor.electricity_meter_total_forward_reactive_energy_phase_2
  - entity: sensor.electricity_meter_total_reverse_active_energy_balanced
  - entity: sensor.electricity_meter_total_reverse_active_energy_phase_1
  - entity: sensor.electricity_meter_total_reverse_active_energy_phase_2
  - entity: sensor.electricity_meter_total_reverse_active_energy_phase_3
  - entity: sensor.electricity_meter_total_reverse_active_energy
  - entity: sensor.electricity_meter_total_reverse_reactive_energy_phase_1
  - entity: sensor.electricity_meter_voltage_phase_1
  - entity: sensor.electricity_meter_voltage_phase_2
  - entity: sensor.electricity_meter_voltage_phase_3

Totale się nie resetują, czy korzystasz z brige.conf czy bespośrednio wysyła MEW-01 do Twojego MQTT ?

Zmieniłem. Jutro zobacze efekt… a u Ciebie sensory: sensor.electricity_meter_total_forward_active_energy_balanced
oraz
sensor.electricity_meter_total_reverse_active_energy_balanced
są daily?

NIE total od początku.

Skoro masz SuplaCloud i tam też restartuje się licznik co dobę ???

to nie wiem czemu moje się o północy zresetowały… :expressionless:
kurcze prosty temat a mnie położył :confused:

@Dariusz_Barczyński Bez pominięcia serwera…
A masz może pomysł na bilansowanie godzinowe?

Poniżej masz przykłady, tak napisane z palca.
Musisz je sobie przerobić. Ja używan NOD-Reda do takich wyliczeń.
możesz zrobić sensory meter z cyklem godzinnym n.p.

meter_energia_wyslana_godzina:
  source: sensor.shelly_energy_export
  cycle: hourly
meter_energia_pobrana_godzina:
  source: sensor.shelly_energy_import
  cycle: hourly

a później

template:
- sensor:
      - name: bilans_energetyczny_godzinny
        state_clas: measurement
        device_class: energy
        unit_of_measurement: "kWh"
        unique_id: bilans_energetyczny_godzinny
        value_template: >-
        {% set import = states('sensor.meter_wysyl_faza1_godzina') | float %}       
        {% set export = states('sensor.meter_pob_faza1_godzina') | float %}   
        {{ (import-(export* 0.80))| round(3) }}

Ja jestem prosumentem
Dla net-bilingu to już trochę gorzej bo trzeba by znać cenę kWh w danej godzinie

1 polubienie

tez jestem prosumentem :wink: dzieki za info!

1 polubienie

Jeśli używasz Supli i pobierasz dane tych sensorów z Cloud to oba są state_class: total_increasing co oznacza, że nie resetują się. (podobnie jak sensor.electricity_meter_total_forward_active_energy,sensor.electricity_meter_total_reverse_active_energy). Problem z sensorami balanced polega na tym, że Supla bilansuje je co 10 minut (i jest to bilans ARYTMETYCZNY a nie WEKTOROWY) a np. PGE co 15 minut . Używając sensorów balanced do swoich obliczeń pobranej i oddanej będą się wskazania liczników rozjeżdżać z czasem coraz bardziej. (dla porównania bez produkcji energii z fotowoltaiki, wskazania z mew niezależnie czy użyłeś balanced czy nie, u mnie pokrywały się z licznikiem PGE dokładnie, na przestrzeni ponad 2 lat korekta na liczniku supli była po przecinku kWh).
Sam nad tym teraz dumam jak to ogarnąć wię c z ciekawości czekm na Twoje efekty. Support Supli póki co sugeruje użycie sensor.electricity_meter_total_forward_active_energy zamiast sensor.electricity_meter_total_forward_active_energy_balanced

Mogłbyś podesłać flow ?

w integracji Taurona Piotra Machowskiego było zrobione tak, że bilansowanie było godzinowe i zgadzało się z licznikowymi odczytami wszystko… stworzyłem sobie szimel w excelu i porównywałem z odczytami z eLicznika i róznice powstawały rzędu maksymalnie 0,01kWh i to ze względu na zaokrąglanie także spróbuje jak znajde chwile szarpnąć. Jeśli piszesz, że bilansuje co 10 minut to trzeba olać i zrobić bilansowanie GODZINOWE samemu tak jak rozlicza to np u mnie TAURON lub takie jakie Tobie pasuje… kolejność znam i mam policzone “z palca” i z excela i pokrywa się z eLicznikiem z taurona.

Widzę to tak:

  1. Zrobić godzinowe zliczanie oddanie i pobranie na podstawie reverse energii I II i III fazy zsumowanej i dla forward tak samo. (bez zbilansowania tylko samo “suche” pobranie i oddanie
  2. godzinowa wartość oddana pomnożona x(-1) i dodana do niej godzinowa wartość pobrana da nam wartość zbilansowania godzinowego albo ujemną którą można odebrać lub dodatnią czyli, że więcej zużyliśmy niż wyprodukowaliśmy
  3. otrzymane wartości dla każdej godziny rozdzielamy na DODATNIE i UJEMNE.
  4. Dodatnie sumujemy i otrzymujemy wartość POBRANE
  5. Ujemne sumujemy i otrzymujemy wartość ODDANE
  6. Wartość ODDANE mnożymy x0,8 aby otrzymać 80% które możemy/chcemy odebrać z sieci i określam mianem MAGAZYN
  7. od wartości MAGAZYN odejmuje wartość POBRANE i otrzymuje wartość energii POZOSTAŁEJ DO POBRANIA (zmagazynowanej)

Wiem jak to ma wyglądać ale nie wiem narazie jak to stworzyć, żeby miało ręce i nogi. Dopiero zrezygnowałem z integracji Piotra bo Tauron cały czas cos grzebał i od 2 dni mam zainstalowany juz MEW-01 cp daje mi dane które samemu jakoś sobie obrobie…

Gdybyś miał pomysł to podziel się :wink: może wspólnie się uda cos zmłodzić (chociaż ja jako laik na niewiele się raczje przydam :wink:

(Gdybyś chciał to mam swojego autorstwa wzory w excel)

1 polubienie

Udało się Tobie coś skleić co jest w miarę porównywalne z rzeczywistością ?