Help! Liczenie zużycia prądu z current_consumption - Walka

Ok. Muszę prosić o pomoc.
Przeszukałem w ostatnich 2 tygodniach naprawdę sporą ilość form, wątków, tematów, testowałem różne ustawienia i…kicha.

Posiadam gniazdko GoSund, któe mam podpięte pod Tuya.
Tuya w wersji 2 mam podpięte pod Home Assistant.

W urządzeniach mam 3 encje:
1 - mA
2 - Wat
3 - Volt
4 - On/Off

Próbuję wykorzystać 2 encję aby zliczyć zużycie prądu na tym gniazdku.
W aplikacji jakoś to działa i zlicza dobrze ale w HA nie udaje mi się.

I tak próbowałem w oparciu o fora dodać np.:

sensor:

  • platform: statistics
    name: ‘Zm_stat_40’
    entity_id: sensor.test_zm_wat40
    sampling_size: 12
    precision: 5
sensors:
  test_zm_wat40:
    friendly_name: 'Zm_Aktualne zużycie prądu_1'
    value_template: "{{ ((states('sensor.gniazdko_zmywarka_2') | float / 10000 ) | round(6) )  }}"
    unit_of_measurement:  'kWh'
    device_class: energy 

Czyli mam encje, która daje informację o zużyciu prądu w watach coś na zasadzie (jeśli pominę tuya i wezmę przez localtuya):

value_template: "{{ ((state_attr(‘switch.lt_g_zmywarka’, ‘current_consumption’)

dzielę przez 10000 bo jest tam przesunięcie o jedno 0 więc zamiast 1 tys mam 10 tys.

Daje to wartość chwilowego zużycia prądu w kWh np.: 0,020
Następnie to leci do statystyki.

Tam mam:
sampling_size: 12
gdyż (jeśli dobrze rozumiem) wartośc 60 dajemy jeśli odczyt jest jeden na sekunde. U mnie jest to co ok 5s stąd wartość 12 (poprawcie mnie jeśli się mylę).

I teraz jeśli włączę suszarkę, która pobiera 1840 w to w ciągu 1 minuty zużycie prądu powinno być:
0,0306 kWh

I teraz jeśli z:

  • platform: statistics
    name: ‘Zm_stat_40’

zrobię encję która wyciąga wartość mean, a w drugiej encji total:

  test_zm_zuz40:
    friendly_name: 'Zm_zuz_total_4'
    value_template: "{{ (state_attr('sensor.Zm_stat_40', 'mean') | round(5) ) }}"
    unit_of_measurement:  'kWh'
    device_class: energy
  test_zm_zuz_t40:
    friendly_name: 'Zm_zuz_total_t_4'
    value_template: "{{ (state_attr('sensor.Zm_stat_40', 'total') | round(5) ) }}"
    unit_of_measurement:  'kWh'
    device_class: energy

To obojętnie jakbym to potem nie podzielił np.: wartość z encji: Zm_zuz_total_t_4 / (1000*60 (lub 12))
czy z encji pobierającej dane z mean to w żaden sposób nie wychodzi mi wartość zużycia prądu jak w aplikacji tuya.

Próbowałem też zrobić w customize.yaml

sensor.test_kwh40:
friendly_name: Zm_energy_40
state_class: total_increasing
unit_of_measurement: ‘kWh’
device_class: energy
last_reset: ‘1970-01-01T00:00:00+00:00’

zaś w configuration.yaml jest tak:

  test_kwh40:
    friendly_name: 'Zm_kwh_5'
    value_template: "{{ (state_attr('sensor.Zm_stat_40', 'total') | round(5) ) }}"
    unit_of_measurement:  'kWh'
    device_class: energy

To mam tak samo.

Dodatkowo chciałem do podpiąć pod zakładkę Energy ale obojętnie którą encje, sensor, licznik nie podepnę to wartości obojętnie jak pomnożę, podzielę nie dają faktycznego zużycia.

Co robię źle? Pomocy…

Pomoce naukowe:

Z tego co kojarzę to Tasmota to ogarnia programowo w urządzeniu.
Będę wiedział w najbliższym czasie, bo po zakupie zamierzam takie gniazdko przeprogramować.

Całką Riemanna można to ogarnąć z urządzeń nie udostępniających odpowiednich parametrów.

Porównywałeś może wskazania? Właśnie sobie stworzyłem do porównania :wink:

Nie, to jest czysta matematyka i nie wymaga porównań (każde urządzenie liczy właśnie w ten sposób, co najwyżej używając krótszych przedziałów), np. taka integracja w całości na tym bazuje i liczy nie mniej wiarygodnie od pomiaru smart-plugiem

Tak Tasmota to ogarnia i tworzy odpowiednie encje w HA. Ale przed użyciem musi być skalibrowana, bo każde gniazdko (każda szt.) po wygraniu Tasmoty ma wartości z du…
Wątki o wgrywaniu i kalibracji są na forum.
Z doświadczenia - prawie cały dom i automatyka u mnie na nich bazuje.

To: Integration - Riemann sum integral

zupełnie rozwiązało temat.
Bez przerabiania gniazdek na inny soft.

Wynik z różnych sposobów liczenia:

Panowie jestem słaby z programowania i nie bardzo ogarniam temat, od kolegi z grupy dostałem gotowca do liczenia innej encji ( fotowoltaiki) i działa rewelacyjnie. Na zasadzie analogi chciałem policzyć zużycie z gniazda Tuya WIFI , zrobiłem czujnik który działa i pokazuje co trzeba (widzę ze encje jest z robiona jak w tym wątku o którym wspominacie: Integration - Riemann sum integral - Home Assistant) i jak tu piszecie u Was śmiga u mnie też ale foto a gniazdo nic nie liczy,
Do rzeczy, z racji tego że podzielone mam na pliki teplate, sensor i utylity meter, kod wygląda tak :

w pliku teplate:

- name: "Tuya Gniazdo 1"
      unique_id: "sensor.gniazdo_1"
      icon: "mdi:white-balance-sunny"
      unit_of_measurement: "W"
      state: >
        {% set P = states('sensor.gniazdo_1_power' ) | float(0) | abs  | round(2) %}
        {{ P }}

w pliku sensor:

- platform: integration
  source: sensor.gniazdo_1
  name: gniazdo_1
  unit_prefix:
  round: 2

w pliku utylity meter:

gniazdo_1_godzina:
  source: sensor.gniazdo_1
  cycle: hourly
gniazdo_1_dzien:
  source: sensor.gniazdo_1
  cycle: daily
gniazdo_1_miesiac:
  source: sensor.gniazdo_1
  cycle: monthly
gniazdo_1_rok:
  source: sensor.gniazdo_1
  cycle: yearly

Co jest źle wpisane że tam liczy a tu nie ?

Wydaje mi się, że wystarczy jak dodasz wpis

# customize.yaml
sensor.gniazdo_1:  
  last_reset: '1970-01-01T00:00:00+00:00'
  state_class: 'total_increasing'
  device_class: energy

Energia to jest pobór mocy w czasie!!! sam sensor power nic Ci nie da
przykład, 30 minut odbiornik pobiera 1000 W następnie pobór jest 0
Daje to 0.5 kWh
itp… itp…

1 polubienie

Ok. Ja mam gniazdko Tuya (wifi)
Które to wysyła do HA Power ( Watt)

ScreenShot_20220801221729

W sensor.yaml dodałem wpis

##                                 HA pobór prądu
      sensor_licznik_ha:
        friendly_name: "Licznik HA"
        value_template: "{{ (states('sensor.ac_licznik_dom_power') | float(0) / 1000)  | round(2) }}"
        unit_of_measurement: kWh
        device_class: energy
        unique_id: 2452716740006

I

  - platform: integration
    source: sensor.ac_licznik_dom_power
    unit_prefix: k    
    round: 2
    name: HA pobór

Wynik jest taki

Wiem mam bałagan w nazwach (ac licznik - HA pobór…) , dawno temu dodawałem.

nie da się bez całkowania zrobić sensora kWh z W !!!
To co masz to tylko aktualną moc, chmura Tuya przelicza Ci to na kWh czyli energię

W - moc
kWh lub Wh pobrana energia w określonym czasie
Zmień oprogramowanie gniazdka na Tasmotę i uzyskasz sensory które Cię interesują lub kup https://allegro.pl/oferta/inteligentne-gniazdo-wifi-nous-a1t-tasmota-12411760909 59 zł i masz co chcesz

Inny HA - integracja LocalTuya

Z Watt otrzymuje kWh


I nie różni się od wskazań które są w aplikacji ( o ile HA nie miał restartu)

LocalTuya działa lokalnie i lokalnie jest to przeliczanie.
Jak to jest przeliczane, nie mam pojęcia

@Dariusz_Barczyński
Nie ma potrzeby zmiany oprogramowania w gniazdku, jeśli tylko jest dostępna moc chwilowa (i ona działa), to HA potrafi całkować metodą Riemanna.

Swoją drogą gdzieś na początku tego wątku podrzuciłem komponent niestandardowy - Powercalc, który można też wykorzystać do tego celu (włącznie z wygenerowaniem mierników mediów, czyli utility meter)

@krskrab
Nie mam siły wnikać w to co wykombinowałeś, ale nawet wykresy, które pokazałeś powyżej dowodzą wady w obliczeniach
ScreenShot_20220801221729

za to wykres zużytej energii jest zasadniczo liniowy (pomijam fakt, że pociąłeś go na “schodki” :slight_smile: )

natomiast pobór mocy masz na tyle zmienny, że ten wykres powinien być mocno pofalowany, a nie taki “od linijki”, po prostu @Dariusz_Barczyński ma rację…

integracja LocalTuya - wykres jest liniowy ponieważ jest podłączona lada chłodnicza, działająca prawie bez przerwy z stałym obciążeniem (9-20 oświetlenie)
ScreenShot_20220801234737

HA laptop (niebieski) - laptop z HA, wykres jest z jednej godzinny więc jest wiele “pików”
Macie racji, że to złe rozwiązanie ale działa

Wiem proszę przeczytaj mój post ponownie. Dostałem kod od kolegi z forum który wykorzystuje właśnie całkę wyraźnie o tym wspominam. W przypadku dwuch innych encji kod działa, licznik zlicza zużytą lub wyprodukowana energię. W tym przypadku jest inaczej. Piszesz o encji Tuya chmurowej , ale mam tez możliwość zaczytywania przy pomocy Tuya local sytuacja jest identyczna.
Sprawdzę podpowiedz kolegi z wpisem do customize.yaml i napisze czy działa

Edit:

Panowie w ostatnim czasie popracowałem i działa. Do liczników użyciu zastosowałem encjie z “tuya local”, zawsze to lokalnie nie z chmurki i w razie braku neta też działa. Liczniki stworzone jako pomocnicy ścieżka do rozwiązania: Ustawienia-Ustawienia oraz usługi-(w górnej belce ) Pomocnicy- utwórz pomocnika- "Integracja -czujnik całkujący sumę Riemanna )

a jaką metodę integracji wybierasz? Trapezoidal czy moze left albo right riemann sum?
dalej dajesz NONE oraz Hours?