Aller au contenu principal

1. Installation de HomeAssistant

Objectif : réalisation d'une Box domotique avec HomeAssistant

  • matériel: raspberry pi4 + boîtier argon one-M2 + SSD nvme de 240 Go
  • installation logicielle initiale : Ubuntu server 21.10 64 bits le 25/10/2021

1. Prérequis

Pour l'OS, utiliser un logiciel comme par exemple cf à https://cdimage.ubuntu.com/ubuntu/releases/ sinon utiliser l'outil de la fondation Raspberry le "raspberry pi imager" à https://www.raspberrypi.com/software/

user = ubuntu / pass = iutSE2021

un très bon site qui semble similaire à mon installation https://alex3305.github.io/home-assistant-docs/

1.1 Réglages de base de l'OS

  • changement du mot de passe lors de la 1ère connexion, puis passer la langue en FR pour tous les utilisateurs
sudo apt update
sudo apt upgrade -y
sudo locale-gen fr_FR
sudo locale-gen fr_FR.UTF-8
sudo update-locale LANG=fr_FR.UTF-8 LANGUAGE=fr_FR
sudo update-locale
sudo locale-gen --purge
sudo timedatectl set-timezone Europe/Paris
sudo reboot

1.2 Installation de Docker

plusieurs possibilité : via les snap Ubuntu.. cf https://snapcraft.io/docker le dépot est OK pour arm64.. mais ok pour installation simple, le mode supervised demande une installation de docker-ce classique.. ensuite je finalise l'usage avec un user normal pour docker (cf page d'installation)

sudo snap install docker --edge 

utiliser ci-dessous pour le mode supervised

  • installation de prérequis pour l'installation de docker, etc...
sudo apt-get install net-tools tree apt-transport-https ca-certificates curl gnupg lsb-release -y
  • installation des dépôts pour docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 
echo \
"deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
  • installation de docker; mais aussi je déclare le "user" dans le groupe docker, et je reboot pour être sur de la prise en compte de cette modification, attention les paquets docker ci-dessous correspondent à la version 21.10...
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $USER
  • Installation de docker compose en version 1 simplement avec
sudo apt install docker-compose -y
docker-compose --version
sudo reboot
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-aarch64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
docker compose --version

1.3 installation argon specific

le boîtier Argon possède un refroidissement, voir pour cela le site, d'apres la documentation Download/install the Argon One Software on the Pi 4 :

   curl https://download.argon40.com/argon1.sh | bash 

le lien officiel à https://www.argon40.com/learn/index.php/2020/03/10/argon-one-installation-guide-for-osmc/

un service est installé, et pour l'usage de celui-ci, cf la page https://wagnerstechtalk.com/argonone/

test avec version de https://alex3305.github.io/home-assistant-docs/installation/host-system/

sudo apt-get install  curl dbus dnsutils git htop jq ncdu nmon socat sshpass

2. Installation de Hass

Le projet est à https://www.home-assistant.io/

2.1 core

j'utilise le container avec docker... pour cela création d'un dossier, puis du sous-dossier de configuration, et je génère le fichier yaml pour docker-compose

mkdir hass
cd hass
nano docker-compose.yml

le contenu du fichier est le suivant

version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/raspberrypi4-64-homeassistant:stable"
volumes:
- /hass/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
network_mode: host
devices:
- /dev/ttyUSB0:/dev/ttyUSB0

ensuite je démarre l'application

docker-compose pull
docker-compose up -d

et quelques secondes après, je teste l'écoute sur le port du serveur

netstat -antu | grep 8123

si tout est OK, je peux ouvrir le serveur web associé, puis créer mon compte d'utilisateur, par exemple à http://192.168.0.24:8123/

2.2 superviseur

ne fonctionne pas encore.. problème de docker et overlay pour le reseau indispensable pour un usage avancé (dans mon cas pour de la base de données, etc...) Un bon tutoriel à https://peyanski.com/how-to-install-home-assistant-supervised-official-way/#Home_Assistant_Supervised_method

  • commençons par les prérequis et redémarrage pour la prise en compte des outils réseaux avec l'étape suivante consiste à vérifier la présence de quelques paquets
sudo apt-get install jq wget curl avahi-daemon \
udisks2 libglib2.0-bin network-manager dbus -y
sudo reboot

pour l'installation du mode supervised, le site officiel est à https://github.com/home-assistant/supervised-installer ... mais avant, se préoccuper de cette page https://github.com/home-assistant/os-agent, je trouve la release puis installe l'OS-agent avec la bonne release https://github.com/home-assistant/os-agent/releases/

wget https://github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_aarch64.deb
sudo dpkg -i os-agent_1.2.2_linux_aarch64.deb
sudo gdbus introspect --system --dest io.hass.os --object-path /io/hass/os

ensuite installation, il est demandé une réponse lors de ce processus

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
sudo dpkg -i homeassistant-supervised.deb

3. Services complémentaires

3.1 MQTT

attention : l'usage de zigbee2MQTT installe mosquitto...

  • ajout du broker MQTT Mosquitto.. dans les paquets standards de Linux
sudo apt install mosquitto mosquitto-clients -y

3.2 time serie DataBase

le choix s'est porté sur InfluxDB dont le lien est le suivant https://portal.influxdata.com/downloads/ avec l'option linux/arm64, copier l'installation du dépôt.. puis mise à jour et installation

wget -qO- https://repos.influxdata.com/influxdb.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdb.gpg > /dev/null
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
sudo apt-get update && sudo apt-get install influxdb2 -y

3.3 graph visu dashboard

Pour cela , un bon outil: grafana et sa version opensource à https://grafana.com/oss/grafana/ et pour installation cf https://grafana.com/grafana/download?edition=oss et le code pour celle-ci avec les dépôts

sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana