Déployer un soft python dans HA OS

Bonjour,

Utilisant du KNX, j’ai développé il y a quelques années un framework Python permettant d’écrire des device KNX virtuels : https://framagit.org/fma38/pKNyX/-/wikis/home

Avec, j’ai entre autre développé une passerelle pour les VMC double flux Helios¹ vers KNX, qui tourne H24 depuis plus de 10 ans sur mon ancien routeur, lequel n’est plus utilisé que pour ça depuis que je suis passé à la fibre ; c’est un peu balo !

J’ai récemment porté mon framework pour Python3², pour pouvoir le faire tourner sur des trucs plus récents, et j’aimerais pouvoir déployer ce device virtuel sur ma bécane où est installé HA OS ; est-ce possible ? J’imagine que c’est sous forme de add-on que je dois faire ça, non ?

J’ai vu qu’il existait Pyscript et AppDaemon, mais j’avoue ne pas être certain de bien piger comment ça fonctionne. Est-ce que ces outils me permettraient de faire ce que je souhaite ? Lequel me conseillez-vous ?

Si vous avez des exemples comparables, je suis preneur.

Merci d’avance.

¹ via un package custom : Fred / PeasYcontrols · GitLab

² ayant pour objectif de pouvoir le faire tourner sur Micropython pour faire des vrais devices KNX, j’ai même fait une branche basée sur asyncio au lieu d’utiliser des threads, et créé upKNyX/uPeasYcontrols (en cours de test). Reste aussi à implémenter le support TP-UART.

Bonjour

Pour pyscript cela s’installe comme add-on dans HA: GitHub - custom-components/pyscript: Pyscript adds rich Python scripting to HASS ensuite il suffit de déposer tes scripts python dans un dossier spécifique de HA et tu peux alors les appeler comme un service depuis HA :wink:

Vincèn

Ah, intéressant, merci !

En fait, mon code n’a besoin d’aucune interaction avec HA ; ça ne pose pas de problème ? Il faut quand même que j’expose un service minimum ? Ce service pourra-t-il démarrer automatiquement dès que HA OS boote ?

Aucun soucis pour l’absence d’interaction avec HA même si c’est pas le premier but visé par cette intégration :rofl:
Tu peux très bien faire une automatisation dans HA qui lance le script python en question au démarrage et voilà non ?

J’ai commencé à lire la doc, et en fait, si je comprend bien, les scripts sont chargés automatiquement au démarrage. Donc si mon script comporte du code autre que des définitions de fonctions ou classes, il sera exécuté, non ?

Le tout est de savoir si j’ai le droit de bloquer à ce niveau (main loop de mon code)…

Je ne sais pas s’il y a une grosse différence avec python_scripts Python Scripts - Home Assistant :thinking:

Il me semble avoir lu qu’on ne peut pas importer de modules, si ?

Oui, en effet pas de module et dépendances avec python_scripts. Je croyais justement que tu n’en avais pas besoin. De mon côté j’utilise l’appdaemon quand j’ai besoin de dépendances

Quelle est la différence de philosophie entre AppDaemon et Pyscripts ?

Je me lance finalement avec Pyscripts, et j’avoue ne pas bien piger où on peut/doit mettre les fichiers de configuration yaml…

Lesquels sont lus, et dans quel ordre, sachant que j’ai les dossier :

  • pyscript/scripts
  • pyscript/modules
  • pyscript/apps

Et, accessoirement, quelle doit être leur forme à chaque niveau ?

Merci de vos lumières.