Page 1 sur 4

[Plugin] Xiaomi Air Purifier 3H & 3C

Publié : 01 août 2020, 17:11
par Deufo
Bonjour,
Ayant fraîchement reçu un Xiaomi Air Purifier 3H, je voulais pouvoir le commander directement depuis domoticz et avoir le relevé de temperature, humidité ainsi que la mesure du capteur de particule pm2.5 même si sa mesure semble aléatoire.

J'ai trouvé un projet un peu ancien de xiaoyao9184 implémentant la librairie python-miio. J'ai donc ajouté la compatibilité avec le 3H, je n'ai pas testé les autres plugins.

Je suis satisfait du résultat mais j'aimerai quelques retours s'il y a d'autres possesseurs désireux de ne pas utiliser l'application Mi Home.

Le plugin nécessite les librairies suivantes :
- python-miio
- ptvsd (debug)
- rpdb (debug)
Les librairies pour le debug pourraient être enlevées à terme.

Ca se passe par ici : https://github.com/xiaoyao9184/DomoticzXiaomiPlugins
Le plugin peut être installé directement par la commande :

Code : Tout sélectionner

curl -L https://github.com/xiaoyao9184/DomoticzXiaomiPlugins/raw/master/install.sh | bash
Il faut choisir le plugin MiioAirPurifierMiot pour le 3H & 3C.

Une fois la configuration wifi du Purifier faite avec l'application Mi Home, il faut récupérer l'IP et son token.
Vous pouvez utiliser cet utilitaire : https://github.com/PiotrMachowski/Xiaom ... -extractor
Sous linux, ça fonctionne via la commande suivante, il demande son login et mot de passe :

Code : Tout sélectionner

bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run.sh)
OLD
Pour le token, j'ai suivi : https://python-miio.readthedocs.io/en/l ... -home-logs
Installation de l'apk MI Home 5.4.49 et dans le repertoire SmartHome/logs/plug_DeviceManager, j'ai retrouvé l'information dans un log.
Un aperçu de ce qu'il est possible de faire :
Image

Informations :
- Temperature
- Humidité
- Température + Humidité
- Capteur pm2.5 instantané et moyenne
- Etat du filtre
- Vitesse de rotation du moteur
...

Commandes:
- On/off
- Mode Auto, Fan, Silent ou Favoris
- Vitesse Favoris
- Vitesse Fan
- Luminosité écran
- Eteindre écran
- buzzer on/off
- sécurité enfant pour le LCD


J'espère que ça pourra vous être utile.

Re: Plugin Xiaomi Air Purifier 3H

Publié : 10 août 2020, 17:08
par 0rsa
Hello Deufo,
Merci ça m'intéresse beaucoup.
J'ai domoticz sur une Debian installée dans /home/user/domoticz, ça semble raccord avec ton script d'install mais j'ai ce message à l'installation :
"Domoticz not installed!"
J'ai essayé de forcer le path de domoticz à la main dans le fichier d'install mais il ne veut rien savoir quand même.
Tu sais de quoi ça peut venir ?
Merci
-----
EDIT : en fait je n'ai pas le fichier /etc/domoticz/setupVars.conf
-----
EDIT 2 : jai dégagé la partie du check des setupvars vu que j'ai cru comprendre que c'était pas utilisé ensuite et ça s'est bien installé. Je continue.
Sur debian donc, enlevez ça du code de l'install
if [[ -f ${setupVars} ]]; then
useUpdateVars=false
else
echo "Domoticz not installed!"
exit
fi
-----
EDIT 3 : une fois le device ajouté dans Domoticz, j'ai une erreur dans les logs malheureusement

Code : Tout sélectionner

2020-08-10 17:23:05.786 Error: (Xiaomi-Miio-AirPurifier-Miot) failed to load 'plugin.py', Python Path used was '/home/user/domoticz/plugins/MiioAirPurifierMiot/:/usr/lib/python37.zip:/usr/lib/python3.7:/usr/lib/python3.7/lib-dynload:/usr/local/lib/python3.7/dist-packages:/usr/lib/python3/dist-packages:/usr/lib/python3.7/dist-packages'.
2020-08-10 17:23:05.786 Error: (Air Purifier 3H) Module Import failed, exception: 'AttributeError'
2020-08-10 17:23:05.786 Error: (Air Purifier 3H) Error Line details not available.
Pourtant j'ai bien un plugin.py dans /home/user/domoticz/plugins/MiioAirPurifierMiot/

Domoticz Version: 2020.2 (build 12231)
Python Version: 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0]
-----
EDIT 4:
Un petit

Code : Tout sélectionner

pip3.7 install -U python-miio
a résolu le problème, le plugin start maintenant mais j'ai une erreur sur UpdateStatus :(

Code : Tout sélectionner

2020-08-10 17:59:22.603 Status: (Air Purifier 3H) Started.
2020-08-10 17:59:22.752 Status: (Air Purifier 3H) Entering work loop.
2020-08-10 17:59:22.752 Status: (Air Purifier 3H) Initialized version 0.1, author 'xiaoyao9184 SylvainPer'
2020-08-10 17:59:43.699 Error: (Air Purifier 3H) UpdateStatus: DeviceException('No response from the device')
J'ai récupéré le token via une ancienne version de mihome dans les logs et l'IP est correcte.

Dans l'appli Mi Home, quand je vais dans les paramètres supplémentaires du Purifier 3H, j'ai la version 98 du plugin.

-----
EDIT 5
impossible d'otenir des infos du purifier en utilisant miiocli directement, je ne pense pas que le plugin soit à incriminer, il faut que je trouve pourquoi je n'arrive pas à m'y connecter

Code : Tout sélectionner

 miiocli airpurifiermiot --ip ip --token token status
 ERROR:miio.miioprotocol:Got error when receiving: timed out
Error: No response from the device
 
Pourtant avec un

Code : Tout sélectionner

miio discover
Il sort bien dans la liste mais avec un

Code : Tout sélectionner

Model info: Unknown
Support: Unknown

Re: Plugin Xiaomi Air Purifier 3H

Publié : 10 août 2020, 23:20
par Deufo
0rsa a écrit : 10 août 2020, 17:08

Code : Tout sélectionner

 miiocli airpurifiermiot --ip ip --token token status
 ERROR:miio.miioprotocol:Got error when receiving: timed out
Error: No response from the device
 
Effectivement, c'est le point de départ pour que ça fonctionne, si la librairie n'accède pas au device, c'est cuit.

J'avais fais cette première commande avant de commencer :

Code : Tout sélectionner

mirobo discover --handshake 1

Re: Plugin Xiaomi Air Purifier 3H

Publié : 11 août 2020, 03:25
par 0rsa
Avec un

Code : Tout sélectionner

mirobo discover --handshake 1
Il sort bien dans la liste mais toujours en timed out ensuite

C'est un 3H récent de 2020 avec le dernier firmware à jour 2.0.5.0014
Quand tu fais un miio discover de ton côté, tu as une valeur dans Support pour le 3H autre que Unknow ? (j'ai un Purifier 2 aussi et la j'ai Support: At least generic)
Merci

Re: Plugin Xiaomi Air Purifier 3H

Publié : 11 août 2020, 03:42
par 0rsa
Ca y est, c'est bon.
Alors le problème venait du token qui était incorrect (et ça timeout, pas d'erreur explicite d'erreur du token).
J'ai probablement refait un reset du wifi entre la première récupération du token et son utilisation et le token est modifié à chaque fois, il faut bien penser à le remettre à jour après une initialisation wifi et ne pas penser qu'il est unique tout au long de la vie de l'appareil.
J'ai bien les devices dans Domoticz qui remontent maintenant, plus qu'à essayer tout ça !
----
EDIT
Ca fonctionne niquel via domoticz, merci beaucoup pour ce plugin, plus qu'à dev le widget pour mon dashboard mural :D

Re: Plugin Xiaomi Air Purifier 3H

Publié : 12 août 2020, 23:00
par Deufo
Super si ça peut servir, encore mieux si ça fonctionne.

Pour le Purifier 2, tu peux essayer le plugin MiioAirPurifier s'il n'est pas encore sous domoticz. Je ne l'ai pas testé, il peut probablement être amélioré mais xiaoyao9184 a bien bossé. Il y a d'autres objets supportés, je suis en train de lui demander de mettre à jour son github.

Re: Plugin Xiaomi Air Purifier 3H

Publié : 12 avr. 2021, 15:50
par Deufo
Petit up pour l'ajout du Purifier 3C, il y a maintenant un menu pour sélectionner si on est en 3H ou 3C.
Le 3C a moins d'options mais fait le travail.
Voici la PR, elle devrait être acceptée prochainement, sinon je rapatrie tout sous mon git :
https://github.com/xiaoyao9184/Domoticz ... ins/pull/4

Pour ceux qui avaient déjà la librairie python-miio, une mise à jour est nécessaire :

Code : Tout sélectionner

pip3 install python-miio --upgrade

Re: [Plugin] Xiaomi Air Purifier 3H & 3C

Publié : 04 juin 2021, 10:54
par ErwaN_89
Bonjour,

Savez-vous s'il est possible de gérer la sélection de la vitesse du ventillo avec le plugin pour le model 3C depuis domoticz ?
Sur l'apli Android, c'est possible. J'aimerai le faire depuis Domoticz car Google Home ne reconnait pas l'ordre "augmente/basse la vitesse du purificateur, etc"

Merci d'avance

Re: [Plugin] Xiaomi Air Purifier 3H & 3C

Publié : 04 juin 2021, 11:13
par Deufo
Bonjour,
En utilisant le mode favoris, ça doit être possible en pilotant le favorite level mais ça dépend de la façon dont GH est lié à dz, je n'utilise pas les commandes vocales.
J'utilise une scène en mode low pour 2h, je trouve ça plus pratique.

Re: [Plugin] Xiaomi Air Purifier 3H & 3C

Publié : 04 juin 2021, 11:26
par ErwaN_89
Merci pour la réponse rapide.

Je cherche juste le moyen d'avoir un élément domoticz pour gérer la vitesse du ventilo comme dans ton impr-écran.
Sachant que j'ai le modèle 3C.