Closed pierrepinon closed 1 year ago
Hello, le fait que l'erreur "Error communicating with API: Impossible to find approximate address of the current HA instance" apparaisse me laisse penser qu'il devrait y avoir un warning pas très loin disant:
Data received from api-adresse.data.gouv.fr is empty for those coordinates: xxx, yyy. Are you sure you they are located in France?
Est-ce le cas? Si oui puis-je avoir les coordonnées GPS approximatives? (cela peut-être par mail: grego_github_pierrepinon@familleseux.net)
Après vérification, pas de warning avant dans les logs...
Je t'envoie la position GPS par e-mail
Merci pour les infos. Ma compréhension est que l'API de geocoding n'a aucune info pour ces coordonnées géographiques. La version 0.3.3 permet de forcer le code insee de la commune (par variable d'environment), cf le README.
Par contre dans le cadre d'une installation en mode supervisé, on ne peut pas rajouter de variable d'environnement 😪
Argh! Plusieurs solutions:
Je réouvre le ticket en attendant!
La solution 2 semble la plus propre.
Je regarde dans le week-end pour te proposer une PR
Bonjour @kamaradclimber, je viens de tester la 0.3.3 et la 0.3.4 et je reçois c'est erreur sur ces deux versions.
2023-07-21 09:37:32.969 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up vigieau platform for sensor
Traceback (most recent call last):
File "/config/custom_components/vigieau/__init__.py", line 151, in update_method
city_code = await self.fetch_insee_code()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/vigieau/__init__.py", line 120, in fetch_insee_code
raise UpdateFailed(
homeassistant.helpers.update_coordinator.UpdateFailed: Impossible to find approximate address of the current HA instance. API returned no result.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 242, in _async_update_data
return await self.update_method()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/vigieau/__init__.py", line 189, in update_method
raise UpdateFailed(f"Error communicating with API: {err}")
homeassistant.helpers.update_coordinator.UpdateFailed: Error communicating with API: Impossible to find approximate address of the current HA instance. API returned no result.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 353, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/vigieau/sensor.py", line 42, in async_setup_entry
await vigieau_coordinator.async_config_entry_first_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 258, in async_config_entry_first_refresh
raise ex
homeassistant.exceptions.ConfigEntryNotReady: Error communicating with API: Impossible to find approximate address of the current HA instance. API returned no result.
Si je fais un rollback en 0.3.2, c'est bon ca détecte bien mon adresse.
Peu tu expliquer ce contounement:
A workaround can be used by setting the VIGIEAU_FORCED_INSEE_CITY_CODE environment variable with the city code as value. ⚠ Value of city code is not necessarily city "postal code".
je comprend pas la mise en place.
Corrigé par la 0.3.5, désolé!
La variable d'environment peut-être ajoutée lorsqu'on install HA via "Home Assistant Core" ou "Home Assistant Container". Pour les autres méthodes, c'est peut-être possible mais je n'ai jamais essayé.
Par ex, avec docker: docker run -e VIGIEAU_FORCED_INSEE_CITY_CODE=23195 --network=host -v $(pwd):/config ghcr.io/home-assistant/home-assistant:2023.7
Corrigé par la 0.3.5, désolé!
Merci, plus d'erreur avec la 0.3.5
J'ai bossé ce week-end sur le sujet, le code est fonctionnel, mais je vais le refactor avant de proposer la PR
Hello, il semble que @sebcaps et toi ayez travaillé sur le sujet en parallèle.
@kamaradclimber, tu auras le choix :-). Blague à part, je suis en train d'apporter de nouvelles modif et notamment le choix sur une carte en plus des coordonnées ha et code postal. Dans une même commune on peut être alimenté par deux bassins différents et ne pas avoir les mêmes restrictions.
J'ai bossé ce week-end sur le sujet, le code est fonctionnel, mais je vais le refactor avant de proposer la PR @pierrepinon Les grands esprits se rencontrent ;-) Il doit y a surement des choses à prendre & à laisser dans toutes les contributions. il y a un peu de pain sur la planche pour fusionner tout cela!
Je viens de regarder et ton code est bien plus poussé, donc j'abandonne la mienne 😀
@pierrepinon la version 0.4.0 est en pre-release. Elle permet de configurer la localisation exacte via GPS, une location approximative via le code postal, et la mếthode standard en utilisant la location de l'instance HA.
Je pense que ca résoud le problème. Bravo à @sebcaps et toi de vous être lancés dans le changement pour supporter le multi-instance.
Bonjour,
J'ai installé la version 0.4.0 et je reçois maintenant des erreurs lors de la récupération des données alors que cela fonctionnait correctement sur la version précédente. Cela semble être lié à ma commune (Montpellier), j'imagine qu'elle est découpée en plusieurs zones avec des restrictions différentes.
L'API de Vigieau renvoie un code 409
avec le message Veuillez renseigner une adresse pour préciser la réglementation applicable
. Exemple : https://api.vigieau.beta.gouv.fr/reglementation?commune=34192&profil=particulier
L'API semble attendre les paramètres lat
et lon
: quand je les rajoute, j'obtiens bien une réponse 200 et des données correctes. Exemple : https://api.vigieau.beta.gouv.fr/reglementation?commune=34192&profil=particulier&lon=3.882178&lat=43.610814
(les coordonnées GPS ne sont pas les miennes mais celles d'une place au centre ville)
J'ai tenté de supprimer l'intégration et de la re-paramétrer en utilisant la carte pour le choix de la position mais le résultat est identique. Je rollback donc en v0.3.10 pour l'instant
Merci pour le report !
Je viens de tester, tout est fonctionnel.
Merci @sebcaps
L'initialisation du composant échoue, car il y a une erreur pour identifier ma localisation
Les logs :