ondrejvysek / HomeAssistant-EGD-PowerData

5 stars 0 forks source link

Data ze senzoru se nepřiřazují k měřenému dni ale k "dnes" #4

Open Rashengka opened 1 month ago

Rashengka commented 1 month ago

Při stažení dat z API EGD, se data přiřazují do aktuálního dne a času, ale příchozí data jsou 2 dny staré.

příklad: Dnes 24.6.2024 v 15:33 přišla data (dle logu) z datumu 22.6.2024.

Senzor ukazuje příchozí data z 21.6, následuje mezera s hodnotou 0, pak se stáhnou data za 22.6. a znovu ukazujee hodnotu. image V obrázku jsou vidět data z 21.6. a 22.6. ale jsou zařazeny o 2 dny později do 23.6 a 24.6.

Rashengka commented 1 month ago
2024-06-24 16:04:05: INFO >>>>>>>>>>>Updating EGD Power Data Sensor for EAN: XXX, Profile: ICC1
2024-06-24 16:04:05: INFO Retrieving access token
2024-06-24 16:04:06: SUCCESS Access token retrieved: __TOKEN__
2024-06-24 16:04:06: INFO Retrieving data with token: __TOKEN__
2024-06-24 16:04:06: INFO Headers: {'ean': 'XXX', 'profile': 'ICC1', 'from': '2024-06-22T22:00:00.000Z', 'to': '2024-06-23T21:45:00.000Z', 'pageSize': 3000}
2024-06-24 16:04:06: INFO Data url: https://data.distribuce24.cz/rest/spotreby
2024-06-24 16:04:06: WARN Response status code: 200
2024-06-24 16:04:06: INFO Response content: b'[{"ean/eic":"XXX","profile":"ICC1","units":"KW","total":96,"data":[{"timestamp":"2024-06-22T22:00:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-22T22:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-22T22:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-22T22:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-22T23:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-22T23:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-22T23:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-22T23:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T00:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T00:15:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-23T00:30:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T00:45:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-23T01:00:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T01:15:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T01:30:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T01:45:00.000Z","value":0.09,"status":"IU012"},{"timestamp":"2024-06-23T02:00:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T02:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T02:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T02:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T03:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T03:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T03:30:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T03:45:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T04:00:00.000Z","value":0.05,"status":"IU012"},{"timestamp":"2024-06-23T04:15:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T04:30:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T04:45:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T05:00:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T05:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T05:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T05:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T06:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T06:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T06:30:00.000Z","value":0.09,"status":"IU012"},{"timestamp":"2024-06-23T06:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T07:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T07:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T07:30:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T07:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T08:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T08:15:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T08:30:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T08:45:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T09:00:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T09:15:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T09:30:00.000Z","value":0.05,"status":"IU012"},{"timestamp":"2024-06-23T09:45:00.000Z","value":0.01,"status":"IU012"},{"timestamp":"2024-06-23T10:00:00.000Z","value":0.01,"status":"IU012"},{"timestamp":"2024-06-23T10:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T10:30:00.000Z","value":0.03,"status":"IU012"},{"timestamp":"2024-06-23T10:45:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-23T11:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T11:15:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T11:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T11:45:00.000Z","value":0.09,"status":"IU012"},{"timestamp":"2024-06-23T12:00:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T12:15:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-23T12:30:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T12:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T13:00:00.000Z","value":0.06,"status":"IU012"},{"timestamp":"2024-06-23T13:15:00.000Z","value":0.02,"status":"IU012"},{"timestamp":"2024-06-23T13:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T13:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T14:00:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T14:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T14:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T14:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T15:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T15:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T15:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T15:45:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T16:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T16:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T16:30:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T16:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T17:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T17:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T17:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T17:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T18:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T18:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T18:30:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-23T18:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T19:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T19:15:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T19:30:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T19:45:00.000Z","value":0.11,"status":"IU012"},{"timestamp":"2024-06-23T20:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T20:15:00.000Z","value":0.08,"status":"IU012"},{"timestamp":"2024-06-23T20:30:00.000Z","value":0.09,"status":"IU012"},{"timestamp":"2024-06-23T20:45:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T21:00:00.000Z","value":0.1,"status":"IU012"},{"timestamp":"2024-06-23T21:15:00.000Z","value":0.09,"status":"IU012"},{"timestamp":"2024-06-23T21:30:00.000Z","value":0.07,"status":"IU012"},{"timestamp":"2024-06-23T21:45:00.000Z","value":0.08,"status":"IU012"}]}]'
2024-06-24 16:04:06: INFO Total value: 2.1475
2024-06-24 16:04:35: INFO Updating EGD Power Data Status Sensor for EAN: XXX
2024-06-24 16:04:35: INFO Updating related sensors for EAN: XXX
2024-06-24 16:05:05: INFO Updating EGD Power Data Status Sensor for EAN: XXX
2024-06-24 16:05:05: INFO Updating related sensors for EAN: XXX
2024-06-24 16:05:35: INFO Updating EGD Power Data Status Sensor for EAN: XXX
2024-06-24 16:05:35: INFO Updating related sensors for EAN: XXX

(anonymizováno)

ondrejvysek commented 1 month ago

API se dotazuje pouze na den zpětně, tj dnes (24.6) nedokáže získat data k jinému dni, nežli k 23.6. Jak se píše v dokumentaci, je to číslo ke včerejšku. Ostaně je to vidět i v těch datech (pozor, je to UTC - je potřeba přidat 2 hodiny). Záleží jak senzor běží často a jak jsou data na straně API publikována.

Kde je prosím vidět, že jsou data 2 dny stará?

Rashengka commented 1 month ago

Je to vidět v logu který jsem přiložil výše. Kde se stahují od 22.6. Je to vidět jak v hlavičkách tak i v response. Ještě to detailně projdu a porovnám s daty v distribuce 24.

Lze každou položku z response jsonu mapovat k danému času i do sensoru? Pak by se daly dělat detailní statistiky.

ondrejvysek commented 1 month ago

Jak jsem psal a jak je v dokumentaci API - API vrací data v UTC, tj data začínají 22:00 +2 hod = půlnoc daného dne.

U HA není moc možné zapisovat zpětně, hledám řešení, ale nevím zdali se povede, časová známka senzoru se bere při update senzoru.

k položkám, asi ani to bych nedělal, pokud by tam 15ti minutová data zůstala, SQLlite to položí na záda, to je řešení mimo HA - šlo by, pokud by byl zájem. a tam není problém s žádným datumem,...

Rashengka commented 1 month ago

Jak jsem psal a jak je v dokumentaci API - API vrací data v UTC, tj data začínají 22:00 +2 hod = půlnoc daného dne. Aha tady je chyba na mé straně, to jsem přehlédl. Pardon :)

Mám s HA kratší zkušenost (cca měsíc), ale zatím se nezdá, že by množství dat nějak omezovalo jeho rychlost, snad jen když se z velkého množství udělá např. měsíční report.

Rád prozkoumám možnosti jak píšeš výše, ocením když mě nasměruješ kde začít, s programováním HA zatím nemám moc zkušenosti, ale poradím si :)

ondrejvysek commented 1 month ago

Měsíc je zatím krátká doba, jak přibudou senzory a data, záleží na čem běží, může se zpomalit. Obecně integrovaná databáze HA není dělaná na velké množství dat a proto je tam výchozí retence tuším 10dní.

řeším tu jak nechat tato denní data po delší dobu bez nutnosti statistických senzorů - je to v plánu.

Rashengka commented 1 month ago

Prohledal jsem manuál a taky jsem nenašel jak k datům ze senzoru přiřadit čas události. Našel jsem pouze integraci SQL https://www.home-assistant.io/integrations/sql/ která by pak detailní data mohla mít, ale to už jsi psal výše, takže ode mne nic nového :-/