Zauważyłem pewien problem w zliczaniu danych:
ESPHome odczytuje stan licznika wody, jeżeli to ESPHome jest niedostepne przez jakis czas, np. brak zasilania to po powrocie zasilania nowy stan licznika nie jest poprawnie uwzględniany w użyciu dziennym wody w utility meter i w kazdym kolejnym - tygodniowym, miesięcznym, itd. Dzieje się tak ponieważ w pewnym momencie, zanim w HA pojawi się odczyt stanu licznika, encja zwraca status niedostępna, jak się przed tym zabezpieczyć?
Przykład z dzisiaj:
Dziennie użycie wody jest zaniżone o 50 litrów.
Problem jest o tyle większy, że dotyczy wszystkich utility meter opartych o dane z czujników z ESPHome, np. użycia energii.
Jest z tym problem. Osobiście też tego doświadczyłem, przypadkowo przestawiłem czujnik indukcyjny na wodomierzu i przez parę dni nie odczytywałem impulsów zliczających ilość litrów. Przed takimi przypadkami raczej nie masz ochrony, bo jeśli coś nie jest zliczane to i nie ma jak tego zapamiętać w ESP czy HA. Pozostaje chyba tylko ręczna korekta liczników poprzez usługę: utility_meter: calibrate
Ten sam wodomierz odczytuję także przez wmbusmeter i w przypadku integracji po MQTT nie ma takiego problemu bo HA pamięta ostatnią odebraną wartość (nawet jak sie HA wlaczy po 5 godzinach) i jak pojawi się nowy odczyt wszystko dobrze się przelicza:
Tak, ale wartość odczytu jest zliczana w nakładce licznika. Jest w niej bateria i nie ma problemu, bo zasilanie jest ciągłe. Po powrocie komunikacji HA otrzymuje aktualny odczyt. Nawet jak HA będzie miał w historii ostatni odczyt, to utraconych przez ESP impulsów już nie policzy. Nie odzyskasz tego odczytu i powstanie różnica we wskazaniu wodomierza i ilością zliczoną.
Samą ciągłość odczytu zrobiłem przez utworzenie pomocnika licznik mediów bez cyklu. Czyli total, który zawsze przyrasta i ma jakiś stan końcowy. Z ESPHome leci sam odczyt impulsu w przeliczeniu na litry.