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