SELECT mean("value") AS "mean_value" FROM "home_assistant"."autogen"."%" WHERE time > :dashboardTime: AND time < :upperDashboardTime: AND "entity_id"='parter_pokoj_humidity' GROUP BY time(:interval:) FILL(null)
i w zasadzie dane się eksportują, ale… jest ich coś mało, otrzymuję dane z sensora w odstępach ok. 12-godzinnych (1-2 odczyty na dobę). A wiem że na pewno jest tego więcej! W dodatku z jakimiś uśrednieniami czy coś…
Modyfikuję więc zapytanie, aby baza dała mi odczyty co np. minutę:
SELECT mean("value") AS "mean_value" FROM "home_assistant"."autogen"."%" WHERE time > :dashboardTime: AND time < :upperDashboardTime: AND "entity_id"='parter_pokoj_humidity' GROUP BY time(1m) FILL(null)
… i jest lepiej, tzn gorzej Baza zwraca mi dane w odstępach minutowych, ale jak nie ma danych z sensora, to zostawia puste pole. Otrzymuję więc plik 10MB danych, gdzie może jest 10% danych, a reszta to puste pola:
Czy jest więc jakiś sposób aby wyciągnąć tylko to co wysłał do bazy sensor, bez jakichś interpolacji i sztucznego zawyżania rozdzielczości czasowej?
Może to tak ma działać? Kojarzę, że optymalizacja współpracy HA z DB polegała między innymi na zapisie tylko jeśli wskazanie się zmieniło. Jest duże prawdopodobieństwo, że to zmyślam albo jednak to resztki pamięci po czytaniu bloga HA z kolejnymi wydaniami.
Zapytania są w zasadzie identyczne. Baza HA ma “najdokładniejsze” dane, czyli jak sensor wysyła dane co 5sek, to mam co 5 sek. Jak co godzinę to mam co godzinę, a jak wtedy jak zmieni się wartość - to dopiero jak coś się zmieni.
Więc ewidentnie InfluxDB “dodaje” coś przy eksporcie - a ja właśnie chcę żeby nic nie kombinował tylko dał co ma Teraz “puste” dane usuwam przy analizie programowo, ale to dodatkowa kombinacja.
Sensory najróżniejsze, od chińskich czujek na ZB, gniazdek “smart” po szybkość wentylacji.
Nie wiem, wątpię Moje ZB wysyłają dopiero jak się zmieni odczytywana wartość, min 5min. Ale czujki ruchu to min co 10 sek zdaje się. Co 5 sek mam pomiar prądu (ZAMEL).