Accueil | Niveau de difficulté | Confirmé | Installation et inclusion du kit Xiaomi Smart Home sur Home Assistant (HASS)

Installation et inclusion du kit Xiaomi Smart Home sur Home Assistant (HASS)

Le kit Xiaomi Smart Home est très bien pris en charge par le serveur domotique Open Source Home Assistant. Ce kit très économique est très bien adapté pour débuter en domotique. Dans ce tutoriel, nous allons configurer étape par étape les principaux appareils du kit : passerelle domotique (gateway), sonde de température et d’humidité, contacteur de porte et fenêtre, détecteur de mouvement et bouton connecté. Ce tutoriel a été mis au point un serveur Home Assistant fonctionnant sur un Orange Pi+ 2e sous Armbian. L’installation est identique sur Raspberry Pi.

Configurer les appareils et la Gateway depuis l’appli Mi Home

Avant d’ajouter les appareils Xiaomi à Home Assistant, il est nécessaire de les configurer depuis l’application mobile iOS ou Android. Pour cela, je vous invite à suivre cet article qui explique pas à pas comment faire.

Note sur la sécurité et les données personnelles

Tout passe obligatoirement par une gateway. La gateway fait le lien entre les appareils Aqara qui fonctionnent généralement en Zigbee et l’application mobile. Vous l’avez compris, tout passe obligatoirement par les serveurs de Xiaomi en Chine. Même en connectant les appareils à un serveur domotique, les données passerons obligatoirement par ces serveurs. Pour le moment, il n’existe pas encore (à ma connaissance) de hack du firmware qui permettrait de garder le contrôle des données personnelles qui transitent par la gateway (sondes, voix, vidéo, état des capteurs…).

Installer les composants pour prendre en charge les appareils Xiaomi dans Home Assistant

Il existe plusieurs projets sur GitHub pour ajouter le support des appareils Xiaomi à Home Assistant. Pour ce tutoriel, j’ai utilisé le projet de lazcad disponible ici qui est un fork du projet homeassistant-aqara de foxxy. La dénomination des produits Xiaomi n’est pas toujours très claire. Ce kit porte souvent le nom aqara (ou aquara, ou Mijia, ou MiHome !). Lazcas (http://lazcad.com) est allé plus loin que le projet initial en supportant un plus grand nombre d’appareils. En voici la liste actuelle tirée de l’analyse du code source :

  • Capteurs binaires (binary_sensor)
  • Lumière (light)
  • Capteurs (sensor)
  • Interrupteur (switch)
    • Aqara Wall Switch (Single) : interrupteur simple à encastrer (non CE, FC)
    • Aqara Wall Switch (Double) : interrupteur double à encastrer (non CE, FC)
    • Aqara Wireless Switch (Single) : interrupteur simple à poser (non CE, FC)
    • Aqara Wireless Switch (Double) : interrupteur double à poser (non CE, FC)
    • Plug : prise connecté (non CE, FC)
Avertissement. Les appareils Xiaomi sont commercialisés uniquement en Chine. Il est toutefous possible de les acheter en dehors de Chine. Certains appareils peuvent être utilisés dans le cadre du loisir ou de l’apprentissage (capteurs, sondes, boutons connectés, caméras…). D’autres appareils ne doivent pas être utilisés car ils ne sont certifiés CE, NF ou FC (en fonction de votre pays). C’est par exemple le cas pour tous les appareils qui utilisent une tension d’alimentation de 110V ou 220V (prise connectée, interrupteur connecté, ampoules connectées…), détecteur de fumées. Cette liste est non exhaustive. Vous êtes responsable de l’utilisation des appareils Xiaomi dans votre habitation. Projets DIY ne pourra pas être tenu pour responsable en cas d’accident, blessure corporelle ou détérioration de matériel.

Passons maintenant à l’installation des composants. Ouvrez un Terminal ou connectez-vous en SSH au serveur domotique. Placez vous dans un répertoire, par exemple /home/pi/Desktop puis récupérez les sources du projet

Ensuite copiez les fichiers dans le repertoire des composants (components) de Home Assistant. La procédure est différente en fonction de l’installation choisie.

Installation classique

Le répertoire de destination est  /home/homeassistant/.homeassistant/custom_components

Le répertoire de destination peut évoluer (custom_components)

Le répertoire des composants peut également se trouver dans le dossier /home/USER/.local/lib/python3.5/site-packages/homeassistant/components/

Vous pouvez supprimer les fichiers source. Vous pouvez également récupérer les fichiers depuis un autre ordinateur et télécharger les fichiers en FTP.

Installation dans un environnement virtuel (depuis décembre 2016)

C’est un peu plus long car il faut commencer par changer d’utilisateur avant de procéder à la copie des fichiers

Le dossier de destination pourra évoluer avec les versions de Python utilisées. Ici c’est la 3.5

Vous pouvez vous déconnecter (exit) puis supprimer les fichiers source.

Configurer la Gateway Xiaomi Mijia dans Home Assistant

La première chose à faire est de configurer la Gateway Xiaomi. Pour cela, ouvrez l’application Mi Home sur votre smartphone ou tablette et ouvrez la Gateway. Dans le tutoriel précédent, nous avons vu comment configurer des appareils sur l’application Mi Home. Maintenant, pour pouvoir les intégrer à un serveur domotique, il est nécessaire d’activer le mode développeur.

Comment activer le mode développer sur l’appli Mi Home ?

Le mode développeur va exposer les trames sur le réseau local en UDP. Pour activer le mode développeur, sélectionnez la gateway puis cliquez sur les trois points dans le coin supérieur droit de l’écran.

xiaomi mi home gateway acces developper

Cliquez sur About

 xiaomi mi home gateway acces developper about

Maintenant faites un double tap (n’hésitez pas à recommencer plusieurs fois !) pour faire apparaître les options cachées. Il m’a fallu des heures pour trouver l’astuce ! Auparavant, il fallait passer par le numéro de version présent en bas de l’écran.

 xiaomi mi home gateway acces developper double tap

Comme par magie, les options cachées s’affichent :-). Sélectionnez la 4ème ligne (ne me demandez pas la traduction exacte, c’est aussi du chinois pour moi).

xiaomi mi home gateway activate developper tools

Activez le mode développeur (1) et notez la clé (2)

xiaomi mi home gateway developper mode sid

Confirmez et ouvrez le 5ème menu. Vous obtenez un rapport technique sur la gateway (1) et les périphériques connectés à celle-ci (2).

xiaomi mi home gateway developper identifiants

Trouver les identifiants des appareils avec un script Nodejs depuis un ordinateur

Il est également possible (et plus facile pour la configuration) de récupérer les identifiants des appareils connectés à la gateway à l’aide d’un script Nodejs. Lisez cet article pour installer Nodejs sur votre ordinateur.

Récupérez le projet ici. Lancez le script listeners.js (avec la commande node listeners.js ) pour récupérer les identifiants et d’autres informations. Voici un exemple de ma configuration (certains identifiants sont tronqués). Ctrl + C pour interrompre le script. La gateway est affichée en premier (iam). On trouve ensuite la sonde de température et d’humidité (th), de détecteur d’ouverture de porte (magnet) et enfin de détecteur de mouvement (motion). Le script récupère également l’état (ou la valeur) de chaque appareil ainsi que la tension de la batterie. Si la programmation Javascript vous intéresse, c’est un bon point de départ pour en apprendre plus.

Déclarer la gateway Xiaomi dans le fichier configuration.yaml

Maintenant, connectez vous au serveur et placez vous dans le répertoire de Home Assistant et ouvrez le fichier configuration.yaml

Collez ce bloc (à la fin par exemple) en remplaçant la valeur key par la clé développeur obtenue dans l’appli Mi Home.

Autres paramètres

Il est possible d’ajouter les appareils directement dans le fichier configuration.yaml, mais il est plus judicieux de séparer les éléments pour faciliter la maintenance. Au fur et à mesure que la configuration évolue, le fichier peut devenir très grand, donc plus difficile à maintenir. De plus, il est plus facile d’actualiser l’interface sans avoir à redémarrer HASS à chaque fois.

Pour cela, on va indiquer à HASS qu’il doit utiliser un fichier de configuration externe pour les groupes, ajoutez cette option

On va faire de même pour la customization des affichages. Ajoutez cette option dans le bloc homeassistant: (le 1er bloc)

Enfin, commentez (#) l’option introduction pour désactiver le bloc d’informations affiché sur la vue principale. Enregistrez avec Ctrl + X puis O.

Création des vues et des groupes

Nous allons donc créer un fichier appelé customize.yaml. Nous verrons plus en détail le fonctionnement d’Home Assistant dans un prochain tutoriel. Ici, nous allons aller à l’essentiel. Les vues sont des onglets thématiques qui sont affichés en haut de l’écran. Par exemple, on pourra regrouper (les groupes) les éléments par pièces. Ici, on va simplement créer des groupes par types de capteurs et deux vues : Maison et Capteurs.

Pour appeler les différents appareils, on doit faire référence à son type puis lui associer son identifiant. Voici les types d’appareils. On les retrouve facilement dans le fichier xiaomi.py depuis le code source (un fichier par type de capteur).

Ce qui donne pour les principaux capteurs

  • Motion : binary_sensor.motion_sensor_XXXXXXXXXXXXXX
  • Température : sensor.temperature_XXXXXXXXXXXXXX
  • Humidité : sensor.humidity_XXXXXXXXXXXXXX
  • Switch : binary_sensor.switch_XXXXXXXXXXXXXX

Pour créer un groupe, il suffit de lui donner un étiquette et de définir son nom (name) ainsi que son contenu (entities). Par exemple, ce groupe affiche les mesures de température

Celui-ci l’état du détecteur de mouvement

On peut aussi grouper par localisation. Ici les appareils présents dans le bureau

Voilà, il ne reste plus qu’à créer les vues qui contiendront les groupes. Il est possible de remplacer la vue par défaut d’HASS (default_view). Les entities peuvent contenir des groupes ou directement des mesures/états.

Remarque. Il n’est pas possible d’afficher plusieurs fois le même éléments dans une vue. Par exemple afficher la température d’une pièce dans la barre des sondes et dans un groupe.

Voici le fichier de configuration complet qu’il vous suffit de coller

Modifier l’affichage des appareils (customize.yaml)

Si vous redémarrez HASS pour prendre en compte la configuration, vous allez voir que HASS utilise le nom des variables pour créer les libellés des capteurs/actionneurs. On va arranger tout ça. Créez un nouveau fichier appelé customize.yaml et collez le contenu de ce bloc

Pour chaque appareil, on peut ajouter plusieurs paramètres (documentation) :

  • friendly_name : le libellé de l’appareil qui sera affiché à l’écran
  • hidden : masque ou affiche l’élément
  • entity_picture : chemin vers une image à utiliser à la place de l’icône
  • icon : icône à utiliser. Il faut mettre un préfixe. Par exemple mdi:home. Compatible avec les icônes Material Design de Google
  • device_class : permet de changer le libellé en fonction du type de capteur. La liste complète ici et
  • assumed_state : lorsqu’un capteur renvoi un état connu. Par exemple un interrupteur allumé/fermé

Actualisation de la configuration

Tout est prêt. Pour prendre en compte la configuration, il est possible de re-démarrer HASS depuis le Terminal

Le premier démarrage va prendre un peu de temps car ASS va récupérer et installer les dépendances nécessaires (pycrypto notamment).

C’est aussi possible depuis l’interface en allant à l’onglet Configuration. Vous pouvez recharger la configuration (reload core ou reload groups) ou relancer le serveur (restart).

hass home assistant reload configuration restart server

En cas d’erreur, n’hésitez pas à redémarrer le serveur avant de vous lancer dans les recherches.

Voilà, tout est parfaitement fonctionnel. Ici l’écran d’accueil.

home assistant xiaomi smart home mijia aqara default view

Et l’écran (la vue) des capteurs

home assistant xiaomi smart home mijia aqara sensor view

Vous pouvez même allumer et changer la couleur et l’intensité de l’anneau lumineux de la Gateway Xiaomi.

 home assistant xiaomi smart home mijia aqara led ring gateway

La configuration de Home Assistant peut paraître compliquée. C’est vrai que par rapport aux autres serveurs (Domotoicz, Jeedom…) que l’on peut entièrement (ou presque) configurer à la souris, c’est un peu déroutant. HASS est entièrement gratuit (y compris les plugins). Le kit Xiaomi est très facile à intégrer dans Home Assistant. Disponible en ligne en direct de Chine, il est souvent en promo chez Gearbest (environ 70€) ou Aliexpress (à partir de 62€ sans prise commandée). Dans le prochain tutoriel, nous verrons comment gérer les événements.

  • Paulo Rosa

    Merci pour cet article trés bien construit. C’est le premier de ce type que je vois en français dédié au systeme Home Assistant et Xiaomi. Juste une petite remarque: tout le processus d’installation a été tré simplifié depuis les derniéres versions de Home assistant.(0.50) il suffit juste d’ajouter quelques lignes dans le fichier config.yaml pour que tout le kit Xiaomi soit detecté. 😉 Ce serait peut-être interessant de revoir les parties simplifiées et maintenir, expliquer les parties dificiles à cerner comme les groupes, automatismes,etc… Quant à l’application Xiaomi Mi Home, les options que tu presente en chinois ont aussi aparremment été traduites en anglais depois l’edition de ton article (version 4.2.5). Xiaomi actualise trés souvent ses aplications heureusement (car ils traduisent les parties manquantes). Merci encore pour ton article. J’ai gardé ton site en favori car il a plusieurs thémes qui m’interessent et eclaircissent des points que je n’avais pas bien compris, assimilé. ;-)) A+

    • Bonjour Paulo et merci beaucoup. Je suis toujours très heureux quand un tuto répond à vos attentes :-). Effectivement HASS est capable de détecter et d’inclure automatiquement les appareils Xiaomi. J’ai choisi d’y aller étape par étape car j’aime bien avoir la maîtrise de l’organisation de l’interface, sinon c’est rapidement brouillon. Tu as raison, HASS est super puissant et pas toujours facile à configurer. Dommage que la configuration soit si orientée “développeur”, ça peut rebuter rapidement…et pourtant il et tellement puissant. En plus l’appli mobile est top (et gratuite)…à condition d’avoir un iPhone pour le moment. Je vais actualiser l’article sur l’appli Mi Home. A très bientôt.

      • Jérôme

        Nickel le tuto! Par contre, pour la sécurité, il suffit de bloquer internet pour l’ip de la gateway (avec un routeur)! Ainsi les chinois n’ont plus accès à notre maison !