core: API - daily limit exceeded

The problem

Today I got the error message that the daily limit exceeded: To be honest I really can’t imagine why. I installed the fix from @CFenner 2 days ago and it worked fine for me (till now or 2 hours ago). Is there again some trouble with the API?

What version of Home Assistant Core has the issue?

core-2024.1.3

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

Viessmann ViCare

Link to integration documentation on our website

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

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:238
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 18:32:10 (2 occurrences)
Last logged: 18:33:14

[546115360192] (PyViCareRateLimitError(...), 'API rate limit development portal "99f6f755-e18a-47c9-84aa-242a07cf9a0c" daily limit exceeded. Max 1450 calls in timewindow. Limit reset at 2024-01-17T00:00:03.760000.')
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 238, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2149, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2186, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 272, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 882, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 952, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 440, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 334, in async_set_temperature
    await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/vicare/water_heater.py", line 148, in set_temperature
    self._api.setDomesticHotWaterTemperature(temp)
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareUtils.py", line 75, in feature_flag_wrapper
    return wrapper(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareUtils.py", line 68, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareHeatingDevice.py", line 179, in setDomesticHotWaterTemperature
    return self.service.setProperty("heating.dhw.temperature.main", "setTargetTemperature",
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareCachedService.py", line 29, in setProperty
    response = super().setProperty(property_name, action, data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareService.py", line 64, in setProperty
    return self.oauth_manager.post(url, post_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareAbstractOAuthManager.py", line 93, in post
    self.__handle_rate_limit(response)
  File "/usr/local/lib/python3.11/site-packages/PyViCare/PyViCareAbstractOAuthManager.py", line 59, in __handle_rate_limit
    raise PyViCareRateLimitError(response)
PyViCare.PyViCareUtils.PyViCareRateLimitError: (PyViCareRateLimitError(...), 'API rate limit development portal "99f6f755-e18a-47c9-84aa-242a07cf9a0c" daily limit exceeded. Max 1450 calls in timewindow. Limit reset at 2024-01-17T00:00:03.760000.')

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 5 months ago
  • Comments: 27 (8 by maintainers)

Most upvoted comments

How should it help? I have only one device. And again, this problem exists since I installed the fix #107847 (comment)

I have only one heatpump too. However, Viessmann API changed some days ago and API shows now 2 devices : My heatpump + my “Vitoconnect”. Original integration polls “only the first device” Fix #107847 polls all devices => too many calls per day Fix #107906 polls 1 device of your choice.

Are you sure you have only one device? Then you should simply use the original integration and have no issue.

+1

You should try #107906