Dès la présentation de la solution Home Assistant, je vous ai vanté un de ses avantages, à savoir la possibilité d’utiliser du code Python. Récemment, je vous ai présenté  la syntaxe YAML puis je vous ai proposé un cas concret portant sur une notification vocale liée à la charge de votre téléphone. Dans cet article, je vous propose la même automatisation, mais cette fois-ci je vais utiliser du code Python dans Home Assistant.

Qu’est-ce que le langage Python ?

Comme indiqué sur Wikipedia, Python est un langage de programmation  utilisable sur différents systèmes d’exploitation et régulièrement utilisé pour la découverte de la programmation. En effet, ce langage est très lisible principalement du fait d’obliger l’indentation du code. Son développement a commencé en 1989 et la dernière version majeure date de 2008.

Comment créer un script Python dans Home Assistant ?

Modification du fichier configuration.yaml

La première étape consiste à modifier le contenu du fichier configuration.yaml. Pour cela,  assurez-vous d’avoir installé le module complémentaire <File Editor> puis cliquez sur le menu correspondant pour ouvrir le fichier configuration.yaml. 

À la fin du fichier, ajoutez le texte suivant :

python_script:

La fin de ma configuration ressemble alors à l’écran ci-dessous:

Rendez-vous ensuite dans l’arborescence de fichiers de Home Assistant en cliquant sur l’icône du dossier en haut à gauche. Un ensemble de fichiers apparaît. Cliquez alors sur  l’icône représentant un dossier avec un sigle [ + ] intégré pour créer un nouveau dossier (deuxième icône dans l’image ci-dessous):

Nommez-le python_scripts

La configuration est terminée, il ne reste plus qu’à redémarrer votre instance Home Assistant (Configuration -> Contrôle du serveur -> lien REDEMARRER).

Création du fichier de script et saisie du code

Je vous invite à présent à retourner dans le dossier que vous venez de créer pour y générer un nouveau fichier en cliquant sur la première icône (rectangle avec un +). Donnez alors un nom à votre script et validez. Pour cet exemple, je l’ai intitulé  gestion_charge_telephone.py

L’extension .py est celle généralement utilisée pour un fichier Python. Ainsi, je vous invite à toujours respecter cette règle.

Le script étant maintenant créé, il ne vous reste plus qu’à saisir le code désiré. Pour cet exemple précis, je vous invite à copier – coller le code ci-dessous:

Explication du code

Les deux premières lignes permettent de générer deux variables:

  • La première correspond  à la valeur de la charge actuelle du téléphone
  • La seconde correspond à la valeur de l’input créé pour définir la limite

Une condition est alors effectuée pour comparer les deux valeurs et executer des actions si la valeur de la batterie est inférieure à la limite définie. Si tel est le cas, un appel au service persistent_notification est effectué afin de créer une notification dans Home Assistant.

Enfin, un appel est effectué vers le service tts afin de diffuser un message vocal sur un assistant.

Aussi, je vous invite  à ajuster les deux valeurs suivantes:

  • La valeur sensor.oneplus_niveau_de_batterie sera forcément différente en fonction de votre téléphone. Je vous invite à vous rendre dans le menu  Configuration > Entités pour trouver la bonne valeur en fonction de votre configuration.
  • De même, pensez à ajuster la valeur ici indiquée media_player.gh_bureau avec le nom de votre enceinte que vous retrouverez dans Configuration > Appareils.

Création de l’automatisation

Je n’ai plus qu’à créer une nouvelle automatisation permettant le déclenchement de ce script. Pour cela, je me rends dans le menu configuration > automatisation et j’en créé une nouvelle.

Le déclencheur reste identique à savoir le débranchement du téléphone:

Aucune condition n’est à définir puisque ceci est à présent géré via le script grâce aux trois premières lignes :

Enfin, concernant les actions, le script est vu comme un service. Il suffit donc de l’appeler en utilisant le nom du fichier défini précédemment:

Concernant le YAML, cela donne:

Conclusion

Voici un exemple permettant d’utiliser du code Python dans Home Assistant. À titre personnel, je préfère largement cette solution, car elle me permet de facilement personnaliser les automatisations. En effet, il est, par exemple, très simple de personnaliser le contenu de la notification ou du message vocal si besoin. Que pensez-vous de cette autre solution ? La trouvez-vous également plus simple à mettre en place ? J’attends vos retours en commentaires.

À bientôt…

Shares:

1 Comment

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.