kpoppel / homeassistant-novafos

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

Novafos integration fejler. #9

Closed askpet closed 1 year ago

askpet commented 1 year ago

Hej,

I dag fejler Novafos med:

Logger: custom_components.novafos.coordinator Source: custom_components/novafos/coordinator.py:50 Integration: Novafos (documentation, issues) First occurred: 00.57.43 (7 occurrences) Last logged: 08.03.43

Unexpected error fetching Novafos data: 'NoneType' object is not subscriptable Traceback (most recent call last): File "/config/custom_components/novafos/coordinator.py", line 48, in _async_update_data data = await self.hass.async_add_executor_job(self.api.get_latest) File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/novafos/pynovafos/novafos.py", line 469, in get_latest self._get_day_data() File "/config/custom_components/novafos/pynovafos/novafos.py", line 406, in _get_day_data _LOGGER.debug(f"Day Total/Avg/Min/Max/ValidDate: {time_series[0]['Total']['Value']} / {time_series[0]['Average']['Value']} / {time_series[0]['Minimum']['Value']} / {time_series[0]['Maximum']['Value']} / {self._last_valid_day}") TypeError: 'NoneType' object is not subscriptable

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh self.data = await self._async_update_data() File "/config/custom_components/novafos/coordinator.py", line 50, in _async_update_data raise ConfigEntryNotReady from error homeassistant.exceptions.ConfigEntryNotReady: 'NoneType' object is not subscriptable

Sig til hvis du skal bruge mere.

kpoppel commented 1 year ago

Tak. Det ser jeg på.

kpoppel commented 1 year ago

Ok, jeg tror jeg ved hvad der er årsagen. I min egen log ser jeg samme ting:

2022-09-01 00:31:23.107 DEBUG (SyncWorker_0) [custom_components.novafos.pynovafos.novafos] Getting Day data from 2022-09-01T00:00:00.000Z to 2022-09-30T00:00:00.000Z
2022-09-01 00:31:23.363 ERROR (MainThread) [custom_components.novafos.coordinator] Unexpected error fetching Novafos data: 'NoneType' object is not subscriptable
...osv...

Tidspunktet er lige efter midnat ved månedsovergangen, hvor der meget sansynligt ikke eksisterer dagsdata for september endnu jo. 6 timer senere ser det hele ok ud igen.

2022-09-01 06:31:26.556 DEBUG (SyncWorker_10) [custom_components.novafos.pynovafos.novafos] Getting Day data from 2022-09-01T00:00:00.000Z to 2022-09-30T00:00:00.000Z

Næste gang jeg ser på koden må jeg lige have set på at komme forbi de manglende data på en pæn måde.

kpoppel commented 1 year ago

https://github.com/kpoppel/homeassistant-novafos/releases/tag/v2.1.2 skulle gerne fikse denne fejl. Det vil vise sig til Oktober.

runemoennike commented 1 year ago

Hej @kpoppel

Tak for din hurtige opdatering. I "Watts"-appen er mine forbrugsdata stadig fra august, og der står også en undskyldning om at de godt ved de er forsinkede. Jeg tænkte det måske ville interessere dig (høh) at jeg stadig for fejlen, siden min data jo er fra forrige måned stadig. Jeg har opdateret til 2.1.2 og genstartet HA Core, det burde vel være nok til at få den nye kode?

Logger: custom_components.novafos.coordinator
Source: custom_components/novafos/coordinator.py:50
Integration: Novafos ([documentation](https://github.com/kpoppel/homeassistant-novafos), [issues](https://github.com/kpoppel/homeassistant-novafos/issues))
First occurred: 09:53:02 (5 occurrences)
Last logged: 09:54:42
Unexpected error fetching Novafos data: 'NoneType' object is not subscriptable

Traceback (most recent call last):
  File "/config/custom_components/novafos/coordinator.py", line 48, in _async_update_data
    data = await self.hass.async_add_executor_job(self.api.get_latest)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/novafos/pynovafos/novafos.py", line 480, in get_latest
    self._get_day_data()
  File "/config/custom_components/novafos/pynovafos/novafos.py", line 417, in _get_day_data
    _LOGGER.debug(f"Day Total/Avg/Min/Max/ValidDate: {time_series[0]['Total']['Value']} / {time_series[0]['Average']['Value']} / {time_series[0]['Minimum']['Value']} / {time_series[0]['Maximum']['Value']} / {self._last_valid_day}")
TypeError: 'NoneType' object is not subscriptable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh
    self.data = await self._async_update_data()
  File "/config/custom_components/novafos/coordinator.py", line 50, in _async_update_data
    raise ConfigEntryNotReady from error
homeassistant.exceptions.ConfigEntryNotReady: 'NoneType' object is not subscriptable

Sig til hvis der er andet jeg kan hjælpe med, jeg er forholdvis velbefærtet i softwareudvikling, men er ny i HA-verden.

kpoppel commented 1 year ago

Jamen, så genåbner vi da lige denne her. Kan jeg lokke dig til at ændre denne linje https://github.com/kpoppel/homeassistant-novafos/blob/774c506eaa3349b865c61feeecd29a7f721faa1e/custom_components/novafos/pynovafos/novafos.py#L333 til _LOGGER.debug(json.dumps(result_json, sort_keys = False, indent = 4)), og slå debug output til i configuration.yaml som der står i README.md . Loggen bliver nu fyldt af en masse ekstra information, herunder json som returneres fra APIet. Det ville hjælpe til at finde ud af hvad der egentlig returneres når daga-data ikke er klar. Et eksempel på det jeg leder efter findes du her: https://github.com/kpoppel/homeassistant-novafos/blob/774c506eaa3349b865c61feeecd29a7f721faa1e/custom_components/novafos/pynovafos/novafos.py#L253

KBrygger commented 1 year ago

Jeg har samme fejl som ovenstående. I flere dage er min log fyldt op med fejltekst og entities står som 'Unavailable'. Novafos har tilsyneladende nogle fejl, min Watt's app fortæller det og er over 1 uge bagud med dataindsamling.

runemoennike commented 1 year ago

@kpoppel det må være det her du skal bruge:

image

(Jeg kan desværre ikke tilgå min HA på SSH lige her, og man kan ikke kopiere tekst fra Terminal add-on'en, åbenbart)

kpoppel commented 1 year ago

Yep, det giver da et indtryk omkring hvad der sker. Jeg prøver at se på det hurtigst muligt.

kpoppel commented 1 year ago

v2.1.3 skulle gerne fjerne exceptions og håndtere det lidt pænere. Hvis det kan bekræftes, så marker venligst issuet som lukket.

runemoennike commented 1 year ago

Mange tak for det. Jeg får nu ingen fejl i loggen, blot en warning "The KMD API returned no hourly data. Expect sensors to signal 'unavailable'" hvilket må være som forventligt.

Det pudsige er så, at jeg har timevis data, for perioden 30/8 01:00 til 1/9 15:00. Jeg har også month total og year total, hvilket er perfekt. Valid_date_data_for_data er dog "unavailable" hvilket er det eneste der virker en smule mærkeligt.

Jeg er dog glad for at have year total og ingen fejl, så for min skyld kan den lukkes.

kpoppel commented 1 year ago

Tak for meldingen.

valid_date bliver sat ud fra dags-data idet der her er et felt for om døgnaflæsningen er en målt værdi. Det er desværre det eneste sted jeg objektivt kan fiske ud om aflæsningen er valid, og hvilken dato det nu var.

Jeg lukker denne her, og hvis der opstår nye ting, er der plads til flere issues ;-)

runemoennike commented 1 year ago

Det giver mening :) Tak for arbejdet!

askpet commented 1 year ago

Mange tak for det. Jeg får nu ingen fejl i loggen, blot en warning "The KMD API returned no hourly data. Expect sensors to signal 'unavailable'" hvilket må være som forventligt.

Det pudsige er så, at jeg har timevis data, for perioden 30/8 01:00 til 1/9 15:00. Jeg har også month total og year total, hvilket er perfekt. Valid_date_data_for_data er dog "unavailable" hvilket er det eneste der virker en smule mærkeligt.

Jeg er dog glad for at have year total og ingen fejl, så for min skyld kan den lukkes.

Jeg får også opdateret.

Når jeg går ind og ser data via Novafos selvbetjening, så ligger der data fra i dag, med ca 6-8 timers forsinkelse. Men dato Valid_date_for_dato er altid 23.59 dagen før.

Min "hourly" har aldrig vist andet en unavailable.

Så der er lige lidt vej endnu, men skønt at nogen gider arbejde med det