-
-
Notifications
You must be signed in to change notification settings - Fork 27
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
Setup failed for custom integration 'hilo' #497
Comments
Je sais pas si c'est relié, mais ça ressemble à mon problème: #472 |
Normalement les dependencies et site packages sont à l’intérieur du container même. Si tu peux ssh dedans essaye
Tu peux ensuite redémarrer par le UI et normalement ça devrait virer. J'ai le même problème en docker quand je veux avoir un volume mount de pyhilo et je n'ai pas trouvé pourquoi. Je dois rouler la commande et redémarrer, mais HA utilises ensuite mon pyhilo de volume mount (je le vérifie avec du logging que j'ai en local seulement, et pas dispo sur PyPi). Je ne suis pas familier avec kubernetes. |
J'ai eu le même problème aussi. Dans mon cas je roule un container dans Kubernetes, alors je me suis créé une image custom en utilisant l'image officielle puis j'ai installé pyhilo dans mon image. J'en ai profité pour installer d'autres packages pour l'authentification LDAP. Après avoir installé pyhilo dans l'image, je peux utiliser l'intégration de Hilo sans problème avec Home Assistant. Je n'ai pas investigué pourquoi ça fait ça. Je ne connais pas assez comment le développement fonctionne avec Home Assistant, mais j'en connais peut-être assez sur Python pour investiguer. |
Surtout tu te gènes pas! |
Pour le moment je patch en copiant le contenu de /configs/deps dans /usr/local/lib/python3.12/site-packages manuellement (mes pods gardent leurs fichiers tant qu'ils sont scheduled sur le même node) donc ça "règle" mon problème. |
Ça semble plus être un problème de setup/limitation kubernetes qu’un problème HA/Hilo. Je laisse ouvert à titre informatif mais je vous invite à remplir le wiki ou le readme avec vos trouvailles pour en aider d’autres. |
J'ai commencé à regarder un peu. Je ne promets vraiment rien parce que c'est beaucoup de nouveau à apprendre pour ma part pour comment Home Assistant fonctionne. Donc, pour voir si le problème survient autant avec Kubernetes que podman (ou Docker, que je n'ai pas, mais j'imagine que ça risque d'être la même chose), je voulais tester avec podman donc, vu que j'ai eu le problème avec Kubernetes. Aussi, si j'ai bien compris, si j'installe HACS et que j'installe l'intégration Hilo ou si je copie le dossier hilo dans le dossier Je reproduis le problème avec les étapes suivantes: $ podman run -d --name ha -p 8123:8123 docker.io/homeassistant/home-assistant:2024.11
$ podman exec -it ha /bin/bash
# Exécutée dans le container Home Assistant
$ wget -O - https://get.hacs.xyz | bash -
# Redémarrer Home Assistant
# Ajouter l'intégration Hilo via le UI web
# Redémarrer Home Assistant
# Ajouter l'intégration Hilo et avoir une erreur dans les logs J'ai l'impression que le problème serait avec Home Assistant et comment il gère les dépendances des intégrations. Il y a peut-être eu un changement récent. Est-ce qu'on sait si des plus vieilles versions de HA et de l'intégration Hilo font le même problème? |
J'ai toujours été sous docker, avec l'image recommandée par HA (ghcr.io). Docker compose:
Une chose qui me frappe dans ceux qui ont du trouble avec podman/kubernetes ou d'autres images est une question de permission. Le container doit être capable d'installer ses trucs via pip et y accéder sans quoi c'est garantie d'échouer. J'pas un king de docker mais je pense que du côté docker c'est le
Qui permet ça. Ça m'apparaît au final comme un trouble de permission mais je n'ai aucune connaissance de podman ou kubernetes autre que leur noms et une vague idée de ce qu'ils font. |
Je peux reproduire le problème avec l'image Je suis déjà "root" dans l'image, donc je peux créer des fichiers n'importe où. Pour le cas des problèmes de permissions de certaines personnes, je pense que ça devrait être regardé à part, comme un problème différent. Dans mon test, je n'utilise pas de volume mount, donc ça élimine tous les problèmes potentiels de permissions avec, par exemple, AppArmor ou SELinux. Par exemple, sur un système Rocky Linux avec SELinux activé, je dois utiliser le flag "z" avec podman pour que SELinux soit ajusté automatiquement pour éviter des problèmes de permissions. Je viens d'essayer "--privileged=true" avec podman, qui est l'équivalent de l'option du même nom avec Docker et ça ne corrige pas le problème, ce qui, je crois, continue à prouver que le problème se trouve avec la façon dont Home Assistant installe et utilise/gère les dépendances. Je vais continuer à regarder et lire la documentation de Home Assistant pour mieux comprendre le flow d'installation des dépendances et je vais peut-être essayer avec des plus vieilles images de HA et de l'intégration Hilo pour voir si le problème serait apparu à une certaine version. |
J'utilise HA sous docker depuis plus de 3 ans, et ce custom_component depuis 2022 et je n'ai jamais eu de problème. Je l'ai installé de la même manière avec le docker compose que tu vois sur 4 host différents (raspbian 10 et 11, lubuntu, DSM 7). Je n'ai jamais eu à faire quelque manipulation que ce soit pour que python-hilo s'installe correctement sauf quand je le veux en volume mount pour jouer dans le code sur un host. Tu ne pourras pas reculer beaucoup plus loin que 2024.4-ish pour l'intégration car Hilo a passé à oauth2 donc tout ce que est plus vieux ne marchera pas. Python-hilo s'installe à l'intérieur de l'image et non dans les deps du volume mount avec une installation standard. |
Je crois que la cause du problème c'est que hass est passé de piètre à uv pour gérer le projet. Les dépendance sont installées avec uv. Je ne sais pas comment le régler. |
Ça aurait du sens! J'ai justement trouvé ceci hier qui semble être exactement le même problème. Je vais continuer à regarder ça tranquillement. |
J'ai terminé de lire les commentaires de cet issue comme je voulais le faire et c'est exactement le même problème qui est dû à un changement récent de Home Assistant qui affecte les environnements de container autres que Docker, dont podman et Kubernetes. Comme ça semble être considéré comme un bug de HA, je ne sais pas si ça vaut vraiment la peine de documenter le problème, car il n'est pas avec l'intégration pour Hilo. Personnellement, si je peux me permettre d'aider avec un peu de mon temps pour cette intégration, je préférerais le passer pour aider à corriger des bugs ou autres qui sont directement relié(e)s à cette intégration. |
Merci d'avoir pris le temps, j'ai pris connaissance du thread aussi et j'en ai appris pas mal. Le code en général de l'intégration a probablement besoin de plusieurs refactors et de ménage pour s'aligner avec ce que HA considère les best practices. On va prendre toute l'aide qui est offerte :) |
Ok, super! :D Je vais préparer mon environnement de développement, puis commencer à lire sur les meilleures pratiques pour les intégrations avec Home Assistant! |
Version of the custom_component
2024.10.2
Configuration
Mes configurations sont minimales sur la helm chart de k8s-at-home:
Describe the bug
Mon setup home assistant:
Le problème semble que python ne semble pas retrouver les dependencies de l'intégration. Ça me fait ça depuis que j'ai updaté Home Assistant et HACS post 2024.4 je crois. Mon dossiers /config/deps contient bien pyhilo, mais j'ai l'impression que ça n'est pas retrouvé par python. J'ai tenté d'aller dans le dossier de mon pod des "site-packages" (/usr/local/lib/python3.12/site-packages) et j'ai copié le dossier de /config/deps dans ce dossier et redémarré home-assistant à partir du web interface (ça redémarre pas mon pod donc je perds pas mon stock copié) et maintenant le plugin load. Je ne crois pas que c'est 100% en lien avec l'intégration hilo, mais j'aimerais savoir si vous avez une idée de la raison que les dépendances ne fonctionne plus correctement?
Debug log
2024-11-10 14:49:43.923 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'hilo': Unable to import component: No module named 'pyhilo'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 979, in async_get_component
comp = await self.hass.async_add_import_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/loader.py", line 1037, in _get_component
ComponentProtocol, importlib.import_module(self.pkg_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/config/custom_components/hilo/init.py", line 38, in
from pyhilo import API
ModuleNotFoundError: No module named 'pyhilo'
The text was updated successfully, but these errors were encountered: