BJReplay / ha-solcast-solar

Solcast Integration for Home Assistant
Apache License 2.0
165 stars 32 forks source link

Exception in energy.py on HA startup. #74

Closed autoSteve closed 3 months ago

autoSteve commented 3 months ago

Describe the bug On startup the domain solcast_solar may not yet exist, and if the Energy Dashboard requests data it will result in exceptions. It should produce a warning instead.

To Reproduce Happens very infrequently, and in trying to reproduce this I could not. The issue is clear, though; the integration is not yet fully configured at the time that the Energy Dashboard makes its request.

Logs

2024-07-05 17:19:25.776 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140068014554656] Error handling message: Unknown error (unknown_error) Steve Saunders from 192.168.10.37
(Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 28, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/energy/websocket_api.py", line 99, in with_manager
    await result
  File "/usr/src/homeassistant/homeassistant/components/energy/websocket_api.py", line 231, in ws_solar_forecast
    forecast = await forecast_platforms[config_entry.domain](hass, config_entry_id)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solcast_solar/energy.py", line 13, in async_get_solar_forecast
    coordinator: SolcastUpdateCoordinator = hass.data[DOMAIN][config_entry_id]
                                            ~~~~~~~~~^^^^^^^^
KeyError: 'solcast_solar'
2024-07-05 17:19:25.786 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - sites_data http session returned status 200/Success
2024-07-05 17:19:25.787 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - writing sites cache
2024-07-05 17:19:25.865 INFO (MainThread) [homeassistant.setup] Setting up template
2024-07-05 17:19:25.867 INFO (MainThread) [homeassistant.setup] Setup of domain template took 0.00 seconds
2024-07-05 17:19:25.868 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.869 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.870 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.870 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.872 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.873 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.874 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.875 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.876 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.877 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.878 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.879 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.880 INFO (MainThread) [homeassistant.components.sensor] Setting up template.sensor
2024-07-05 17:19:25.882 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - sites_data: {'sites': [{'name': 'Iris North-East', 'resource_id': 'b68d-c05a-c2b3-2cf9', 'capacity': 6.857, 'capacity_dc': 7.92, 'longitude': **.******, 'latitude': **.******, 'azimuth': -67, 'tilt': 26, 'loss_factor': 0.95, 'tags': []}, {'name': 'Iris North-West', 'resource_id': '83d5-ab72-2a9a-2397', 'capacity': 5.243, 'capacity_dc': 5.72, 'longitude': **.******, 'latitude': **.******, 'azimuth': 27, 'tilt': 17, 'loss_factor': 0.95, 'tags': []}], 'page_count': 1, 'current_page': 1, 'total_records': 2}
2024-07-05 17:19:25.882 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - getting API limit and usage from solcast for ******NV8ggJ
2024-07-05 17:19:25.882 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - API usage cache exists
2024-07-05 17:19:25.885 INFO (MainThread) [homeassistant.setup] Setting up moon
2024-07-05 17:19:25.885 INFO (MainThread) [homeassistant.setup] Setup of domain moon took 0.00 seconds
2024-07-05 17:19:25.886 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140068014554656] Error handling message: Unknown error (unknown_error) Steve Saunders from 192.168.10.37 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 28, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/energy/websocket_api.py", line 99, in with_manager
    await result
  File "/usr/src/homeassistant/homeassistant/components/energy/websocket_api.py", line 231, in ws_solar_forecast
    forecast = await forecast_platforms[config_entry.domain](hass, config_entry_id)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solcast_solar/energy.py", line 13, in async_get_solar_forecast
    coordinator: SolcastUpdateCoordinator = hass.data[DOMAIN][config_entry_id]
                                            ~~~~~~~~~^^^^^^^^
KeyError: 'solcast_solar'
2024-07-05 17:19:25.926 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - sites_usage http session returned status 200/Success
2024-07-05 17:19:25.926 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - writing API usage cache file: /config/solcast-usage.json
2024-07-05 17:19:25.946 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - API counter for ******NV8ggJ is 8/10
2024-07-05 17:19:26.004 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - load_saved_data file exists: file type is <class 'dict'>
2024-07-05 17:19:26.139 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - calcForecastStartIndex midnight_utc 2024-07-04 14:00:00+00:00, idx 3694, len 4079
2024-07-05 17:19:26.161 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-05 contains all 48 records
2024-07-05 17:19:26.161 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-06 contains all 48 records
2024-07-05 17:19:26.161 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-07 contains all 48 records
2024-07-05 17:19:26.162 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-08 contains all 48 records
2024-07-05 17:19:26.162 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-09 contains all 48 records
2024-07-05 17:19:26.162 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-10 contains all 48 records
2024-07-05 17:19:26.163 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-11 contains all 48 records
2024-07-05 17:19:26.164 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - Data for 2024-07-12 contains all 48 records
2024-07-05 17:19:26.164 DEBUG (MainThread) [custom_components.solcast_solar.solcastapi] SOLCAST - buildforecastdata processing took 0.1599s

Solcast Integration Version 4.0.36

autoSteve commented 3 months ago

This "issue" causes no issue. It is just alarming noise, but a fix is done.