CharlesGillanders / alphaess-openAPI

This Python library uses the Alpha ESS Open API to retrieve data on your Alpha ESS inverter, photovoltaic panels, and battery if you have one.
MIT License
9 stars 5 forks source link

Prevent log spam from API of the first two calls on a new day #6

Open dan-s-github opened 10 months ago

dan-s-github commented 10 months ago

seems that AlphaESS has made some changes to the API and does not accept requests the first few requests after local day change. It would be nice if this could be prevented from creating error logs if it doesn't persist.

Log entries from last three days contains The network is busy only on two days but always at same time

2023-12-12 00:01:03.085 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6026, 'msg': 'The network is busy', 'expMsg': None, 'data': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:01:03.088 WARNING (MainThread) [alphaess.alphaess] Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:01:04.627 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 745, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 845, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 786, in _async_generate_attributes
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 751, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 501, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/sensor.py", line 244, in native_value
    return self._coordinator.data[self._serial][self._name]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'Solar Production'
2023-12-12 00:02:06.084 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6026, 'msg': 'The network is busy', 'expMsg': None, 'data': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:02:06.086 WARNING (MainThread) [alphaess.alphaess] Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:02:07.623 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 745, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 845, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 786, in _async_generate_attributes
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 751, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 501, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/sensor.py", line 244, in native_value
    return self._coordinator.data[self._serial][self._name]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'Solar Production'
2023-12-12 00:03:09.550 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6026, 'msg': 'The network is busy', 'expMsg': None, 'data': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:03:09.554 WARNING (MainThread) [alphaess.alphaess] Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:03:11.090 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 745, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 845, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 786, in _async_generate_attributes
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 751, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 501, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/sensor.py", line 244, in native_value
    return self._coordinator.data[self._serial][self._name]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'Solar Production'
2023-12-12 00:04:13.104 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6026, 'msg': 'The network is busy', 'expMsg': None, 'data': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:04:13.107 WARNING (MainThread) [alphaess.alphaess] Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-12
2023-12-12 00:04:14.657 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 745, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 845, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 786, in _async_generate_attributes
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 751, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 501, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/sensor.py", line 244, in native_value
    return self._coordinator.data[self._serial][self._name]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'Solar Production'
2023-12-14 00:01:00.261 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6026, 'msg': 'The network is busy', 'expMsg': None, 'data': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-14
2023-12-14 00:01:00.264 WARNING (MainThread) [alphaess.alphaess] Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-14
2023-12-14 00:01:01.942 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 745, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 845, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 786, in _async_generate_attributes
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 751, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 501, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/sensor.py", line 244, in native_value
    return self._coordinator.data[self._serial][self._name]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'Solar Production'
2023-12-14 00:02:03.021 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6026, 'msg': 'The network is busy', 'expMsg': None, 'data': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-14
2023-12-14 00:02:03.025 WARNING (MainThread) [alphaess.alphaess] Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=AL2002118050331&queryDate=2023-12-14
2023-12-14 00:02:04.483 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 745, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 845, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 786, in _async_generate_attributes
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 751, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 501, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/sensor.py", line 244, in native_value
    return self._coordinator.data[self._serial][self._name]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'Solar Production'
dan-s-github commented 10 months ago

not sure if this is related to upstream issue 53