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.
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.
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ć )
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.
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
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.