Skip to content

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.

image 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

image 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.

image 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

Source