LICZNIK GAZU na podstawie czasu pracy pieca

Być może cykliczne wywołanie w jakieś automatyzacji tego co dzieje się w encji gas

     "state": "{{ ( states('sensor.gaz_moment_riemann_sum') | float(0) | round(3) )}}",
      

załatwiłoby sprawę? Jak to zrobić to nie wiem.

Jakoś musi być to możliwe bo powercalc używa pomocnika sum do własnych obliczeń.

Chyba sobie dam spokój ze względu na nieprzewidywalność HA, nie chce mi się już na silę walczyć.
Ni stąd ni zowąd nagle cos takiego - dla Gaz_godz źródłem jest Gaz, zupełnie nie rozumiem co tu się stało.

Wystarczyły zmiany częste modulacji i zaczęło zliczać

Faktycznie reakcja tylko na zmiany znacznie zniekształca odczyty.
Na odczytach godzinowych wysokość tych przyrostów jest zawsze taka sama, a nie powinna.
Ta szpilka na total Gaz też nie wiadomo skąd?

Te szpilki to wygląda na moment restartu HA.

Metoda jest sprawdzona jednak nie potrafię tego ogarnąć w HA.


Wykres modulacji ma pomiary tylko w chwili zmian, a godz liczony jest co 15sek.

Musze sprawdzić czy faktycznie za pomocą powercalc będzie można cos wydłubać on tworzy wirtualne urządzenie .

Na razie problem całki chyba rozwiązany, nie powinno być po nocnego strzała w górę to już coś, ale nie działa to jeszcze poprawnie w innych miejscach, te sensory godzina , dzień itp. w ogóle nie działają poprawnie liczą za dużo, musiałem pousuwać.

To jak masz to rozwiązane, tak się nie da zrobić w pomocniku.
Na twoim wykresie widać ze często jest zapis Gaz Godz. mimo ze kocioł pracuje na tej samej modulacji.

Licznik i całkowanie mam w Node-Red z powodu tego, że kocioł zwraca mi czas pracy palnika.
Na jego podstawie wyliczam zużycie.

edit.

Dla testu zrobiłem tak samo jak u Ciebie
template.yaml

  - sensor:
      - name: Test gas  # do tego sensora przepisuje całkę
        unique_id: test_gass
        state_class: total_increasing               
        state:  "{{states('sensor.test_gas_sum')}}"
        unit_of_measurement: "m³"  
        device_class: gas

      - name: Test gas temp   # sensor gazu po przeliczeniu z modulacji
        unique_id: test_gas_total
        state_class: total        
        state:  "{{ 0.26 + ((states('sensor.moc_kotla') | float(0) ) / 100 ) * ( 2 - 0.26 ) }}"

Zmieniłem tylko trochę wzór i nie zaokrąglam

Całka

Godzinowe

utility_meter:
    test_hourly:
        name: Test Gaz Godz
        source: sensor.test_gas
        cycle: hourly  

I wynik- jednostki i skala pasują.

Więc nie mam pojęcia co namotałeś :slight_smile:

1 polubienie

Nie wiem , ja mam wrazenie że coś z moim HA jest nie tak.
Super ze poświęciłeś tyle czasu aby pomóc bo już zaczynałem wątpić w powodzenie moich wzmagań.

Czy te sensory tworzyłeś manualnie czy za pomocą helper ?

Widze ze zrobiles to w template.yaml

Zrobie nowe sensory i zobacze zo z tego wyjdzie.

@RobinI30 - przetrzymaj na noc i pokaz co nabilo w dzien jak piec sie wlaczyl. Ja dzis znowu zaliczylem kolosalne zycycie z czasu bez aktywnosci mimo ze calkowanie bylo ustawione na lewy wynik.

Luzik… zawsze to coś ciekawszego niż setny raz pisać to samo o modbusie :wink:

Po nocy mam coś takiego


Odczyt statystyk godzinowych dla obu sposobów na tle modulacji.
Na wysokość nie zwracaj uwagi bo jedne są mojego kotła a drugie dla twoich danych.
Jednak ewidentnie widać, że pomiędzy 1-2h z powodu braku odczytów naliczenie odroczył do pierwszej zmiany.
Jeśli nie znajdziesz sposobu aby całkowanie uruchamiać cyklicznie to nie uzyskasz poprawnych słupków

Wynika z tego ze do całkowania potrzeba sensora który cyklicznie będzie zapisywał dane
Aby to dalej ciągnąc musze znaleźć sposób, aby sensor źródłowy do całkowania zapisywał częściej lub użyć innej metody liczenia.

Próbowałem to zrobić automatyzacją wywalywaną co kilka sekund, ale poległem jak przepisac w niej stan jednej do drugiej encji. Moze trzeba założyc osobny temat, bo tu chyba już nikt nie odpowie?

Ja taka automatyzacje zrobiłem ale nie wnosi nic.

alias: Gaz_measurement_update_every_30sek
description: ""
trigger:
  - platform: time_pattern
    seconds: /15
    enabled: true
condition: []
action:
  - service: homeassistant.update_entity
    metadata: {}
    data: {}
    target:
      entity_id:
        - sensor.gaz_moment_measurement
        - sensor.gaz_moment_riemann_sum_trapez
mode: single

Zajrzałem na statystyki całkowania i ku mojemu zdziwieniu jednak całkowanie z opcja left zadziałała dość poprawnie, bynajmniej zadowalająco.
Mój alert z dzisiejszego ranka był chyba nie uzasadniony bo bazował na starym sensorze który niby zmodyfikowałem w customize :

sensor.gaz_moment_riemann_sum:
  method: left

Ale wygląd jakby tego nie zaakceptował

Zmienilem wzorcglownego zensora dodajac do jego wartosci mozliwe mala wartosc aby sensor reagowal na zmiany jak narazie testuje.

Ten wzor wyglada teraz tak:

{{ ([0, ((( states('sensor.status_flames') | float(0) | round(0)  * ( ( 0.26 + ((states('sensor.boiler_modulation') | float(0) ) / 100 ) * ( 2 - 0.26 ))) ))  ) + ((((now().second / 15) | float) - 1.5) / 1000)] | max)}}

Jednak to nie działa, zmiany stanu są dopiero jak sensor fizycznie zmieni wartość.

Małe sprostowanie wystarczyło a w automation odpytywać sensor co 30sek i już jest lepiej.

Misze poinformowac ze caly ten wysilek nie poszedl na marne , wszystko zaczelo dzialac tak jak oczekiwalem.
Okazuje się jednak ze do tego potrzebny był sensor który często raportuje swoje wartości. Po tej całej zabawie i niepowodzeniach cel zastał osiągnięty.

Dziękuje kolegom za zaangażowanie i pomoc.

1 polubienie

To teraz wrzuć do posta swoje konfiguracje - może się to przyda innym.

Tak jak pisałem, wszystkie problemy były spowodowane tym że główny sensor przy braku zmian wartości usypiał inne sensory i to było powodem różnych dziwnych wartości.

Kończąc to ten temat dla przyszłych czytających uwaga:

  1. główny sensor który liczy chwilowe wartości powinien być często aktualizowany najlepiej cyklicznie użyjcie do tego dodając możliwe małe wartości wynikające z dzielenia sekund.
  2. odpytywać tak utworzony sensor z automatyzacji co określony czas na jam 30sek

Od razu zauważycie pożądane efekty , całkowanie działa fajnie jak również utility.

Teraz mam chwile na zajęcie się czymś innym.

Jeszcze raz dziękuję @RobinI30 za wytrwałość bo już miałem porzucić temat.

Nie pisz, tylko wrzuć całą konfigurację dla poszczególnych encji - w kolejności wykonywanych działań !
Bo z tego pisania nikt nie odtworzy integracji - no chyba, że twoje dzieło chroni prawo autorskie? :wink:

3 polubienia

Hej Robinl30,
Czy mógłbyś wrzucić flow z Node-Red ze swoją metodą liczenia zużycia gazu? Z pierwszego posta widzę, że masz Viessanna, więc może być mi łatwiej Twoją metodą - mam zrobioną integrację przez ESP32 i dostaję z kotła takie wartości:

Nie wiesz nawet czy człowiek żyje, a go obrażasz i po roku własnej nieobecności na forum walisz taki tekst. Z pewnością wkład @Michalski jest spory na tym forum. A ty komuś tu pomogłeś? Bo zdaje się, że to twój drugi wpis na tym forum.


Wypada, zanim sam dokonasz defekacji, spojrzeć za siebie gdzie to robisz.

1 polubienie