Entity do zliczania zużycia pelletu

Szanowni Panowie i Panie.

Chodzi mi po głowie ustalenie średniego zużycia dziennego pelletu przez mój piec. Mogę dostać się do niego przez API producenta i wyciągnąłem sobie entities niezbędne ( moim skromnym zdaniem ) do wyliczenia średniego zużycia dobowego pelletu. Na początek przedstawię co mam, później jaki mam tok rozumowania w wyliczeniu zużycia . Natomiast na końcu moje prośby do Was.

  1. Co mam ?
    Mam czas pracy podajnika paliwa w sekundach. Niestety podaje on czas nie dobowy ale od początku zasypania zbiornika ( aktualnie 19 885 sekund ).
    Mam encję w której trzymam zużycie pelletu na 1s.

  2. Jak to mi się widzi do wyliczenia.
    Zmierzyć czas pracy podajnika w ciągu 24 godzin. Załóżmy , że od północy do północy. Dane zapisać ( zdaję sobie sprawę, że pierwszy pomiar będę musiał odczekać :slight_smile: )

Wtedy już z górki czas_pracy x ilość_paliwa_na_1s i wychodzi zużycie w ciągu poprzedniej doby.
Mając kilka zapisów czasu pracy podajnika, np. w ciągy miesiąca można policzyć średnie dobowe zużycie. Wtedy można już w miarę dokładnie prognozować.
Później puszczając już wodze fantazji mając stare dane pogodowe i prognozowane można wynik prognozy bardziej zbliżyć do rzeczywistości. Na razie ten temat jako fantazja.

  1. Co bym potrzebował ?
    Nie wiem jak zabrać się za pomiar czasu w ciągu doby. Wymyśliłem sobie tak, że tworzę automatyzację w której o 24.00 odczytam wartość pracy podajnika a o 24.00 odczytam ponownie. Odejmę od siebie i mam czas w sekundach pracy podajnika. Niestety nie wiem jak to zrobić. Resztę automatyzacji robię w node red ale teraz to tak jak by armata na komara. Nie dotykałem automatyzacji w HA.

Ma podobnej zasadzi liczę zużycie gazu przez kocioł.
Z czasu pracy palnika, mocy chwilowej i znamionowego zapotrzebowania gazu w l/min. Obliczam przyrostowo całkowite użycie gazu “sensor.gas”.
Statystyki automatycznie tworzy panel “Energia” wymagane jest tylko utworzenie utility_meter.

utility_meter:
  
        
    gas_hourly:
        name: Gaz Godz
        source: sensor.Gaz
        cycle: hourly
    gas_daily:
        name: Gaz Dzień
        source: sensor.Gaz
        cycle: daily
    gaz_weekly:
        name: Gaz Tydz
        source: sensor.Gaz
        cycle: weekly
    gaz_monthly:
        name: Gaz Mies
        source: sensor.Gaz
        cycle: monthly
    gaz_yearly:
        name: Gaz Rok
        source: sensor.Gaz
        cycle: yearly        
        
    


gas1

U Ciebie byłoby to jeszcze prostsze.
plellet = czas pracy * ilość/sek
To wszystko…

1 Like

Potraktuj to jako “stan licznika” i tak ja proponuje @RobinI30 zastosuj na końcu utility_meter, który sam wszystko zsumuje w określonych przedziałach czasu, nie trzeba do tego żadnych automatyzacji, żadnego odejmowania.

Chyba mi się komplikuje sprawa. Otóż gdy dosypuję peletu i wciskam na sterowniku “dosypanie” licznik się zeruje. W drugiej zmiennej mam poprzedni czas przed zerowaniem oraz mam datę i godzinę dosypanie pelletu.

Jest jakiś rzeczywisty problem czy przewidujesz?
Powinno działać, utility_meter chyba sumuje tylko przyrosty. Po dosypaniu będzie ujemny przyrost dla pierwszego odczytu, a kolejne będą już prawidłowe.

przewiduję :slight_smile: sprawdzmy HA. Dam znak jak poszło

Pokaż jak masz skonfigurowany sensor.gaz

Nic Ci to nie powie bo obliczenia robę w NR

  - platform: mqtt
    name: "Gaz"
    state_topic: "VITOWIFI/Gass"
    unit_of_measurement: 'm³'
    state_class: 'total_increasing'
    device_class: 'gas'

W zakładce Energy ciągle nie widzi mi encji

poprawka. już widzi. Wystarczyło zmienić name na gas. Niżej wersją już działająca z zakładką energy.

  - sensor:
      - name: "gas"
        device_class: 'gas'
        unit_of_measurement: "kg"
        state_class: 'total_increasing'
        state: >
          {% set zuzycie = states('sensor.zuzycie_na_sekunde') | float %}
          {% set czas = states('sensor.czas_pracy_podajnika') | float %}
          {{ (zuzycie*czas)/1000 | float | round (2) }}
utility_meter:

    gas_hourly:
        name: Pellet Godz
        source: sensor.gas
        cycle: hourly
    gas_daily:
        name: Pellet Dzień
        source: sensor.gas
        cycle: daily
    gas_weekly:
        name: Pellet Tydz
        source: sensor.gas
        cycle: weekly
    gas_monthly:
        name: Pellet Mies
        source: senssensor.gas
        cycle: monthly
    gas_yearly:
        name: Pellet Rok
        source: sensor.gas
        cycle: yearly 

Popraw name: “zuzycie_total”

1 Like