![]() |
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.
Sommaire
- 1 Configurer les appareils et la Gateway depuis l’appli Mi Home
- 2 Installer les composants pour prendre en charge les appareils Xiaomi dans Home Assistant
- 3 Installation classique
- 4 Installation dans un environnement virtuel (depuis décembre 2016)
- 5 Configurer la Gateway Xiaomi Mijia dans Home Assistant
- 6 Comment activer le mode développer sur l’appli Mi Home ?
- 7 Trouver les identifiants des appareils avec un script Nodejs depuis un ordinateur
- 8 Déclarer la gateway Xiaomi dans le fichier configuration.yaml
- 9 Autres paramètres
- 10 Création des vues et des groupes
- 11 Actualisation de la configuration
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.
Avertissement. Le kit Xiaomi Smart Home est destiné au marché Chinois. Les appareils ne sont pas certifiés CE ou FCC. Vous êtes responsable de l’utilisation des appareils Xiaomi. Projets DIY ne pourra pas être tenu pour responsable en cas d’accident, blessure ou détérioration de matériel.
Banggood.com
Banggood.com
Banggood.com
13,99€
En Stock
actualisé le 7 août 2022 11 h 15 min
16,99€
En Stock
actualisé le 7 août 2022 11 h 15 min
Tout passe obligatoirement par une passerelle WiFI / Zigbee. La gateway fait le lien entre les appareils Xiaomi Mi Home (ancienne gamme 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)
- Gateway Light
- Ampoules RGB Yeelight (non CE, FC)
- 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
cd /home/pi/Desktop/ git clone https://github.com/lazcad/homeassistant
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
cp -rv /home/pi/Desktop/homeassistant/components/* /home/homeassistant/.homeassistant/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
sudo su -s /bin/bash homeassistant cp -rv /home/pi/Desktop/homeassistant/components/* /srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/
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.
Cliquez sur 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.
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).
Activez le mode développeur (1) et notez la clé (2)
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).
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.
node listeners.js { cmd: 'iam', port: '9898', sid: '286c078XXXXX', model: 'gateway', ip: '192.168.1.28' } { cmd: 'get_id_list', sid: '286c078XXXXX' } { cmd: 'get_id_list_ack', sid: '286c078XXXXX', token: 'D5M1ElWcNl5XXXXX', data: [ '158d000156cbfa', '158d000155d2b7', '158d000149a352', '158d000159a218' ] } th 158d000156cbfa 18.71 59.87 { cmd: 'read_ack', model: 'sensor_ht', sid: '158d000156cbfa', short_id: 16853, data: { voltage: 2975, temperature: '1871', humidity: '5987' } } { cmd: 'read_ack', model: 'switch', sid: '158d000155d2b7', short_id: 33826, data: { voltage: 3142 } } MAGNET 158d000149a352 true { cmd: 'read_ack', model: 'magnet', sid: '158d000149a352', short_id: 41765, data: { voltage: 3055, status: 'close' } } motion 158d000159a218 false { cmd: 'read_ack', model: 'motion', sid: '158d000159a218', short_id: 11179, data: { voltage: 3055, status: 'no_motion' } }
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
cd /home/homeassistant/.homeassistant/ sudo nano 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.
#Xiaomi xiaomi: gateways: - sid: key: 4057E52D9XXXXXXX
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
group: !include group.yaml
On va faire de même pour la customization des affichages. Ajoutez cette option dans le bloc homeassistant: (le 1er bloc)
customize: !include customize.yaml
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.
sudo nano customize.yaml
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
temperature: name: Température et humidité entities: - sensor.temperature_158d000156cbfa - sensor.humidity_158d000156cbfa
Celui-ci l’état du détecteur de mouvement
motion_sensors: name: Mouvements entities: - binary_sensor.motion_sensor_158d000159a218
On peut aussi grouper par localisation. Ici les appareils présents dans le bureau
desk: name: Bureau entities: - light.gateway_light_286c07891571 - sensor.temperature_158d000156cbfa - sensor.humidity_158d000156cbfa - binary_sensor.switch_158d000155d2b7 #bouton connecté
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.
default_view: name: Maison view: yes entities: - sun.sun - group.security - group.desk
Voici le fichier de configuration complet qu’il vous suffit de coller
####################################### # Views - Vues # ####################################### default_view: name: Maison view: yes entities: - sun.sun - group.security - group.desk sensor_view: name: Capteurs view: yes icon: mdi:gauge entities: - group.temperature - group.motion_sensors - group.doors_windows - group.lights ####################################### # grouped by type of sensor # ####################################### temperature: name: Température et humidité entities: - sensor.temperature_158d000156cbfa - sensor.humidity_158d000156cbfa motion_sensors: name: Mouvements entities: - binary_sensor.motion_sensor_158d000159a218 switchs: name: Commandes entities: - binary_sensor.switch_158d000155d2b7 lights: name: Eclairages à Led entities: - light.gateway_light_286c07891571 #Xiaomi Gateway Led Ring doors_windows: name: Portes et fenêtres entities: - binary_sensor.door_window_sensor_158d000149a352 ####################################### # grouped by localization # ####################################### security: name: Sécurité entities: - binary_sensor.motion_sensor_158d000159a218 - binary_sensor.door_window_sensor_158d000149a352 desk: name: Bureau entities: - light.gateway_light_286c07891571 - sensor.temperature_158d000156cbfa - sensor.humidity_158d000156cbfa - binary_sensor.switch_158d000155d2b7 #bouton connecté
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
################################################################################################################# # Xiaomi sensors customization # # General settings : https://home-assistant.io/docs/configuration/customizing-devices/ # # device_class : https://home-assistant.io/components/binary_sensor/ # # After modification, go to developer tools (phone icon) and choose homeassistant/reload_core_config then apply # # projetsdiy.fr | diyprojects.io | May 2017 # ################################################################################################################# sensor.temperature_158d000156cbfa: friendly_name: Température bureau sensor.humidity_158d000156cbfa: friendly_name: Humidité bureau icon: mdi:water-percent binary_sensor.motion_sensor_158d000159a218: friendly_name: Présence bureau binary_sensor.door_window_sensor_158d000149a352: friendly_name: Porte d'entrée device_class: opening binary_sensor.switch_158d000155d2b7: friendly_name: Bouton connecté light.gateway_light_286c07891571: friendly_name: Anneau lumineux Gateway Xiaomi
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 là
- 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
sudo systemctl restart home-assistant
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).
Voilà, tout est parfaitement fonctionnel. Ici l’écran d’accueil.
Et l’écran (la vue) des capteurs
Vous pouvez même allumer et changer la couleur et l’intensité de l’anneau lumineux de la Gateway Xiaomi.
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 ou Aliexpress (à partir de 62€ sans prise commandée). Dans le prochain tutoriel, nous verrons comment gérer les événements.
|
Avez-vous aimé cet article ?