kpoppel / homeassistant-novafos

Homeassistant wrapper around the Novafos KMD water metering data warehouse.
Apache License 2.0
10 stars 3 forks source link

For me this plugin no longer returns valid data #3

Closed kpoppel closed 2 years ago

kpoppel commented 2 years ago

It looks like Novafos changed the API. While the plugin can login as usual the authentication now uses a bearer token and a completely different JSON format.

A fix is in the works and will be avsolutely not backwards compatible.

Sdahl1234 commented 2 years ago

If you need alfa/beta tester just let me know.

kpoppel commented 2 years ago

Thanks @Sdahl1234 . I have pushed the current state to 'main'. It is much different from the current version, so you should spin up a test instance of HA for this. For one I removed all the many many hourly sensors because it just didn't give me any value when data was so unreliable. Now there is only one sensor for hourly data. Instead the sensors now include yearly, monthly, daily, and hourly, as well as one for the last valid date for the data. They have attributes which can be used for graphing data at the correct date with apexchart and also features average, min, and max values which are not coming from the API.

One thing which is certain: The hourly data sensor is pretty useless as soon as the valid data skips a day - which it does. The attributes is really the only truth here. For daily, monthly, yearly - graphing them skewed to the valid date by using the sensor state is a flavor thing. I just like stuff to be shown at the correct dates.

Let me know what you think if you try it out. Right now this is in a "works for me" state.

Something like this can be made: image

See also entity card example in the repository.

Sdahl1234 commented 2 years ago

wow. very nice work

My auth_url is diffrent: self._auth_url = f'https://webtools.kmd.dk/'

Beside that I only have one issue with the new version of the integration. My debug log shows error in line 339 in novafos.py. _LOGGER.debug(f"Total/Avg/Min/Max: {self._meter_data['hour']['Total']['Value']} / {self._meter_data['hour']['Average']['Value']} / {self._meter_data['hour']['Minimum']['Value']} / {self._meter_data['hour']['Maximum']['Value']}")

I comment out the line and all works.

2022-01-20 08:27:24 DEBUG (SyncWorker_1) [custom_components.novafos.sensor] Updated status for Novafos Year Total 2022-01-20 08:27:24 DEBUG (SyncWorker_13) [custom_components.novafos.sensor] Updated status for Novafos Month Total 2022-01-20 08:27:24 DEBUG (SyncWorker_8) [custom_components.novafos.sensor] Updated status for Novafos Day Total 2022-01-20 08:27:24 DEBUG (SyncWorker_8) [custom_components.novafos.sensor] Updated status for Novafos Hour 2022-01-20 08:27:24 DEBUG (SyncWorker_5) [custom_components.novafos.sensor] Updated status for Novafos Valid Date for data 2022-01-20 08:27:32 DEBUG (MainThread) [custom_components.novafos] Novafos ConfigData: {entry.data} 2022-01-20 08:27:32 DEBUG (MainThread) [custom_components.novafos] A HassNovafos class was created 2022-01-20 08:27:33 DEBUG (MainThread) [custom_components.novafos.sensor] Registering Sensor for Year Total 2022-01-20 08:27:33 DEBUG (MainThread) [custom_components.novafos.sensor] Registering Sensor for Month Total 2022-01-20 08:27:33 DEBUG (MainThread) [custom_components.novafos.sensor] Registering Sensor for Day Total 2022-01-20 08:27:33 DEBUG (MainThread) [custom_components.novafos.sensor] Registering Sensor for Hour 2022-01-20 08:27:33 DEBUG (MainThread) [custom_components.novafos.sensor] Registering Sensor for Valid Date for data 2022-01-20 08:28:03 DEBUG (SyncWorker_1) [custom_components.novafos] Fetching data from Novafos 2022-01-20 08:28:04 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Got session_id (supplierid and user/pass was ok): 8ac57e49-f258-44c0-91d4-d00111a971b9 2022-01-20 08:28:04 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Got bearer token (access to API was Ok): bearer PZoJ4gY3OsYS7iVH0YspdpLKBK7ZWN2EhlOvg1QfYx6RHRFZgCW6c9Cyhww_f01ScYVXuU1ahjceB22d-o0xN2h0h_fazCIfH1BmCIF2uqSf6WQZQESyrvWoL2dBGf6eBK52ftI2NxM4d4uOBBejjEEOpnLmGCSTUNIL9ppEyritvD_HI4O6gBQLKRn-7J0JqinnYX06karPEiqUspj8aRIG9oMSwVan_v5-lgoxLpMOeJk0RpD1zricQVZHI7CzROZNDbl5PI6h09HzbIyRTwUmaYEA_1otWr-lb_D4JW8Ssq00qlub4xPKnKzgKSa3Tbm0_q5xyiff9ELilbIKm77DEky27VvTczqfksVo1L1t382VXFtd1dYWkIsmP6HOz9BsH71LvB797QNHHSAZhstK6uwpacvEXxV1d7CishvYkU_pk2jf_Oeatf28pR8nTLmVKwPe4IBqUTPwmueG1CNwlGT4nhkP6BGzUxLy5sEaSxzjruP2InBZBrB3Rrq6aTo8u-WmMKgJ8IX8irsbSW_xcVpvoq28Afcuxwb5oL6hIifRQ0Mw_BG4aUEprI-gRhWWvxjTd0RJ3um75Ck96BNw_BfLv3x2 2022-01-20 08:28:04 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Day data from 2022-01-01T00:00:00.000Z to 2022-01-31T00:00:00.000Z 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-01T00:00:00+01:00 - 2022-01-01T23:59:59+01:00 - 0.374 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-02T00:00:00+01:00 - 2022-01-02T23:59:59+01:00 - 0.467 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-03T00:00:00+01:00 - 2022-01-03T23:59:59+01:00 - 0.299 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-04T00:00:00+01:00 - 2022-01-04T23:59:59+01:00 - 0.149 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-05T00:00:00+01:00 - 2022-01-05T23:59:59+01:00 - 0.182 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-06T00:00:00+01:00 - 2022-01-06T23:59:59+01:00 - 0.262 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-07T00:00:00+01:00 - 2022-01-07T23:59:59+01:00 - 0.239 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-08T00:00:00+01:00 - 2022-01-08T23:59:59+01:00 - 0.45 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-09T00:00:00+01:00 - 2022-01-09T23:59:59+01:00 - 0.427 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-10T00:00:00+01:00 - 2022-01-10T23:59:59+01:00 - 0.248 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T00:00:00+01:00 - 2022-01-13T23:59:59+01:00 - 0.412 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T00:00:00+01:00 - 2022-01-14T23:59:59+01:00 - 0.213 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T00:00:00+01:00 - 2022-01-15T23:59:59+01:00 - 0.141 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T00:00:00+01:00 - 2022-01-16T23:59:59+01:00 - 0.176 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T00:00:00+01:00 - 2022-01-17T23:59:59+01:00 - 0.443 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T00:00:00+01:00 - 2022-01-18T23:59:59+01:00 - 0.314 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Day Total/Avg/Min/Max/ValidDate: 4.796 / 0.3 / 0.141 / 0.467 / 2022-01-18T23:59:59+01:00 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Year data from 2022-01-01T00:00:00.000Z to 2022-12-31T23:59:59.000Z 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Year Total: 4.796 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Month data from 2022-01-01T00:00:00.000Z to 2022-01-31T00:00:00.000Z 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-01T00:00:00 - 2022-01-31T23:59:59 - 4.796 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Month Total/Avg/Min/Max: 4.796 / 0.0 / 0.0 / 0.0 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 1 day(s) back in time from 2022-01-18T23:00:00.000Z to 2022-01-19T22:59:59.000Z 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [], 'Total': None, 'Average': None, 'Maximum': None, 'Minimum': None, 'LastValidDate': ''}] 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 2 day(s) back in time from 2022-01-17T23:00:00.000Z to 2022-01-18T22:59:59.000Z 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [{'DateFrom': '2022-01-18T00:00:00', 'DateTo': '2022-01-18T00:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T01:00:00', 'DateTo': '2022-01-18T01:59:59', 'Value': 0.008}, {'DateFrom': '2022-01-18T02:00:00', 'DateTo': '2022-01-18T02:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T03:00:00', 'DateTo': '2022-01-18T03:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T04:00:00', 'DateTo': '2022-01-18T04:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T05:00:00', 'DateTo': '2022-01-18T05:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T06:00:00', 'DateTo': '2022-01-18T06:59:59', 'Value': 0.03}, {'DateFrom': '2022-01-18T07:00:00', 'DateTo': '2022-01-18T07:59:59', 'Value': 0.017}, {'DateFrom': '2022-01-18T08:00:00', 'DateTo': '2022-01-18T08:59:59', 'Value': 0.003}, {'DateFrom': '2022-01-18T09:00:00', 'DateTo': '2022-01-18T09:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T10:00:00', 'DateTo': '2022-01-18T10:59:59', 'Value': 0.01}, {'DateFrom': '2022-01-18T11:00:00', 'DateTo': '2022-01-18T11:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-18T12:00:00', 'DateTo': '2022-01-18T12:59:59', 'Value': 0.015}, {'DateFrom': '2022-01-18T13:00:00', 'DateTo': '2022-01-18T13:59:59', 'Value': 0.047}, {'DateFrom': '2022-01-18T14:00:00', 'DateTo': '2022-01-18T14:59:59', 'Value': 0.042}, {'DateFrom': '2022-01-18T15:00:00', 'DateTo': '2022-01-18T15:59:59', 'Value': 0.039}, {'DateFrom': '2022-01-18T16:00:00', 'DateTo': '2022-01-18T16:59:59', 'Value': 0.015}, {'DateFrom': '2022-01-18T17:00:00', 'DateTo': '2022-01-18T17:59:59', 'Value': 0.01}, {'DateFrom': '2022-01-18T18:00:00', 'DateTo': '2022-01-18T18:59:59', 'Value': 0.038}, {'DateFrom': '2022-01-18T19:00:00', 'DateTo': '2022-01-18T19:59:59', 'Value': 0.008}, {'DateFrom': '2022-01-18T20:00:00', 'DateTo': '2022-01-18T20:59:59', 'Value': 0.01}, {'DateFrom': '2022-01-18T21:00:00', 'DateTo': '2022-01-18T21:59:59', 'Value': 0.009}, {'DateFrom': '2022-01-18T22:00:00', 'DateTo': '2022-01-18T22:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-18T23:00:00', 'DateTo': '2022-01-18T23:59:59', 'Value': 0.009}], 'Total': {'Value': 0.314, 'DateFrom': '2022-01-18T00:00:00+01:00', 'DateTo': '2022-01-18T23:59:59+01:00'}, 'Average': {'Value': 0.018, 'DateFrom': '2022-01-18T01:00:00', 'DateTo': '2022-01-18T23:59:59'}, 'Maximum': {'Value': 0.047, 'DateFrom': '2022-01-18T13:00:00', 'DateTo': '2022-01-18T13:59:59'}, 'Minimum': {'Value': 0.003, 'DateFrom': '2022-01-18T08:00:00', 'DateTo': '2022-01-18T08:59:59'}, 'LastValidDate': '2022-01-18T23:59:59'}] 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 3 day(s) back in time from 2022-01-16T23:00:00.000Z to 2022-01-17T22:59:59.000Z 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [{'DateFrom': '2022-01-17T00:00:00', 'DateTo': '2022-01-17T00:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T01:00:00', 'DateTo': '2022-01-17T01:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T02:00:00', 'DateTo': '2022-01-17T02:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T03:00:00', 'DateTo': '2022-01-17T03:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T04:00:00', 'DateTo': '2022-01-17T04:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T05:00:00', 'DateTo': '2022-01-17T05:59:59', 'Value': 0.029}, {'DateFrom': '2022-01-17T06:00:00', 'DateTo': '2022-01-17T06:59:59', 'Value': 0.058}, {'DateFrom': '2022-01-17T07:00:00', 'DateTo': '2022-01-17T07:59:59', 'Value': 0.035}, {'DateFrom': '2022-01-17T08:00:00', 'DateTo': '2022-01-17T08:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-17T09:00:00', 'DateTo': '2022-01-17T09:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T10:00:00', 'DateTo': '2022-01-17T10:59:59', 'Value': 0.007}, {'DateFrom': '2022-01-17T11:00:00', 'DateTo': '2022-01-17T11:59:59', 'Value': 0.007}, {'DateFrom': '2022-01-17T12:00:00', 'DateTo': '2022-01-17T12:59:59', 'Value': 0.055}, {'DateFrom': '2022-01-17T13:00:00', 'DateTo': '2022-01-17T13:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-17T14:00:00', 'DateTo': '2022-01-17T14:59:59', 'Value': 0.005}, {'DateFrom': '2022-01-17T15:00:00', 'DateTo': '2022-01-17T15:59:59', 'Value': 0.017}, {'DateFrom': '2022-01-17T16:00:00', 'DateTo': '2022-01-17T16:59:59', 'Value': 0.006}, {'DateFrom': '2022-01-17T17:00:00', 'DateTo': '2022-01-17T17:59:59', 'Value': 0.032}, {'DateFrom': '2022-01-17T18:00:00', 'DateTo': '2022-01-17T18:59:59', 'Value': 0.143}, {'DateFrom': '2022-01-17T19:00:00', 'DateTo': '2022-01-17T19:59:59', 'Value': 0.016}, {'DateFrom': '2022-01-17T20:00:00', 'DateTo': '2022-01-17T20:59:59', 'Value': 0.017}, {'DateFrom': '2022-01-17T21:00:00', 'DateTo': '2022-01-17T21:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-17T22:00:00', 'DateTo': '2022-01-17T22:59:59', 'Value': 0.008}, {'DateFrom': '2022-01-17T23:00:00', 'DateTo': '2022-01-17T23:59:59', 'Value': 0.0}], 'Total': {'Value': 0.443, 'DateFrom': '2022-01-17T00:00:00+01:00', 'DateTo': '2022-01-17T23:59:59+01:00'}, 'Average': {'Value': 0.028, 'DateFrom': '2022-01-17T05:00:00', 'DateTo': '2022-01-17T22:59:59'}, 'Maximum': {'Value': 0.143, 'DateFrom': '2022-01-17T18:00:00', 'DateTo': '2022-01-17T18:59:59'}, 'Minimum': {'Value': 0.004, 'DateFrom': '2022-01-17T08:00:00', 'DateTo': '2022-01-17T08:59:59'}, 'LastValidDate': '2022-01-17T23:59:59'}] 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 4 day(s) back in time from 2022-01-15T23:00:00.000Z to 2022-01-16T22:59:59.000Z 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [{'DateFrom': '2022-01-16T00:00:00', 'DateTo': '2022-01-16T00:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T01:00:00', 'DateTo': '2022-01-16T01:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T02:00:00', 'DateTo': '2022-01-16T02:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T03:00:00', 'DateTo': '2022-01-16T03:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T04:00:00', 'DateTo': '2022-01-16T04:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T05:00:00', 'DateTo': '2022-01-16T05:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T06:00:00', 'DateTo': '2022-01-16T06:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T07:00:00', 'DateTo': '2022-01-16T07:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T08:00:00', 'DateTo': '2022-01-16T08:59:59', 'Value': 0.071}, {'DateFrom': '2022-01-16T09:00:00', 'DateTo': '2022-01-16T09:59:59', 'Value': 0.023}, {'DateFrom': '2022-01-16T10:00:00', 'DateTo': '2022-01-16T10:59:59', 'Value': 0.003}, {'DateFrom': '2022-01-16T11:00:00', 'DateTo': '2022-01-16T11:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T12:00:00', 'DateTo': '2022-01-16T12:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T13:00:00', 'DateTo': '2022-01-16T13:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-16T14:00:00', 'DateTo': '2022-01-16T14:59:59', 'Value': 0.015}, {'DateFrom': '2022-01-16T15:00:00', 'DateTo': '2022-01-16T15:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-16T16:00:00', 'DateTo': '2022-01-16T16:59:59', 'Value': 0.011}, {'DateFrom': '2022-01-16T17:00:00', 'DateTo': '2022-01-16T17:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-16T18:00:00', 'DateTo': '2022-01-16T18:59:59', 'Value': 0.019}, {'DateFrom': '2022-01-16T19:00:00', 'DateTo': '2022-01-16T19:59:59', 'Value': 0.013}, {'DateFrom': '2022-01-16T20:00:00', 'DateTo': '2022-01-16T20:59:59', 'Value': 0.009}, {'DateFrom': '2022-01-16T21:00:00', 'DateTo': '2022-01-16T21:59:59', 'Value': 0.001}, {'DateFrom': '2022-01-16T22:00:00', 'DateTo': '2022-01-16T22:59:59', 'Value': 0.003}, {'DateFrom': '2022-01-16T23:00:00', 'DateTo': '2022-01-16T23:59:59', 'Value': 0.0}], 'Total': {'Value': 0.176, 'DateFrom': '2022-01-16T00:00:00+01:00', 'DateTo': '2022-01-16T23:59:59+01:00'}, 'Average': {'Value': 0.015, 'DateFrom': '2022-01-16T08:00:00', 'DateTo': '2022-01-16T22:59:59'}, 'Maximum': {'Value': 0.071, 'DateFrom': '2022-01-16T08:00:00', 'DateTo': '2022-01-16T08:59:59'}, 'Minimum': {'Value': 0.001, 'DateFrom': '2022-01-16T21:00:00', 'DateTo': '2022-01-16T21:59:59'}, 'LastValidDate': '2022-01-16T23:59:59'}] 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 5 day(s) back in time from 2022-01-14T23:00:00.000Z to 2022-01-15T22:59:59.000Z 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [{'DateFrom': '2022-01-15T00:00:00', 'DateTo': '2022-01-15T00:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T01:00:00', 'DateTo': '2022-01-15T01:59:59', 'Value': 0.012}, {'DateFrom': '2022-01-15T02:00:00', 'DateTo': '2022-01-15T02:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T03:00:00', 'DateTo': '2022-01-15T03:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T04:00:00', 'DateTo': '2022-01-15T04:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T05:00:00', 'DateTo': '2022-01-15T05:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T06:00:00', 'DateTo': '2022-01-15T06:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T07:00:00', 'DateTo': '2022-01-15T07:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T08:00:00', 'DateTo': '2022-01-15T08:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T09:00:00', 'DateTo': '2022-01-15T09:59:59', 'Value': 0.011}, {'DateFrom': '2022-01-15T10:00:00', 'DateTo': '2022-01-15T10:59:59', 'Value': 0.005}, {'DateFrom': '2022-01-15T11:00:00', 'DateTo': '2022-01-15T11:59:59', 'Value': 0.005}, {'DateFrom': '2022-01-15T12:00:00', 'DateTo': '2022-01-15T12:59:59', 'Value': 0.003}, {'DateFrom': '2022-01-15T13:00:00', 'DateTo': '2022-01-15T13:59:59', 'Value': 0.037}, {'DateFrom': '2022-01-15T14:00:00', 'DateTo': '2022-01-15T14:59:59', 'Value': 0.002}, {'DateFrom': '2022-01-15T15:00:00', 'DateTo': '2022-01-15T15:59:59', 'Value': 0.005}, {'DateFrom': '2022-01-15T16:00:00', 'DateTo': '2022-01-15T16:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-15T17:00:00', 'DateTo': '2022-01-15T17:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-15T18:00:00', 'DateTo': '2022-01-15T18:59:59', 'Value': 0.016}, {'DateFrom': '2022-01-15T19:00:00', 'DateTo': '2022-01-15T19:59:59', 'Value': 0.026}, {'DateFrom': '2022-01-15T20:00:00', 'DateTo': '2022-01-15T20:59:59', 'Value': 0.003}, {'DateFrom': '2022-01-15T21:00:00', 'DateTo': '2022-01-15T21:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-15T22:00:00', 'DateTo': '2022-01-15T22:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-15T23:00:00', 'DateTo': '2022-01-15T23:59:59', 'Value': 0.004}], 'Total': {'Value': 0.141, 'DateFrom': '2022-01-15T00:00:00+01:00', 'DateTo': '2022-01-15T23:59:59+01:00'}, 'Average': {'Value': 0.009, 'DateFrom': '2022-01-15T01:00:00', 'DateTo': '2022-01-15T23:59:59'}, 'Maximum': {'Value': 0.037, 'DateFrom': '2022-01-15T13:00:00', 'DateTo': '2022-01-15T13:59:59'}, 'Minimum': {'Value': 0.002, 'DateFrom': '2022-01-15T14:00:00', 'DateTo': '2022-01-15T14:59:59'}, 'LastValidDate': '2022-01-15T23:59:59'}] 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 6 day(s) back in time from 2022-01-13T23:00:00.000Z to 2022-01-14T22:59:59.000Z 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [{'DateFrom': '2022-01-14T00:00:00', 'DateTo': '2022-01-14T00:59:59', 'Value': 0.007}, {'DateFrom': '2022-01-14T01:00:00', 'DateTo': '2022-01-14T01:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T02:00:00', 'DateTo': '2022-01-14T02:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T03:00:00', 'DateTo': '2022-01-14T03:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T04:00:00', 'DateTo': '2022-01-14T04:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T05:00:00', 'DateTo': '2022-01-14T05:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T06:00:00', 'DateTo': '2022-01-14T06:59:59', 'Value': 0.062}, {'DateFrom': '2022-01-14T07:00:00', 'DateTo': '2022-01-14T07:59:59', 'Value': 0.032}, {'DateFrom': '2022-01-14T08:00:00', 'DateTo': '2022-01-14T08:59:59', 'Value': 0.044}, {'DateFrom': '2022-01-14T09:00:00', 'DateTo': '2022-01-14T09:59:59', 'Value': 0.001}, {'DateFrom': '2022-01-14T10:00:00', 'DateTo': '2022-01-14T10:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T11:00:00', 'DateTo': '2022-01-14T11:59:59', 'Value': 0.002}, {'DateFrom': '2022-01-14T12:00:00', 'DateTo': '2022-01-14T12:59:59', 'Value': 0.02}, {'DateFrom': '2022-01-14T13:00:00', 'DateTo': '2022-01-14T13:59:59', 'Value': 0.009}, {'DateFrom': '2022-01-14T14:00:00', 'DateTo': '2022-01-14T14:59:59', 'Value': 0.013}, {'DateFrom': '2022-01-14T15:00:00', 'DateTo': '2022-01-14T15:59:59', 'Value': 0.017}, {'DateFrom': '2022-01-14T16:00:00', 'DateTo': '2022-01-14T16:59:59', 'Value': 0.006}, {'DateFrom': '2022-01-14T17:00:00', 'DateTo': '2022-01-14T17:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T18:00:00', 'DateTo': '2022-01-14T18:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T19:00:00', 'DateTo': '2022-01-14T19:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T20:00:00', 'DateTo': '2022-01-14T20:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T21:00:00', 'DateTo': '2022-01-14T21:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T22:00:00', 'DateTo': '2022-01-14T22:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-14T23:00:00', 'DateTo': '2022-01-14T23:59:59', 'Value': 0.0}], 'Total': {'Value': 0.213, 'DateFrom': '2022-01-14T00:00:00+01:00', 'DateTo': '2022-01-14T23:59:59+01:00'}, 'Average': {'Value': 0.019, 'DateFrom': '2022-01-14T00:00:00', 'DateTo': '2022-01-14T16:59:59'}, 'Maximum': {'Value': 0.062, 'DateFrom': '2022-01-14T06:00:00', 'DateTo': '2022-01-14T06:59:59'}, 'Minimum': {'Value': 0.001, 'DateFrom': '2022-01-14T09:00:00', 'DateTo': '2022-01-14T09:59:59'}, 'LastValidDate': '2022-01-14T23:59:59'}] 2022-01-20 08:28:06 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Getting Hour data 7 day(s) back in time from 2022-01-12T23:00:00.000Z to 2022-01-13T22:59:59.000Z 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] timeseries = [{'Data': [{'DateFrom': '2022-01-13T00:00:00', 'DateTo': '2022-01-13T00:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-13T01:00:00', 'DateTo': '2022-01-13T01:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-13T02:00:00', 'DateTo': '2022-01-13T02:59:59', 'Value': 0.007}, {'DateFrom': '2022-01-13T03:00:00', 'DateTo': '2022-01-13T03:59:59', 'Value': 0.061}, {'DateFrom': '2022-01-13T04:00:00', 'DateTo': '2022-01-13T04:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-13T05:00:00', 'DateTo': '2022-01-13T05:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-13T06:00:00', 'DateTo': '2022-01-13T06:59:59', 'Value': 0.036}, {'DateFrom': '2022-01-13T07:00:00', 'DateTo': '2022-01-13T07:59:59', 'Value': 0.026}, {'DateFrom': '2022-01-13T08:00:00', 'DateTo': '2022-01-13T08:59:59', 'Value': 0.047}, {'DateFrom': '2022-01-13T09:00:00', 'DateTo': '2022-01-13T09:59:59', 'Value': 0.03}, {'DateFrom': '2022-01-13T10:00:00', 'DateTo': '2022-01-13T10:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-13T11:00:00', 'DateTo': '2022-01-13T11:59:59', 'Value': 0.051}, {'DateFrom': '2022-01-13T12:00:00', 'DateTo': '2022-01-13T12:59:59', 'Value': 0.005}, {'DateFrom': '2022-01-13T13:00:00', 'DateTo': '2022-01-13T13:59:59', 'Value': 0.0}, {'DateFrom': '2022-01-13T14:00:00', 'DateTo': '2022-01-13T14:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-13T15:00:00', 'DateTo': '2022-01-13T15:59:59', 'Value': 0.015}, {'DateFrom': '2022-01-13T16:00:00', 'DateTo': '2022-01-13T16:59:59', 'Value': 0.061}, {'DateFrom': '2022-01-13T17:00:00', 'DateTo': '2022-01-13T17:59:59', 'Value': 0.018}, {'DateFrom': '2022-01-13T18:00:00', 'DateTo': '2022-01-13T18:59:59', 'Value': 0.007}, {'DateFrom': '2022-01-13T19:00:00', 'DateTo': '2022-01-13T19:59:59', 'Value': 0.021}, {'DateFrom': '2022-01-13T20:00:00', 'DateTo': '2022-01-13T20:59:59', 'Value': 0.012}, {'DateFrom': '2022-01-13T21:00:00', 'DateTo': '2022-01-13T21:59:59', 'Value': 0.003}, {'DateFrom': '2022-01-13T22:00:00', 'DateTo': '2022-01-13T22:59:59', 'Value': 0.004}, {'DateFrom': '2022-01-13T23:00:00', 'DateTo': '2022-01-13T23:59:59', 'Value': 0.0}], 'Total': {'Value': 0.412, 'DateFrom': '2022-01-13T00:00:00+01:00', 'DateTo': '2022-01-13T23:59:59+01:00'}, 'Average': {'Value': 0.023, 'DateFrom': '2022-01-13T00:00:00', 'DateTo': '2022-01-13T22:59:59'}, 'Maximum': {'Value': 0.061, 'DateFrom': '2022-01-13T03:00:00', 'DateTo': '2022-01-13T03:59:59'}, 'Minimum': {'Value': 0.003, 'DateFrom': '2022-01-13T21:00:00', 'DateTo': '2022-01-13T21:59:59'}, 'LastValidDate': '2022-01-13T23:59:59'}] 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T00:00:00 - 2022-01-13T00:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T01:00:00 - 2022-01-13T01:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T02:00:00 - 2022-01-13T02:59:59 - 0.007 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T03:00:00 - 2022-01-13T03:59:59 - 0.061 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T04:00:00 - 2022-01-13T04:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T05:00:00 - 2022-01-13T05:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T06:00:00 - 2022-01-13T06:59:59 - 0.036 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T07:00:00 - 2022-01-13T07:59:59 - 0.026 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T08:00:00 - 2022-01-13T08:59:59 - 0.047 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T09:00:00 - 2022-01-13T09:59:59 - 0.03 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T10:00:00 - 2022-01-13T10:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T11:00:00 - 2022-01-13T11:59:59 - 0.051 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T12:00:00 - 2022-01-13T12:59:59 - 0.005 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T13:00:00 - 2022-01-13T13:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T14:00:00 - 2022-01-13T14:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T15:00:00 - 2022-01-13T15:59:59 - 0.015 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T16:00:00 - 2022-01-13T16:59:59 - 0.061 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T17:00:00 - 2022-01-13T17:59:59 - 0.018 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T18:00:00 - 2022-01-13T18:59:59 - 0.007 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T19:00:00 - 2022-01-13T19:59:59 - 0.021 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T20:00:00 - 2022-01-13T20:59:59 - 0.012 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T21:00:00 - 2022-01-13T21:59:59 - 0.003 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T22:00:00 - 2022-01-13T22:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-13T23:00:00 - 2022-01-13T23:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T00:00:00 - 2022-01-14T00:59:59 - 0.007 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T01:00:00 - 2022-01-14T01:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T02:00:00 - 2022-01-14T02:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T03:00:00 - 2022-01-14T03:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T04:00:00 - 2022-01-14T04:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T05:00:00 - 2022-01-14T05:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T06:00:00 - 2022-01-14T06:59:59 - 0.062 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T07:00:00 - 2022-01-14T07:59:59 - 0.032 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T08:00:00 - 2022-01-14T08:59:59 - 0.044 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T09:00:00 - 2022-01-14T09:59:59 - 0.001 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T10:00:00 - 2022-01-14T10:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T11:00:00 - 2022-01-14T11:59:59 - 0.002 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T12:00:00 - 2022-01-14T12:59:59 - 0.02 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T13:00:00 - 2022-01-14T13:59:59 - 0.009 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T14:00:00 - 2022-01-14T14:59:59 - 0.013 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T15:00:00 - 2022-01-14T15:59:59 - 0.017 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T16:00:00 - 2022-01-14T16:59:59 - 0.006 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T17:00:00 - 2022-01-14T17:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T18:00:00 - 2022-01-14T18:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T19:00:00 - 2022-01-14T19:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T20:00:00 - 2022-01-14T20:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T21:00:00 - 2022-01-14T21:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T22:00:00 - 2022-01-14T22:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-14T23:00:00 - 2022-01-14T23:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T00:00:00 - 2022-01-15T00:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T01:00:00 - 2022-01-15T01:59:59 - 0.012 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T02:00:00 - 2022-01-15T02:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T03:00:00 - 2022-01-15T03:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T04:00:00 - 2022-01-15T04:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T05:00:00 - 2022-01-15T05:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T06:00:00 - 2022-01-15T06:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T07:00:00 - 2022-01-15T07:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T08:00:00 - 2022-01-15T08:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T09:00:00 - 2022-01-15T09:59:59 - 0.011 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T10:00:00 - 2022-01-15T10:59:59 - 0.005 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T11:00:00 - 2022-01-15T11:59:59 - 0.005 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T12:00:00 - 2022-01-15T12:59:59 - 0.003 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T13:00:00 - 2022-01-15T13:59:59 - 0.037 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T14:00:00 - 2022-01-15T14:59:59 - 0.002 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T15:00:00 - 2022-01-15T15:59:59 - 0.005 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T16:00:00 - 2022-01-15T16:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T17:00:00 - 2022-01-15T17:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T18:00:00 - 2022-01-15T18:59:59 - 0.016 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T19:00:00 - 2022-01-15T19:59:59 - 0.026 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T20:00:00 - 2022-01-15T20:59:59 - 0.003 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T21:00:00 - 2022-01-15T21:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T22:00:00 - 2022-01-15T22:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-15T23:00:00 - 2022-01-15T23:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T00:00:00 - 2022-01-16T00:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T01:00:00 - 2022-01-16T01:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T02:00:00 - 2022-01-16T02:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T03:00:00 - 2022-01-16T03:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T04:00:00 - 2022-01-16T04:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T05:00:00 - 2022-01-16T05:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T06:00:00 - 2022-01-16T06:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T07:00:00 - 2022-01-16T07:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T08:00:00 - 2022-01-16T08:59:59 - 0.071 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T09:00:00 - 2022-01-16T09:59:59 - 0.023 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T10:00:00 - 2022-01-16T10:59:59 - 0.003 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T11:00:00 - 2022-01-16T11:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T12:00:00 - 2022-01-16T12:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T13:00:00 - 2022-01-16T13:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T14:00:00 - 2022-01-16T14:59:59 - 0.015 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T15:00:00 - 2022-01-16T15:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T16:00:00 - 2022-01-16T16:59:59 - 0.011 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T17:00:00 - 2022-01-16T17:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T18:00:00 - 2022-01-16T18:59:59 - 0.019 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T19:00:00 - 2022-01-16T19:59:59 - 0.013 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T20:00:00 - 2022-01-16T20:59:59 - 0.009 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T21:00:00 - 2022-01-16T21:59:59 - 0.001 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T22:00:00 - 2022-01-16T22:59:59 - 0.003 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-16T23:00:00 - 2022-01-16T23:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T00:00:00 - 2022-01-17T00:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T01:00:00 - 2022-01-17T01:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T02:00:00 - 2022-01-17T02:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T03:00:00 - 2022-01-17T03:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T04:00:00 - 2022-01-17T04:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T05:00:00 - 2022-01-17T05:59:59 - 0.029 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T06:00:00 - 2022-01-17T06:59:59 - 0.058 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T07:00:00 - 2022-01-17T07:59:59 - 0.035 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T08:00:00 - 2022-01-17T08:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T09:00:00 - 2022-01-17T09:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T10:00:00 - 2022-01-17T10:59:59 - 0.007 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T11:00:00 - 2022-01-17T11:59:59 - 0.007 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T12:00:00 - 2022-01-17T12:59:59 - 0.055 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T13:00:00 - 2022-01-17T13:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T14:00:00 - 2022-01-17T14:59:59 - 0.005 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T15:00:00 - 2022-01-17T15:59:59 - 0.017 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T16:00:00 - 2022-01-17T16:59:59 - 0.006 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T17:00:00 - 2022-01-17T17:59:59 - 0.032 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T18:00:00 - 2022-01-17T18:59:59 - 0.143 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T19:00:00 - 2022-01-17T19:59:59 - 0.016 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T20:00:00 - 2022-01-17T20:59:59 - 0.017 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T21:00:00 - 2022-01-17T21:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T22:00:00 - 2022-01-17T22:59:59 - 0.008 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-17T23:00:00 - 2022-01-17T23:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T00:00:00 - 2022-01-18T00:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T01:00:00 - 2022-01-18T01:59:59 - 0.008 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T02:00:00 - 2022-01-18T02:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T03:00:00 - 2022-01-18T03:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T04:00:00 - 2022-01-18T04:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T05:00:00 - 2022-01-18T05:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T06:00:00 - 2022-01-18T06:59:59 - 0.03 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T07:00:00 - 2022-01-18T07:59:59 - 0.017 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T08:00:00 - 2022-01-18T08:59:59 - 0.003 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T09:00:00 - 2022-01-18T09:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T10:00:00 - 2022-01-18T10:59:59 - 0.01 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T11:00:00 - 2022-01-18T11:59:59 - 0.004 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T12:00:00 - 2022-01-18T12:59:59 - 0.015 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T13:00:00 - 2022-01-18T13:59:59 - 0.047 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T14:00:00 - 2022-01-18T14:59:59 - 0.042 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T15:00:00 - 2022-01-18T15:59:59 - 0.039 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T16:00:00 - 2022-01-18T16:59:59 - 0.015 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T17:00:00 - 2022-01-18T17:59:59 - 0.01 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T18:00:00 - 2022-01-18T18:59:59 - 0.038 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T19:00:00 - 2022-01-18T19:59:59 - 0.008 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T20:00:00 - 2022-01-18T20:59:59 - 0.01 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T21:00:00 - 2022-01-18T21:59:59 - 0.009 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T22:00:00 - 2022-01-18T22:59:59 - 0.0 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] 2022-01-18T23:00:00 - 2022-01-18T23:59:59 - 0.009 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos] Done fetching data from Novafos 2022-01-20 08:28:07 DEBUG (SyncWorker_1) [custom_components.novafos.sensor] Updated status for Novafos Year Total 2022-01-20 08:28:07 DEBUG (SyncWorker_10) [custom_components.novafos.sensor] Updated status for Novafos Month Total 2022-01-20 08:28:07 DEBUG (SyncWorker_11) [custom_components.novafos.sensor] Updated status for Novafos Day Total 2022-01-20 08:28:07 DEBUG (SyncWorker_0) [custom_components.novafos.sensor] Updated status for Novafos Hour 2022-01-20 08:28:07 DEBUG (SyncWorker_13) [custom_components.novafos.sensor] Updated status for Novafos Valid Date for data 2022-01-20 08:28:33 DEBUG (SyncWorker_0) [custom_components.novafos.sensor] Updated status for Novafos Year Total 2022-01-20 08:28:33 DEBUG (SyncWorker_13) [custom_components.novafos.sensor] Updated status for Novafos Month Total 2022-01-20 08:28:33 DEBUG (SyncWorker_2) [custom_components.novafos.sensor] Updated status for Novafos Day Total 2022-01-20 08:28:33 DEBUG (SyncWorker_5) [custom_components.novafos.sensor] Updated status for Novafos Hour 2022-01-20 08:28:33 DEBUG (SyncWorker_16) [custom_components.novafos.sensor] Updated status for Novafos Valid Date for data

kpoppel commented 2 years ago

That was fast, thank-you for that.

So the_LOGGER bug I'l look into that. Luckily this is not needed normally unless looking for some cause of error.

For the auth_url, maybe I should just make this a configuration field at setup time. I am not a fan of just trying either because it could attract attention from KMD if many keep accessing the wrong endpoint. That and updated instruction on how to identify this URL.

For the sensors I am pretty happy with the ones having state at yearly, monthly and daily level. The last valid date sensor will at least explain if these won't move for some days.

The hourly sensor I am less happy about. Right now it returns hour data from the last valid date, so if several days pass the same values will be reported as sensor.state - which is obviously totally wrong.

In the attributes there are also min/max/average values available which users can make their own sensors from, or use directly in apexcharts. I didn't want to make sensors from them because all can in practice be inferred from the sensor.state values themselves.

I would appreciate your input on the hour sensor. How should the state of it behave?

Sdahl1234 commented 2 years ago

I dont know if this is what's causing the _logger issue.

I have this in my log today Logger: homeassistant.components.statistics.sensor Source: components/statistics/sensor.py:282 Integration: statistics (documentation, issues) First occurred: 09.28.57 (1 occurrences) Last logged: 09.28.57

sensor.water_monthly_statistics: parsing error, expected number and received None

and this is from the debug log posted 2 days ago (didnt turn on debug log today :-) ) 2022-01-20 08:28:05 DEBUG (SyncWorker_1) [custom_components.novafos.pynovafos.novafos] Month Total/Avg/Min/Max: 4.796 / 0.0 / 0.0 / 0.0

image

kpoppel commented 2 years ago

Interesting. How is the sensor.water_monthly_statistics sensor defined? That one is not delivered from this integration. Because it is January, the Avg/Min/Max values are 0 and dates null. As soon as we go into Feburary, they should begin getting values. The is an edge case, and one could consider to 'fix' the API by just copying in the actual value from January and the valid dates (DateFrom and DateTo fields in the Data attribute). Funny they are not doing that actually.

kpoppel commented 2 years ago

I hope I found the _LOGGER issue above. Also I fixed the auth_url to match the one you wrote. Apparently this works for me as well, even though the browser actually accesses the . subdomain. Probably alised to the same thing.

I also made it so that the hour sensor reports the correct hourly value back from yesterday if and only if the data is from yesterday. Otherwise it returns python None, which hopefully is translated into "unknown" in HA.

Pull main and give it a whirl.

kpoppel commented 2 years ago

Wow, that API is no fun. Two runs 5 minutes apart, and data validity is off by either 1 or two days:

Run 1:

                {
                    "DateFrom": "2022-01-21T00:00:00+01:00",
                    "DateTo": "2022-01-21T23:59:59+01:00",
                    "Value": 0.004,
                    "UnitName": "m\u00b3",
                    "Label": "",
                    "IsComplete": false,  <-- that one
                    "IsSettlement": false
                },

Run 2:

                {
                    "DateFrom": "2022-01-21T00:00:00+01:00",
                    "DateTo": "2022-01-21T23:59:59+01:00",
                    "Value": 0.236,
                    "UnitName": "m\u00b3",
                    "Label": "",
                    "IsComplete": true,  <-- that one
                    "IsSettlement": false
                },

Hopefully this is not a problem when fetching data every 6 hours.

Sdahl1234 commented 2 years ago

Now i have tested the latest version and all is running smooth :-) The sensor.water_monthly_statistics sensor was a sensor i forgot to remove when i change to the the version of the integration

Nice work.

kpoppel commented 2 years ago

Great. I will cut version 1.0.0 using this implementation.