MAJ Python pour Home Assistant

2020-02-17T00:00:00Z | 3 minutes de lecture | Mise à jour le 2022-03-07T00:00:00Z

@
MAJ Python pour Home Assistant

Procédure de MAJ de Python 3.6.9 à la 3.8.1 car Home Assistant ne supporte plus cette version.

[!NOTE] J’ai refais mon installation en utilisant Docker dans l’article disponible ici.
De ce fait, je ne fais plus à faire les MAJ de Python !

Introduction

Depuis quelque temps, la notification suivante apparait sur l’interface Web d’Home Assistant, ma solution domotique :

Python 3.6 support is deprecated and will be removed in the first release after December 15, 2019. Please upgrade Python to 3.7.0 or higher. Home Assistant

Étant sur la version 18.04 LTS d’Ubuntu, la dernière version de Python disponible sur leur dépôt est la 3.6.9.

La mise à jour suivante d’HA (Home Assistant) arrive après la fin du support de Python 3.6. Ne savant pas ce que cela peut engendré, je n’ai plus fait de MAJ depuis.

J’ai depuis peu trouvé une façon cohérente de le faire et c’est ce que je vous partage ici.

Installation de Python 3.8

Ajout du packet

HA étant mis à jour assez régulièrement, j’ai décidé de passer directement à la version 3.8 plutôt qu’à la 3.7.

Pour cela, on ajoute le dépôt deadsnakes à notre serveur (on valide l’ajout avec la touche [ENTRER]). On met ensuite à jour la liste des dépôts et l’on installe Python 3.8.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8 python3.8-dev python3.8-venv

On valide l’installation en demandant un retour de la version de Python avec la commande python3.8 --version. Pour ma part, j’ai la version 3.8.1.

Configuration de la version par défaut

Si je tape la commande python –version, j’obtiens la version 3.6.9.
Pour remédier à cela, on va ajouté la version 3.8 à notre liste de version et la séléctionner par défaut.

La commande sudo update-alternatives --config python me donne le résultat suivant :

Liste des versions de Python

Pour ajouter Python 3.8 à cette liste j’utilise la commande suivante (ou le “3” à la fin représente la priorité, 3 car 0, 1 et 2 sont déjà prises) :

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 3

Ainsi, je relance la commande sudo update-alternatives –config python et sélectionne “3” pour la version 3.8.
Je vérifie ensuite en reprenant la commande python --version.

La version 3.8 étant installé, on peut passé à la migration d’HA.

Migration d’HA

Pour cette partie, on va stopper le service et copier les données système avant d’initier la nouvelle installation. La configuration elle n’est pas touchée.

sudo systemctl stop home-assistant@homeassistant.service
sudo mv /srv/homeassistant /srv/homeassistant_old
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant -R /srv/homeassistant
cd /srv/homeassistant

On crée ensuite notre nouvel environnement virtuel et l’on installe HA.

sudo -u homeassistant -H -s
/usr/bin/python3.8 -m venv .
pip install pip

pip install homeassistant==0.102.3
exit

Vous remarquerez que j’installe explicitement la version 0.102.3 d’HA. Je fais cela, car c’est la version que j’utilise actuellement. Je lancerais ensuite les commandes de mise à jour afin de limiter les problèmes avec ma configuration.

On lance ensuite HA avec la commande habituelle sudo systemctl start home-assistant@homeassistant.service. Pour moi, le lancement à pris 8 minutes !

Conclusion

Je pensais que cette procédure était compliquée, car je ne comprends pas encore le système d’environnement virtuel, mais j’ai quand même réussi.

Maintenant, je vais devoir mettre à jour HACS. Je pense avoir de vrai problème le dessus…

Edit : HACS est partie en ******** ! J’ai du tout supprimé et réinstallé. Heureusement, les addons et les plugins que j’ai ajouté via HACS n’ont rien subit. Je les ai réinstallés afin qu’ils reviennent dans la liste des trucs installés de HACS.

© 2017 - 2024 Scrample

All rights reserved

À propos

Site crée avec le framwork Hugo en remplacement du Wordpress.
La transition a été faite grâce à l’outil exitwp-for-hugo.

Le thème utilisé est Dream réalisé par Yue Yang.

Le logo a été fait via FreeLogoDesign.

Les illustrations d’articles utilisent des images libres de droits proviennent de :

Les commentaires utilisent le système de tickets de GitHub grâce à l’application Utterances.

J’utilise Umami pour récolter quelques statistiques de fréquentation de ce blog. Ma configuration fait que cet outil respecte la fonction Do Not Track.
Vous pouvez consulter ces données ici.

Le pourquoi du comment de ce site est expliqué sur mon premier article.