✅ Intégrer le matériel Xiaomi dans Home Assistant


licence
Débutant / Intermédiaire / Avancé

Quand on débute dans la domotique, nous cherchons des choses belles et peu chères au début. Pour le premier critère il y a le DIY (le fait maison), mais il ne réunit pas forcement le deuxième critère qui est que ce soit joli. Avec la grande démocratisation de la maison connectée, il y a maintenant sur le marché plusieurs solutions design et peu coûteuses. La marque Xiaomi en a d’ailleurs fait son cheval de bataille.

J’ai commencé, et continue d’ailleurs, à acheter du matériel Xiaomi. Leur gamme de produit pour la maison connectée est complète, design, et souvent peu cher.

Nous allons voir maintenant comment intégrer vos matériels Xiaomi afin que l’on puisse les faire communiquer avec d’autres matériels.

Matériels

  • Gateway Xiaomi compatible.
    Compatibilité :
    • lumi.gateway.v2: ok
    • lumi.gateway.v3 : ok
    • lumi.gateway.aqhm01 : ko

Pré-requis

  • L’adresse IP et MAC de la Gateway,
  • Autoriser la connexion LAN sur la Gateway (ouverture du port UDP 9898)
  • Récupérer le token de la Gateway.

Pour récupérer l’adresse MAC et l’IP, il vous suffit d’aller dans les paramètres de votre Gateway.
Une fois intégrer votre Gateway dans Mi Home, cliquer dessus puis sur le menu trois points en haut a droite, descendre dans paramètres supplémentaires puis Informations sur le réseaux. Vous pouvez récupérer l’adresse MAC, l’IP et le token.

Recuperer Adress IP et MAC de la gateway Xiaomi|179x389,

Pour la connexion LAN, je vous invite à lire cet article.

Matériels utilisés

  • Version de HA Core : V 2021.2.2.
  • Gateway Xiaomi Aqara (DGNWG02LM / lumi.gateway.v3)
  • Capteur de porte Xiaomi ou tout autre capteur Zigbee déjà intégré à votre passerelle via Mi Home.

Intégration

Dorénavant l’intégration de la Gateway Xiaomi se fait depuis l’interface de Home Assistant, fini le fichier configuration.yaml pour le moment.

Il vous faudra ajouter deux intégrations :

  • Xiaomi Gateway (Aqara),
  • Xiaomi Miio.

Il se peut qu’elles soient automatiquement détectées via le Discovery, dans ce cas il vous faudra seulement rentrer les paramètres demandés.

Xiaomi Miio

Dans configuration intégration AJOUTER INTÉGRATION rechercher Xiaomi Miio entrer l’adresse IP puis le token, donnez lui un nom différent si vous le souhaitez et sélectionner une pièce.
Integrer Xiaomi Miio avec token

Cette intégration vous permet d’activer l’alarme Xiaomi (celle de votre Mi Home), de récupérer l’info luminosité (sur ma gateway) et de jouer avec le cercle lumineux.
Entites Gateway  Xiaomi Miio

Xiaomi Gateway (Aqara)

Dans configuration intégration AJOUTER INTÉGRATION rechercher Xiaomi Gateway (Aqara) saisissez l’adresse IP et l’adresse MAC de votre Gateway, laisser « interface réseau à utiliser » sur any, insérer la clé LAN, changer le nom si vous le souhaitez et sélectionner une pièce.

Integrer Xiaomi Gateway avec cle LAN

Cette intégration vous permet de récupérer les entités luminosité et le cercle lumineux comme au dessus mais aussi vos différents capteurs zigbee intégrés dans votre application Mi Home.

Entites Gateway  Xiaomi Gateway

Ajouter un nouveau capteur.

Pour ajouter un capteur vous pouvez soit le faire via Mi Home, soit via l’outils de développement avec cette commande xiaomi_aqara.add_device.
Ajouter un device Xiaomi via outils de developpement

Une fois la commande lancée votre Gateway va parler et il vous suffit alors d’effectuer la procédure d’appairage de votre capteur.

Il vous faut ensuite recharger votre intégration Xiaomi Gateway Aqara votre nouveau capteur devrait apparaître.
Recharger l'integration Xiaomi

Pour supprimer un capteur c’est presque la même chose mais avec la commande xiaomi_aqara.remove_device puis l’ ID du capteur :

device_id: 158d00041fdacd
gw_mac: 7811DCB24743

Jouer une sonnerie.

La liste de sonneries disponible se trouve ici. Si vous souhaitez jouer une sonnerie que vous avez ajouté vous même (depuis Mi Home) cela commencera avec l’ID 10001 puis 10002 etc.
Jouer et arrêter la sonnerie gateway xiaomi

Création d’entités pour panneau de contrôle.

Ok c’est bien gentil tout ça mais c’est pas très pratique ?
Nous allons voir comment contrôler ça depuis une carte. Pour cela nous allons utiliser la méthode packges pour la configuration (plus d’informations sur l’organisation du fichier de configuration).
Après avoir créé un nouveau fichier que j’ai nommé xiaomi_controle.yaml dans le dossier packages.

Nous allons maintenant le remplir avec des input_booleen, des input_number, des input_select, des automations, des scripts.

J’ai essayé de commenter un maximum de choses donc je ne vais pas le détailler. Si vous avez besoin d’aide, c’est en bas de l’article.

input_boolean:
### Input boolean pour couper le son du gateway ###
  jouer_sonneries_gateway:
    name: Play
    icon: mdi:play
### Input boolean pour stop le son du gateway ###
  stop_sonneries_gateway:
    name: Stop
    icon: mdi:stop
### Input boolean pour ajouter un nouveau device à la gateway ###
  ajout_device:
    name: Ajout Device
    icon: mdi:plus-circle

input_number:
### Input slider pour contrôler le volume du gateway ###
  volume_gateway:
    name: Volume
    initial: 1
    min: 1
    max: 100
    step: 1
    icon: mdi:volume-high
   
input_select:
### Gateway Xiaomi Liste des Sons.
  sonneries_gateway:  ##id de votre input select  
    name: Sonneries Gateway ## frendly name en gros
    options: 
      - "0 - Police car 1" ## Liste des sons disponnibles
      - "1 - Police car 2"
      - "2 - Accident"
      - "3 - Countdown"
      - "4 - Ghost"
      - "5 - Sniper rifle"
      - "6 - Battle"
      - "7 - Air raid"
      - "8 - Bark"
  #    - "9 - None"
      - "10 - Doorbell"
      - "11 - Knock at a door"
      - "12 - Amuse"
      - "13 - Alarm clock"
  #    - "14 - None"
  #    - "15 - None"
  #    - "16 - None"
  #    - "17 - None"
  #    - "18 - None"
  #    - "19 - None"
      - "20 - MiMix"
      - "21 - Enthusiastic"
      - "22 - GuitarClassic"
      - "23 - IceWorldPiano"
      - "24 - LeisureTime"
      - "25 - ChildHood"
      - "26 - MorningStreamLiet"
      - "27 - MusicBox"
      - "28 - Orange"
      - "29 - Thinker"
#      - "10001 - Perso1" ## si vous ajoutez des sons persos depuis Mi Home
#      - "10002 - Perso2"
    initial: "1 - Police car 2"    
    icon: mdi:music-note ## Icône de https://materialdesignicons.com/
   
    
automation:
## Jouer Sonnerie
- id: jouer_sonnerie_gateway
  alias: Jouer sonnerie
  initial_state: true
  trigger:
  - platform: state
    entity_id: input_boolean.jouer_sonneries_gateway
    to: 'on'
  action:
  - service: xiaomi_aqara.play_ringtone
    data_template:
      gw_mac: !secret gatewayMAC
      ringtone_id: '{{ states.input_select.sonneries_gateway.state.split(''-'')[0]
        }}'
      ringtone_vol: '{{ states.input_number.volume_gateway.state|int }}'
  - delay: '10'
  - data: {}
    entity_id: input_boolean.jouer_sonneries_gateway
    service: input_boolean.turn_off

## Stopper la Sonnerie
- id: stopper_sonnerie_gateway
  alias: Stopper sonneries
  initial_state: true
  trigger:
  - platform: state
    entity_id: input_boolean.stop_sonneries_gateway
    to: 'on'
  action:
  - service: xiaomi_aqara.stop_ringtone
    data_template:
      gw_mac: !secret gatewayMAC
  - delay: '1'
  - data: {}
    entity_id: input_boolean.stop_sonneries_gateway
    service: input_boolean.turn_off

## Ajouter un Device
- id: ajouter_devices_gateway
  alias: Ajout Devices
  description: ''
  trigger:
  - platform: state
    entity_id: input_boolean.ajout_device
    to: 'on'
  action:
  - service: xiaomi_aqara.add_device
    data_template:
      gw_mac: !secret gatewayMAC
  - delay: '30'
  - data: {}
    entity_id: input_boolean.ajout_device
    service: input_boolean.turn_off

Pour plus de simplicité j’ai ajouté mon adresse MAC dans le fichier secret.yaml avec gatewayMAC: 'XX:XX:XX:XX:XX'

Vérifiez votre configuration puis redémarrez votre serveur.

Il vous reste à vérifier la présence de vos nouvelles entités.
Verification des entités du package xiaomi

Interface

Nous avons maintenant la possibilité d’activer notre Alarme Xiaomi (celle de Mi Home) depuis l’interface de Home Assistant.

Mais aussi nous allons faire un panneau de contrôle simple avec le code ci-dessous.
Panneau de controle Xiaomi

type: entities
entities:
  - entity: light.xiaomi_gateway_light_2
  - entity: input_select.sonneries_gateway
  - entity: input_number.volume_gateway
  - entity: input_boolean.jouer_sonneries_gateway
  - entity: input_boolean.stop_sonneries_gateway
  - entity: input_boolean.ajout_device
title: Xiaomi contrôle
show_header_toggle: false

Conclusion.

Vous pouvez maintenant intégrer votre domotique (zigbee) Xiaomi dans Home Assistant tout en gardant le contrôle via le cloud Xiaomi.

Une question, un problème

Besoin d'aide ? Cliquez ici !

Annexes

Sources

Suivi des modifications

  • 17/02/2021 : V2 refonte totale de l’article @McFly
  • 15/05/2020 : V1 @McFly
2 « J'aime »

Si vous souhaitez gérer le Gateway en mode alarme, j’ai adapté une version YAML en Node Red.

https://forum.hacf.fr/t/install-dckiller/513/11?u=dckiller

2 « J'aime »

Bonjour et meilleurs voeux à tous,
je viens tout juste d’installer home assistant et essaie d’integrer ma passerelle xiaomi. J’avais fait la maj de l’application Xiaomi home (6.0.210 du 24 dec 2020) et je ne peux plus activer le protocole de communiction LAN. Est ce que quelqu’un a une solution?
Merci d’vance pour votre aide

Soit avec l’application officielle qui avait encore cette fonctionnalité :

Soit, mais jamais testé, avec l’application modifiée Vevs :

https://forum.hacf.fr/t/recuperer-le-token-et-l-encryptor-de-ses-appareils-xiaomi-avec-mi-home-vevs/1366

Bonjour suite à la mise à jour et confronté a l’impossibilité de retrouver le token de la passerelle j’ai trouvé ça qui fais le job
https://github.com/Maxmudjon/Get_MiHome_devices_token/releases/tag/1.0.2

1 « J'aime »