francispoisson / hilo

Hilo integration for Home Assistant
The Unlicense
26 stars 8 forks source link

Working around Hilo's "throttling" mechanism #54

Closed valleedelisle closed 2 years ago

valleedelisle commented 2 years ago

Apparently, Hilo has throttled the /Attributes endpoint that returns the current state of a device's attribute. Sometimes, it's just empty.

When it's empty, if we already have the previous states, we just skip this polling. If we don't, we immediately retry until we get something.

Also, when I wrote the get_events for Hilo challenges, I had no real understanding of the data structure returned. Now I do and I updated it to at least allow us to update the sensor.

Closes #53, closes #52, closes #51

francispoisson commented 2 years ago

Pour la maj des thermostats, ça semble ok, mais il y a des erreurs avec la portion "énergie"

Logger: homeassistant.components.sensor Source: components/utility_meter/init.py:130 Integration: Capteur (documentation, issues) First occurred: 19:13:56 (1 occurrences) Last logged: 19:13:56

Error while setting up hilo platform for sensor Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform await asyncio.shield(task) File "/config/custom_components/hilo/sensor.py", line 79, in async_setup_platform await utility_manager.update(hass, config, async_add_entities) File "/config/custom_components/hilo/managers.py", line 57, in update await utility_setup(hass, config) File "/usr/src/homeassistant/homeassistant/components/utility_meter/init.py", line 130, in async_setup hass.data[DATA_UTILITY][meter][CONF_TARIFF_ENTITY] = "{}.{}".format( KeyError: 'hilo_energy_thermostat_salle_a_manger'

Logger: homeassistant.setup Source: setup.py:316 First occurred: 19:13:56 (2 occurrences) Last logged: 19:13:56

Unable to prepare setup for platform utility_meter.sensor: Unable to set up component.

Logger: homeassistant.setup Source: components/utility_meter/init.py:108 First occurred: 19:13:56 (1 occurrences) Last logged: 19:13:56

Error during setup of component utility_meter Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/setup.py", line 254, in _async_setup_component result = await task File "/usr/src/homeassistant/homeassistant/components/utility_meter/init.py", line 108, in async_setup for meter, conf in config.get(DOMAIN).items(): AttributeError: 'NoneType' object has no attribute 'items'

francispoisson commented 2 years ago

Invalid config The following integrations and platforms could not be set up:

utility_meter utility_meter.sensor Please check your config and logs.

francispoisson commented 2 years ago

C'est satisfaisant de voir un capteur binaire "défi hilo" activé 👍

valleedelisle commented 2 years ago

Ça semble être un race condition. Est-ce que le problème est toujours là si tu redémarre?

valleedelisle commented 2 years ago

par redémarrer, je veux dire de repartir uniquement home-assistant, pas l'hôte :)

francispoisson commented 2 years ago

Oui, c'est toujours là.

francispoisson commented 2 years ago

Je n'arrive pas non plus à ajouter le capteur d'énergie total, comment s'appelle-t-il? J'ai hilo.energy_total, mais il n'est pas accessible des paramètres du module "Énergie".

valleedelisle commented 2 years ago

J'ai reproduit le problème en dev. C'est possible que lorsque j'ai codé ça, j'ai tweaker manuellement la BD pour faire marcher la patente. Y'a un bug dans Hass quand on veut extend les utility meters et j'ai dû hacker autour de ça. C'est assez laid, j'vais voir pour faire ça plus cachère. Je vais updater le PR lorsque j'ai de quoi qui marche dans un environment neuf.

valleedelisle commented 2 years ago

En attendant, on peut peut-être merger ce fix pour que la base fonctionne pour tout le monde et ouvrir un nouvelle issue pour les energy meter. Je ne crois pas que ce fix PR ait rapport avec le problème de meter.

francispoisson commented 2 years ago

Oui, en effet, ça roule depuis quelques jours sans problème.