Je croise beaucoup d’entre vous sur le net qui rencontre un problème avec le plugin Xiaomi Home et le purificateur d’air Xiaomi Air Purifier 3H.

J’ai reçu le mien hier, et effectivement, le Purifier 3H n’est pas compatible avec l’extension Xiaomi Home.
J’y ai passé l’après-midi, mais je suis arrivé à mes fins, et il me semble important de partager cela avec vous.

Model de mon Purificateur d’Air : zhimi.airpurifier.mb3

Prérequis

Pour commencer vous devez :

  • Installer et activer le plugin Script sur votre Jeedom.
  • Installer l’outil Putty. (Pour se connecter en SSH à Jeedom).
  • Avoir en votre possession l’adresse IP et le Token de votre Purifier 3H.

Installation de la commande JQ

Nous allons installer la commande JQ sur votre Jeedom afin de pouvoir traiter les données JSON renvoyées par votre purificateur d’air Xiaomi Air Purifier 3H.

  • Connectez vous en SSH à l’aide de PuTTy à votre Jeedom.
  • Entrez la commande suivante :
sudo apt-get install jq -y

Installation de la commande miiocli

Pour que Jeedom puisse communiquer avec le purificateur d’air (Purifier 3H), vous devez installer miiocli.

  1. Connectez vous en SSH à l’aide de PuTTy à votre Jeedom.
  2. Entrez les commandes suivantes :
sudo apt-get install libffi-dev libssl-dev -y
sudo pip3 install python-miio

La commande miiocli (Xiaomi)

Cette commande permet de communiquer avec de nombreux appareils Xiaomi, tels que notre purificateur d’air.

Voici la liste des appareils pris en charge par la commande miiocli :

  • Xiaomi Mi Robot Vacuum V1, S5, M1S
  • Xiaomi Mi Home Air Conditioner Companion
  • Xiaomi Mi Smart Air Conditioner A (xiaomi.aircondition.mc1, mc2, mc4, mc5)
  • Xiaomi Mi Air Purifier
  • Xiaomi Mi Air Humidifier
  • Xiaomi Aqara Camera
  • Xiaomi Aqara Gateway (basic implementation, alarm, lights)
  • Xiaomi Mijia 360 1080p
  • Xiaomi Mijia STYJ02YM (Viomi)
  • Xiaomi Mi Smart WiFi Socket
  • Xiaomi Chuangmi Plug V1 (1 Socket, 1 USB Port)
  • Xiaomi Chuangmi Plug V3 (1 Socket, 2 USB Ports)
  • Xiaomi Smart Power Strip V1 and V2 (WiFi, 6 Ports)
  • Xiaomi Philips Eyecare Smart Lamp 2
  • Xiaomi Philips RW Read (philips.light.rwread)
  • Xiaomi Philips LED Ceiling Lamp
  • Xiaomi Philips LED Ball Lamp (philips.light.bulb)
  • Xiaomi Philips LED Ball Lamp White (philips.light.hbulb)
  • Xiaomi Philips Zhirui Smart LED Bulb E14 Candle Lamp
  • Xiaomi Philips Zhirui Bedroom Smart Lamp
  • Xiaomi Universal IR Remote Controller (Chuangmi IR)
  • Xiaomi Mi Smart Pedestal Fan V2, V3, SA1, ZA1, ZA3, ZA4, P5, P9, P10, P11
  • Xiaomi Mi Air Humidifier V1, CA1, CA4, CB1, MJJSQ, JSQ001
  • Xiaomi Mi Water Purifier (Basic support: Turn on & off)
  • Xiaomi Mi Water Purifier D1, C1 (Triple Setting)
  • Xiaomi PM2.5 Air Quality Monitor V1, B1, S1
  • Xiaomi Smart WiFi Speaker
  • Xiaomi Mi WiFi Repeater 2
  • Xiaomi Mi Smart Rice Cooker
  • Xiaomi Smartmi Fresh Air System VA2 (zhimi.airfresh.va2), VA4 (zhimi.airfresh.va4), T2017 (dmaker.airfresh.t2017)
  • Yeelight lights (basic support, we recommend using python-yeelight)
  • Xiaomi Mi Air Dehumidifier
  • Xiaomi Tinymu Smart Toilet Cover
  • Xiaomi 16 Relays Module
  • Xiaomi Xiao AI Smart Alarm Clock
  • Smartmi Radiant Heater Smart Version (ZA1 version)
  • Xiaomi Mi Smart Space Heater
  • Xiaomiyoupin Curtain Controller (Wi-Fi) (lumi.curtain.hagl05)

En SSH toujours, lancez la commande suivante afin de connaitre ce qu’il est possible de faire avec notre purificateur d’air :

sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] --help

Vous devriez normalement obtenir ceci :

Eteindre / Allumer

Voici les commandes pour éteindre et allumer votre Xiaomi Air Purifier 3H

sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur]on
sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur]off

Sélection du mode

sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur]set_mode auto
sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur]set_mode fan
sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur]set_mode favorite
sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur]set_mode silent

Activer / Désactiver le buzzer

sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] set_buzzer 1
sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] set_buzzer 0

Récupérer les informations

Sans doute la commande la plus intéressante !

sudo miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] status

Attention pour l’interprétation dans Jeedom, il est nécessaire de récupérer ces informations au format JSON :

sudo miiocli --output json airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] status

Création du script

Maintenant que notre jeedom est prêt à communiquer avec le purificateur d’air (Xiaomi Air Purifier 3H), nous allons créer un script grâce au plugin Script du market.

Voila comment le mien est configuré :

Pour les commandes, vous allez devoir créer une commande info qui récupère l’ensemble des informations dans un fichier JSON.

La commande Refresh

Renseignez votre commande comme suit :

Détail de la requête :

sudo miiocli --output json airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] status > /var/www/html/purifier.json

Les commandes d’informations

Maintenant nous allons créer une commande par information que nous voulons récupérer.
Voila ce que j’ai réalisé chez moi :

Les commandes d’actions

Vous allez maintenant créer les commandes d’actions permettant de :

  • Eteindre l’appareil (off)
  • Allumer l’appareil (on)
  • Activer/Désactiver le buzzer (set_buzzer)
  • Switcher entre les 3 vitesses de ventilation (set_fan_level)
  • Définir le niveau de ventilation en favori (set_favorite_level)
  • Définir la luminosité de l’écran (set_led_brightness)
  • Définir le mode (set_mode)
  • Définir le volume (set_volume)

Voici comment est construite la commande :

miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] [Paramètre] (Option)

Exemple de commande pour passer le purificateur en mode automatique :

miiocli airpurifiermiot --ip [IpDeVotrePurificateur] --token [TokenDeVotrePurificateur] set_mode auto

Voici un aperçu de mes commandes d’actions :

Résultat

Voila ce que ça donne :

J’espère vous avoir aidé ! Si vous rencontrez un problème, n’hésitez pas à laisser un commentaire 😉