Installation de HomeAssistant avec RaspBee II en tant que centrale de domotique et d'alarme
Dans ce tutoriel, nous allons voir comment installer HomeAssistant sur RaspberryPi 3 en tant que centrale domotique. La connectivité Zigbee sera assurée par une carte d'extension RaspBee II. Pour terminer, nous ajouterons une fonctionnalité d'alarme de maison à cette installation.
Installation de HomeAssistant
Installez HomeAssistant sur votre RaspberryPi en suivant la documentation officielle.
Une fois l'installation terminée, accédez à votre instance à l'adresse http://homeassistant:8123.
Attention: Si vous avez forcé une adresse de serveur DNS sur votre PC, différente de celle de votre box Internet, cela peut vous empêcher de découvrir votre instance HomeAssistant via Avahi.
Dans les paramètres de l'utilisateur, activez le mode avancé.
Allez dans Paramètres, Modules complémentaires, et installez Terminal & SSH. Cochez Lancer au démarrage et Chien de garde.
Allez dans la configuration du module, section Réseau, cochez Afficher les ports désactivés, et rentrer le port 22
, puis enregistrez.
Dans la section Options, rentrez soit une clé publique SSH (recommandé), soit une mot de passe.
Démarrez le module. Dans l'onglet Journal, au bout de quelques instants on devrait voir que SSH écoute bien sur le port 22
.
Pour accéder à un terminal, on peut à présent soit utiliser l'interface web du module, soit, directement depuis votre PC:
ssh root@homeassistant
ssh root@homeassistant
Note: Il est conseillé de configurer dans votre box Internet HomeAssistant pour qu'il ait une IP fixe.
Installation de RaspBee
Branchez la cartelette RaspBee II.
Depuis votre PC, accédez à la carte SD pour éditer le fichier config.txt
. Il se situe sur la première partition de la carte SD. Si votre carte SD est /dev/sda
:
sudo mount /dev/sda1 /mnt
sudo mount /dev/sda1 /mnt
Éditer le fichier /mnt/config.txt
, et ajoutez à la fin:
enable_uart=1
dtoverlay=pi3-miniuart-bt
enable_uart=1
dtoverlay=pi3-miniuart-bt
Démontez la carte SD:
sudo umount /mnt
sudo umount /mnt
Démarrez HomeAssistant, allez dans son interface web, puis Paramètres, Modules complémentaires, et installez Mosquitto Broker. Cochez Lancer au démarrage et Chien de garde.
Dans les modules complémentaires, utilisez le menu en haut à droite puis Dépôts, pour ajouter le dépôt https://github.com/zigbee2mqtt/hassio-zigbee2mqtt, et installez ensuite Zigbee2MQTT. Cocher Lancer au démarrage, Chien de garde et Afficher dans la barre latérale.
Complétez la configuration, dans la partie serial, ajoutez:
port: /dev/ttyAMA0
adapter: deconz
port: /dev/ttyAMA0
adapter: deconz
Démarrez Zigbee2MQTT.
Allez dans Paramètres, Appareils et services, l'intégration de MQTT devrait avoir été auto-détectée, il faut cliquer sur son bouton Configurer pour terminer sa configuration. Si l'intégration MQTT n'apparaît pas, il faut redémarrer HomeAssistant.
Depuis l'îcône dans la barre latérale, on peut accéder à l'interface de Zigbee2MQTT. À partir de là on peut appairer nos appareils.
Alarme
Pour l'alarme de maison, nous allons utiliser Alarmo.
Pour l'installer, il faut se connecter en SSH et faire:
cd config
mkdir custom_components
cd custom_components
cd config
mkdir custom_components
cd custom_components
Récupérez le lien vers la dernière version ZIP ici: https://github.com/nielsfaber/alarmo/releases, et l'installer (en utilisant la dernière version):
mkdir alarmo && cd alarmo
wget https://github.com/nielsfaber/alarmo/releases/download/v1.10.9/alarmo.zip
unzip alarmo.zip
rm alarmo.zip
mkdir alarmo && cd alarmo
wget https://github.com/nielsfaber/alarmo/releases/download/v1.10.9/alarmo.zip
unzip alarmo.zip
rm alarmo.zip
Redémarrez HomeAssistant.
Allez dans Paramètres, Appareils et services, et ajoutez l'intégration Alarmo.
Alarmo apparaît maintenant dans la barre latérale. Ajoutez les différents capteurs à la zone Alarmo, et configurez les différentes actions et notifications.
Accéder à HomeAssistant depuis l'extérieur
Configurez votre box Internet pour exposer le port 443
de HomeAssistant sur le port externe de votre choix. Ci-dessous, nous utiliserons le port 12345.
Créez un domaine sur https://www.duckdns.org. Nous considérons ci-dessous que votre domaine est myha.duckdns.org
Installez l'extension DuckDNS dans HomeAssistant. Configurez le token et le domaine, et dans la section Let's Encrypt, modifiez comme suit la ligne:
accept_terms: true
accept_terms: true
Cochez Lancer au démarrage et Chien de garde, puis démarrez DuckDNS.
Il faut maintenant configurer HomeAssistant pour qu'il utilise le certificat Let's Encrypt. On pourrait configurer le serveur HTTP de HomeAssistant pour qu'il utilise ces certificats, mais nous n'aurions alors plus d'accès avec l'application mobile au service en local avec le domaine local, on ne pourrait plus se connecter ni en HTTP, ni en HTTPS, car le certificat ne correspond pas. Nous allons donc configurer un proxy.
Se connecter via SSH, et éditer le fichier config/configuration.yaml
pour ajouter:
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
Allez dans les outils développeur dans l'interface de HomeAssistant, dans la zone du haut nous pouvons vérifier la configuration et redémarrer HomeAssistant.
Installez Nginx Home Assistant SSL proxy, et dans la configuration renseigner le domaine DuckDNS. Cocher Lancer au démarrage et Chien de garde. Démarrez le proxy.
L'accès local en HTTP s'effectue à l'adresse http://homeassistant:8123, l'accès distant en HTTPS à l'adresse https://myha.duckdns.org:12345.
Dans les paramètres de l'application mobile, on définit l'URL à https://myha.duckdns.org:12345. Autorisez l'application à toujours avoir accès à la position.
Note: La configuration de l'URL interne dans l'application fait que les notifications ne fonctionnent pas bien lorsque l'on change de réseau. Laissez donc ce champ vide.
Quelques personnalisations
En éditant le fichier configuration.yaml
, on peut retirer default_config:
et ajouter ce qu'il inclus par défaut mais en retirant ce que l'on ne veut pas. Voir: https://www.home-assistant.io/integrations/default_config/.
On peut trouver le contenu par défaut de default_config
dans les sources de HomeAssistant.
Résolution de problèmes
En cas de corruption de la carte SD
Au bout de quelques années, la carte SD peut montrer des signes d'usure dus aux écritures fréquentes qu'elle subit.
Commencez par réinstaller HomeAssistant sur une carte SD neuve. Utilisez le dernier backup pour avoir un système à nouveau fonctionnel.
Sur votre PC, monter la partition n°8 de la carte SD corrompue.
Copiez home-assistant_v2.db
et zigbee2mqtt
depuis le répertoire supervisor/homeassistant
de la partition.
Copiez également tous les fichiers supervisor/homeassistant/.storage/lovelace*
et supervisor/homeassistant/.storage/local_todo*
.
Vérifiez si la base de données est corrompue et essayez de la réparer avec:
cd /root/config
sqlite3 "home-assistant_v2.db" ".recover" | sqlite3 home-assistant_v2.db.fixed
cd /root/config
sqlite3 "home-assistant_v2.db" ".recover" | sqlite3 home-assistant_v2.db.fixed
Sur votre nouvelle installation, copiez via SSH ce fichier dans /root/config
. Arrêtez le core HomeAssistant:
ha core stop
ha core stop
Renommez home-assistant_v2.db.fixed
en home-assistant_v2.db
, et copiez les fichiers lovelace*
, local_todo*
à dans /homeassistant/.storage/
.
Redémarrez le service:
ha core start
ha core start