Home Assistant : Installation sur Raspberry Pi et boot sur USB/SSD

homeassistant-france_installation-home-assistant-raspberry-pi-ssd-usb-docker

Home Assistant est un logiciel domotique open-source permettant de superviser tous vos objets connectés avec une seule et même application. Lorsque nous débutons, nous avons tendance à choisir la solution de facilité, installer le serveur HA (Home Assistant) sur raspberry Pi avec une carte micro SD. Bien que cette solution soit facile, rapide et peu chère nous rencontrons rapidement des soucis avec la carte micro SD. En effet, celle-ci atteint très rapidement son nombre de cycle lecture/écriture maximal et devient inutilisable. Aujourd’hui nous allons voir ensemble comment installer Home Assistant OS et le supervisor sur un SSD ou autre stockage booté en USB.

Home Assistant : Matériel nécessaire pour l’installation

 

Maintenant que nous avons le matériel nécessaire, nous allons installer Home Assistant en mode supervisé dans Docker. Cela vous permettra également d’utiliser votre Raspberry Pi pour d’autres projets (owncloud, plex, serveur web, etc…)


 

Home Assistant : Configuration du Raspberry Pi

A l’aide de la carte micro SD, nous allons configurer votre Raspberry Pi 4 afin de lancer le démarrage sur le disque SSD. Lorsque le boot sera configuré pour l’USB, la carte micro SD ne sera plus utile.

Home Assistant : Flash de la carte MicroSD

Nous allons installer Raspberry Pi OS Lite dans sa version lite (sans interface graphique) afin qu’il occupe le moins de place possible.

raspberry-pi-OS-Lite-for-HA-HASSIO-home-assistant

Une fois le téléchargement terminé, nous allons utiliser le logiciel BalenaEtcher afin de flasher l’OS sur la carte MicroSD.

balenaEtcher-homeassistant_ha
  1. Select image : Sélectionnez Raspberry Pi OS Lite sur votre ordinateur.
  2. Select target : Sélectionnez votre carte MicroSD.
  3. Flash! Démarrez le flash de l’OS sur la carte micro SD, cela peut prendre plusieurs minutes.

Home Assistant : Configuration de Raspberry Pi OS Lite

Le flash étant terminé, nous allons maintenant ajouter un fichier SSH afin de contrôler votre Raspberry Pi à distance.

Ce fichier est vide et sans extension. Il sera supprimé automatiquement lors du premier démarrage.

ssh-on-boot-raspberry

La préparation est terminée, vous pouvez insérer votre carte MicroSD dans la Raspberry Pi, brancher le câble Ethernet et l’alimentation. Votre système démarre !


La suite de ce tutoriel sera réalisée à distance, en ligne de commande sur le terminal de votre ordinateur. Toutes les étapes seront détaillées.


Home Assistant : Configuration pour booter sur USB/SSD

Accéder en SSH au Raspberry Pi

Pour configurer le démarrage par défaut sur USB et donc sur votre SSD nous allons utiliser le terminal de votre ordinateur. Voici comment procéder :

  • Sur Windows, recherchez CMD ou invite de commandes. Une fenêtre comme celle-ci devrait apparaitre :
Terminal sur Windows
Terminal sur Windows
 
  • Sur MacOS, recherchez terminal. Une fenêtre comme celle-ci devrait apparaitre :
terminal-cmd-macOs

Nous allons maintenant nous connecter en SSH sur le Raspberry Pi en écrivant la commande suivante dans votre terminal :

ssh pi@IP-Raspberry-Pi

Remplacez IP-Raspberry-Pi par l’adresse IP de votre Raspberry. (Pour le bon fonctionnement au quotidien, fixez l’adresse IP de votre Raspberry Pi dans les paramètres de votre modem FAI ou routeur).

connexion-ssh-raspberrypi

Insérez le mot de passe du compte pi qui est tout simplement raspberry. Attention, le mot de passe ne s’affichera pas, il faudra ensuite cliquer sur la touche entrée pour vous connectez.

Vous serez alors connecté en tant que pi@raspberrypi comme ci-dessous : ssh-raspberry-pi4

Vous êtes connectés au raspberry pi ! 😎

Mise à jour du Raspberry Pi et du chipset

Pour partir depuis une bonne base, nous allons mettre à jour avec les commandes suivantes :
sudo apt update
sudo apt full-upgrade
Puis rebootez votre raspberry :
sudo reboot
Attendez quelques secondes, votre raspberry pi redémarre. Connectez vous à nouveau avec la commande :
ssh pi@IP-Raspberry-Pi

Votre Raspberry Pi est à jour, nous allons maintenant mettre à jour le chipset permettant de booter sur un port USB 3 sans carte MicroSD. En effet, il semble que le chipset n’implémente pas correctement le protocole UAS et provoque des erreurs pouvant aller jusqu’à empêcher le Raspberry de booter.

Pour télécharger le firmware, insérez cette commande dans votre terminal :
wget https://wiki.odroid.com/_media/odroid-xu4/software/jms578fwupdater.tgz
Il faudra ensuite décompresser l’archive avec la commande suivante :
tar xzf jms578fwupdater
Accédez au dossier :
cd JMS578FwUpdater/

Afin de poursuivre, branchez votre disque SSD sur un port USB 2 (les ports USB 2 sont noirs, les ports USB 3 sont bleus)


Nous allons maintenant identifier le chemin du disque SSD :
lsblk
Dans mon cas, le chemin de mon disque SSD est /dev/sda path-chemin-usb-raspbian Nous allons mettre à jour le firmware du chipset tout en faisant une sauvegarde du firmware originel :
sudo ./JMS578FwUpdate -d /dev/sda -f ./JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin -b ./backup.bin
N’oubliez pas de remplacer sda si celui-ci n’est pas le chemin vers votre disque SSD. Puis redémarrez votre Raspberry :
sudo reboot

Une fois reconnecté à votre raspberry pi en ssh (ssh pi@IP-Raspberry-Pi), vous pouvez vérifier si la version du firmware est à jour :

./JMS578FwUpdate -d /dev/sda -v
Bridge Firmware Version: v173.1.0.2
Le firmware étant à jour, nous allons maintenant dire à notre Raspberry que nous souhaitons booter (démarrer) sur le SSD. Mettez à jour la dernière version du bootloader avec la commande suivante :
sudo rpi-eeprom-update -a
Puis redémarrez et reconnectez-vous à nouveau :
sudo reboot
ssh pi@IP-Raspberry-Pi

Démarrage par défaut sur USB/SSD

La mise à jour est effectuée, nous allons maintenant définir le boot par défaut sur l’USB :
sudo raspi-config
A l’aide des flèches de votre clavier, sélectionnez Advanced Options puis cliquez sur entrer : boot-ssd-raspberrypi-hassIO-1 Sélectionnez Boot Order (il restera surligné en rouge)  puis allez sur Select et validez en cliquant sur votre touche entrée : boot-ssd-raspberrypi-hassIO-2 Sélectionnez USB Boot puis allez sur Ok et validez en cliquant sur votre touche entrée  : boot-ssd-raspberrypi-hassIO-3 Cliquez sur Ok. boot ssd hassio ha rpi

Votre Raspberry Pi démarre maintenant depuis ses ports USB ! 😎

Cloner votre environnement sur le disque SSD

Votre disque SSD est maintenant utilisé lors du boot, cependant celui-ci est vide. En effet, nous travaillons depuis le début dans les paramètres de Raspberry Pi OS Lite se situant sur la carte MicroSD. Nous allons maintenant cloner tout cela vers le disque SSD afin de garder le même environnement pour l’installation de Docker et de Home Assistant Supervised.

Pour cela c’est très simple, insérez les lignes suivante une par une dans votre terminal :
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
Le script étant installé, nous allons maintenant lancer le clonage :
sudo rpi-clone sda -f
Comme précédemment, n’oubliez pas de modifier sda si celui-ci n’est pas le chemin vers votre SSD. Le script vous posera certainement deux questions :
  • Répondez yes à la première question puis faites entrée.
  • La deuxième question est facultative, vous pouvez ne pas répondre et cliquer sur entrée pour démarrer le clonage.
Attendez quelques secondes…

Le moment le plus délicat est arrivé, nous allons vérifier si tout est bien configuré comme prévu. Eteignez le Raspberry, retirez la carte microSD puis branchez le SSD sur un port USB 3.

Pour éteindre votre Raspberry Pi proprement il suffit de lancer cette commande :
sudo shutdown -h now
  • Raspberry éteinte
  • Disque SSD branché sur un port USB 3
  • Carte MicroSD retirée
Vous pouvez débrancher puis rebrancher votre Raspberry Pi ! Le démarrage sur votre SSD devrait fonctionner, attendez quelques secondes… Puis connectez-vous à nouveau au Raspberry avec la commande suivante :
sudo ssh@IP-Raspberry-Pi
Si la connexion s’effectue, cela veut dire que votre Raspberry Pi démarre bien sur votre SSD ! Félicitations ! 😎

Home Assistant : Installation de Docker

Le plus dur est terminé ! Nous pouvons maintenant passer à l’installation de Docker.
 » Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n’importe quel serveur.  » Wikipédia
Installez Docker avec la commande suivante :
sudo curl -sSL https://get.docker.com | sh
Puis ajoutez des droits pour le bon fonctionnement :
sudo usermod -aG docker pi
Rebootez afin de prendre en compte les nouveaux droits affectés :
sudo reboot

ssh pi@IP-Raspberry-Pi

Installation de Home Assistant Supervised

Docker est maintenant installé, il ne reste plus qu’à déployer les conteneurs d’Home Assistant ! Les prochaines étapes doivent être effectuées en tant que root, pour cela, lancer la commande suivante :
sudo su
Home Assistant demande également l’installation de quelques prérequis ainsi que l’arrêt du ModemManager afin d’éviter des conflits (lancez ces commandes une par une) :
apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager

systemctl disable ModemManager

systemctl stop ModemManager
Pour finir, il suffit d’installer les conteneurs Home Assistant Supervised avec cette commande :
curl -sL https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh | bash -s -- -m raspiberrypi4 
Si vous êtes sur un autre modèle de Raspberry Pi, il suffit de modifier le paramètre raspiberrypi4 par :
  • raspberrypi
  • raspberrypi2
  • raspberrypi3
  • raspberrypi4
  • raspberrypi3-64
  • raspberrypi4-64  (Pour le modèle 8Go de RAM)
 

Home Assistant est en train de s’installer ! Cela peut prendre environ 20 minutes, soyez patient ! 😎 

Il ne reste plus qu’à vérifier si les 7 containers sont correctement installés et lancés. Utilisez cette commande :
docker ps
docker-hassIO-container

Home Assistant est correctement installé, vous pouvez accéder à l’interface web depuis un navigateur en tapant l’adresse suivante : http://IP-Raspberry-Pi:8123

tutoriel-home-assistant-termine

Vous pouvez profiter pleinement de Home Assistant et de ses nombreux add-ons et plugins. N’oubliez pas d’installer File Editor et Samba Share, deux plugins indispensables pour commencer l’aventure ! Et si vous souhaitez customiser votre dashboard, suivez le tutoriel pour installer HACS le store mettant à disposition des centaines de plugins créés par la communauté !

  Des difficultés ? Des questions ? N’hésitez pas à laisser un commentaire ou à rejoindre le groupe Facebook, la communauté francophone vous répondra avec plaisir ! 🙂

11 Commentaires

  • super tuto mais je bloque
    j’ai gardé mon adresse ip fixe de mon rasp 4. mais quand je tape ssh pi@192.168.1.113 il me dit port 22 connection refused. je dois router le port 22 (habituellement j’accédai via le port 8113

  • oubliez mon premier post erreur idiote de ma. part fichier ssd au lieu de ssh
    je pense que sur mac il faut installer Xcode avant de commencer
    une erreur pour les nuls comme moi je pense
    Il faudra ensuite décompresser l’archive avec la commande suivante :
    tar xzf 3cdrAod. –> tar xzf jms578fwupdater.tgz

  • Bravo pour ce tuto qui est très clair et agréable à lire 🙂

    Juste un petit point avant de lancer la commande git, il faut l’installer « sudo apt install git-all »

  • Merci pour ce tuto
    Après l’install, je ne vois que 6 containers HA (il manque le premier)
    Une idée pour avancer ?
    Merci

  • Bonjour,
    Me voilà bloqué, que dois-je faire ?
    D’avance merci
    pi@raspberrypi:~ $ wget https://wiki.odroid.com/_media/odroid-xu4/software/jms578fwupdater.tgz
    –2021-02-07 08:26:20– https://wiki.odroid.com/_media/odroid-xu4/software/jms578fwupdater.tgz
    Resolving wiki.odroid.com (wiki.odroid.com)… 211.233.81.212
    Connecting to wiki.odroid.com (wiki.odroid.com)|211.233.81.212|:443… connected.
    HTTP request sent, awaiting response… 200 OK
    Length: 2089194 (2.0M) [application/octet-stream]
    Saving to: ‘jms578fwupdater.tgz’

    jms578fwupdater.tgz 100%[=================================================>] 1.99M 504KB/s in 4.0s

    2021-02-07 08:26:26 (504 KB/s) – ‘jms578fwupdater.tgz’ saved [2089194/2089194]

    pi@raspberrypi:~ $ tar xzf jms578fwupdater
    tar (child): jms578fwupdater: Cannot open: No such file or directory
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now

  • Hello, je suis bloqué sur l’étape suivante

    pi@raspberrypi:~/JMS578FwUpdater $ sudo ./JMS578FwUpdate -d /dev/sda -f ./JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin -b ./backup.bin
    Update Firmware file name: ./JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin
    Backup Firmware file name: ./backup.bin
    CAUTION: Internal Code does NOT support backup.
    Programming Fail!!

    pi@raspberrypi:~/JMS578FwUpdater $ ./JMS578FwUpdate -d /dev/sda -v
    ERR : open device fail
    Get Bridge version FAIL!

  • salut
    Super tuto
    Moi aussi à la fin de l’install je n’ai que 6 containers : il manque le container hommeassistant
    une idée du problème

    merci

  • Bonjour
    Super Tuto.
    je suis également bloqué sur cette commande (pour information j’ai un Pi3 B+)
    ci joint le nom de mon disque dur plus les messages,
    J’utilise Bitvise pour le ssh et dans le dossier « JMS578FwUpdater »
    il y a 5 fichiers si cela peu t’aider à trouver le problème ?:
    JMS578-Hardkenel-Release-v173.01.00.02-20190306..bin
    JMS578-v0.1.0.5.bin
    JMS578_Hardkernel_v173.01.00.01.bin
    JMS578FwUpdate
    JMS578FwUpdate.v1.00
    ——————————————————————-
    pi@raspberrypi:~ $ lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda 8:0 0 29.3G 0 disk
    ├─sda1 8:1 0 32M 0 part
    ├─sda2 8:2 0 24M 0 part
    ├─sda3 8:3 0 256M 0 part
    ├─sda4 8:4 0 24M 0 part
    ├─sda5 8:5 0 256M 0 part
    ├─sda6 8:6 0 8M 0 part
    ├─sda7 8:7 0 96M 0 part
    └─sda8 8:8 0 1G 0 part
    mmcblk0 179:0 0 29.7G 0 disk
    ├─mmcblk0p1 179:1 0 256M 0 part /boot
    └─mmcblk0p2 179:2 0 29.5G 0 part /
    ————————————————————————
    pi@raspberrypi:~/JMS578FwUpdater $ sudo ./JMS578FwUpdate -d /dev/sda -f ./JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin -b ./backup.bin
    Update Firmware file name: ./JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin
    Backup Firmware file name: ./backup.bin
    Read Back to Backup Error!!
    ——————————————-
    aurais tu une solution ?

    Merci

    • Bonjour, le Raspberry Pi 3B+ n’a pas de probleme avec le boot usb vous pouvez directement brancher votre SSD dessus et booter sans parametrage. Les informations concernant la modification du chipset est destiné au Raspberry Pi 4

  • Bonjour,
    Merci pour ce tutoriel.
    Je suis bloqué lors de la mise à jour dur firmware.
    J’ai bien identifié le bon chemin vers le dd sud, c’est SDA comme sur le tutoriel.
    La réponse de la commande est : sudo ./JMS578FwUpdate -d /dev/sda -f ./JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin -b ./backup.bin
    sudo: ./JMS578FwUpdate: command not found

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Suggestions