Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tolo integration does not catch communication errors #137305

Open
MatthiasLohr opened this issue Feb 4, 2025 · 1 comment
Open

tolo integration does not catch communication errors #137305

MatthiasLohr opened this issue Feb 4, 2025 · 1 comment

Comments

@MatthiasLohr
Copy link
Contributor

The problem

The tolo integration experiences errors when the configured device is not available (e.g., due to an IP address change). According to https://developers.home-assistant.io/docs/integration_setup_failures/, these errors should be caught and instead, a ConfigEntryNotReady should be raised. This needs to be fixed.

What version of Home Assistant Core has the issue?

core-2025.1.4

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

tolo

Link to integration documentation on our website

https://www.home-assistant.io/integrations/tolo/

Diagnostics information

No response

Example YAML snippet

Anything in the logs that might be useful for us?

2025-02-04 10:06:19.172 ERROR (MainThread) [homeassistant.bootstrap] Error setting up integration tolo - received exception
Traceback (most recent call last):
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/setup.py", line 185, in async_setup_component
    await future
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/setup.py", line 185, in async_setup_component
    await future
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/setup.py", line 165, in async_setup_component
    result = await _async_setup_component(hass, domain, config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/setup.py", line 461, in _async_setup_component
    await asyncio.gather(
    ...<11 lines>...
    )
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/config_entries.py", line 782, in async_setup_locked
    await self.async_setup(hass, integration=integration)
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/config_entries.py", line 548, in async_setup
    await self.__async_setup_with_context(hass, integration)
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/config_entries.py", line 637, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/components/tolo/__init__.py", line 28, in async_setup_entry
    await coordinator.async_config_entry_first_refresh()
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/helpers/update_coordinator.py", line 300, in async_config_entry_first_refresh
    await self._async_refresh(
        log_failures=False, raise_on_auth_failed=True, raise_on_entry_error=True
    )
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/helpers/update_coordinator.py", line 373, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/components/tolo/coordinator.py", line 46, in _async_update_data
    return await self.hass.async_add_executor_job(self._get_tolo_sauna_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/mlohr/Projects/MatthiasLohr/home-assistant-core/homeassistant/components/tolo/coordinator.py", line 50, in _get_tolo_sauna_data
    status = self.client.get_status()
  File "/home/mlohr/Projects/MatthiasLohr/tololib/tololib/client.py", line 62, in get_status
    response = self._communicate(Message(Command.GET_STATUS, b"\x11", b"\xff"))
  File "/home/mlohr/Projects/MatthiasLohr/tololib/tololib/client.py", line 303, in _communicate
    raise ToloCommunicationError(f"failed to send message after {self._retry_count} attempts")
tololib.client.ToloCommunicationError: failed to send message after 3 attempts

Additional information

No response

@home-assistant
Copy link

home-assistant bot commented Feb 4, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant