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
- Sinon je peux aussi utiliser la version 2!! pas complètement testé.. dsl; en m'inspirant de l'article https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04 qui renvoie vers le dépôt https://github.com/docker/compose/releases ou je trouve la référence de la dernière release (à modifier dans la ligne de code suivante) je passe à la version 2 de compose, qui devient un plugin de la commande docker (et non plus une commande indépendante) cf https://docs.docker.com/compose/cli-command/
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