Air Purifier 3H

Bonjour @MissK2000,
Peux-tu encore m’aider en ayant un power on/off classique plutôt qu’une liste à choisir comme dans le script de privas ?
Aussi, quelle est ta commande pour le filter life ?
Merci pour ton aide.

Merci pour le tuto !!!

Voici mon visuel :

Hello,

Comment as-tu fais pour le niveau favori en curseur, il me renvoi une erreur à chaque fois (set_favorite_level #select# 2>&1 valeur retournée : 2) ?
De plus mon curseur va de 0,5 en 0,5 et non de 1 en 1…

J’ai beau chercher, je sèche

voici la commande script action curseur :

sudo miiocli airpurifiermiot --ip 192.168.1.xx --token xxxxxxxxxxxxxxxxxxx set_favorite_level #slider#

1 « J'aime »

Merci j’avais mis set_favorite_level #select#

Merci pour ce poste, j’ai pu inclure mon Xiaomi Air Purifer 3C avec succès ! :slight_smile:

1 « J'aime »

Bonjour,

Merci pour ce tuto bien documenté j’avais donc fait l’installation pour mon roborock S50.
Info et action (script et json) marchait très bien.
Récemment je suis passé de ma smart a une jeebox power (équivalant Atlas).
J’ai transféré exactement les mêmes commandes qu’auparavant mais sur la jeebox je me retrouve avec une erreur : json invalide ou non décodable.
Pourtant la création du json se fait bien en ligne de commande ssh avec le bon contenu.

Une idée de ce qui pourrait engendrer cette erreur ?

Merci
T.

J’ai aussi ce type d’erreur mais uniquement de temps en temps. Si je ré-exécute la récupération du JSON cela fonctionne (en automatique ou forcer via un refresh).

Mais je n’ai pas trouvé de solution à cela :frowning:

J’ai remarqué pour ma part que le purificateur était très capricieux au niveau des requetes. Il ne répond pas tout le temps. D’où l’erreur je l’ai aussi. J’ai modifié un peu la récup des données (cmd rafraichir dans le tuto) avec un scénario c’est lui qui vient rafraichir ou non les données en fonction de l’état du json.

Je vous met des copies d’écran du scénario :


Je tiens à préciser que je ne maitrise pas le codage j’ai pioché à droite et à gauche les infos pour arriver à ça.

Merci pour le partage :slight_smile:

Bonjour,

  • j’ai pu faire l’install
  • j’ai récupéré le token avec paket sender
  • la commande avec help retourne les fonctionnalité.
  • le ping sur le 3H est ok

Ensuite j’ai lancé la commande

sudo miiocli airpurifiermiot --ip 192.168.0.XX --token 333b............3d47 status

Résultat:

ERROR:miio.miioprotocol:Got error when receiving: timed out
Error: No response from the device

Je me suis dit que j’aivais dû mal noter le token. J’ai réinitialisé et j’ai obtenu un token différent. Chaque fois que je reset le 3H j’ai un token différent.

Est ce que quelqu’un aurait une idée

  • pour savoir si c’est un problème de token (l’appli android ferait-elle un changement lors de la connexion initiale?)
  • un problème parce qu’il est aussi associé avec Alexa?
  • Autre idée?

Meilleures salutations

J’ai trouvé la méthode packet sender n’est pas OK en mettant la version mi home avec les log c’est OK!

Bonjour,
Je me répond a moi-même . n’étant pas calé sur linux/python… je vais essayer d’être clair pour aider les autres.
en fait dans les nouvelles version de MIIOCLI il ya une nouvelle class qui apparaît spécialement pour les roborock de Xiaomi.
Donc, en utilisant seulement « vacuum » pour creer le fichier JSON il y avait une ligne expliquant cette nouvelle class a la fin du JSON qui , du coût devenait « non décodable »
j’ai mis du temps a trouvé car, bien que comprenant cela il était indiqué d’utiliser « RoborockVacuum »,
j’avais toujours le même probleme…
En fais il faut utiliser roborockvacuum (sans les majuscule) a la place de vacuum
Et la plus aucun probleme de JSON, j’ai de nouveau la possibilité de piloter mon S50

Hello

Suite au passage en 4.2.7 et le nouveau système de droits, les scripts ne fonctionnent plus :frowning:

Hello,
Problème aussi constaté…
Il faudrait savoir si on peut le déposer dans un partie qui serait « public ». Mais je n’ai pas l’expertise… A voir si un boss a une idée!

Il faudrait pouvoir écrire le json dans une variable et relire la variable pour en extraire les infos…

Je crois qu’il faut que le json soit stocké dans le même dossier contenant le script.
J’ai un script autre que pour le purificateur et avec écriture d’un json et aucun problème depuis la mise à jour en 4.2.

Problème résolu dans l’autre discussion en dessus.

1 « J'aime »

Bon il faudra voir pour écrire à la bonne place. Autrement On peut faire un scénario qui lit le json et qui écrit les valeurs dans des variables. Ensuite on fait un virtuel qui récupère les variables et on fait tourner le scénario à intervalles réguliers…

La solution de @olivr2s demande moins de modif, c’est sûr!

Si jamais un bout de code (quick & dirty) pour mettre les valeurs dans des variables

$fichier = system('sudo miiocli --output json airpurifiermiot --ip 192.168.0.60 --token 47ffhhhhhhhhhh640d status', $retval);

$humidity =json_decode($fichier)->{'humidity'};
$power    =json_decode($fichier)->{'power'};
$fan_level=json_decode($fichier)->{'fan_level'};
$mode     =json_decode($fichier)->{'mode'};
$temperature=json_decode($fichier)->{'temperature'};
$aqi        =json_decode($fichier)->{'aqi'};
$average_aqi=json_decode($fichier)->{'average_aqi'};
$motor_speed=json_decode($fichier)->{'motor_speed'};
$filter_life_remaining=json_decode($fichier)->{'filter_life_remaining'};
$use_time=json_decode($fichier)->{'use_time'};
$filter_hours_used=json_decode($fichier)->{'filter_hours_used'};
$favorite_level=json_decode($fichier)->{'favorite_level'};
$favorite_rpm =json_decode($fichier)->{'favorite_rpm'};

$scenario->setData('pur_humidity', $humidity);
$scenario->setData('pur_power', $power);
$scenario->setData('pur_fan_level',$fan_level);
$scenario->setData('pur_mode',$mode);
$scenario->setData('pur_temperature',$temperature);
$scenario->setData('pur_aqi',$aqi);
$scenario->setData('pur_average_aqi',$average_aqi);
$scenario->setData('pur_motor_speed', $motor_speed);
$scenario->setData('pur_filter_life_remaining', $filter_life_remaining);
$scenario->setData('pur_use_time', $use_time);
$scenario->setData('pur_filter_hours_used', $filter_hours_used);
$scenario->setData('pur_favorite_level', $favorite_level);
$scenario->setData('pur_favorite_rpm', $favorite_rpm);

Bonjour,
J’ai un problème lorsque j’utilise la méthode pour l’installation du module miiocli pour le pilotage du purificateur Xiaomi 3h disponible ici : Purificateur 3h

Tout à l’air de fonctionner correctement jusqu’à l’étape :


sudo pip3 install python-miio

Celui me renvoie l’erreur :

Can't roll back cryptography; was not uninstalled
Command "/usr/bin/python3
-u
"import setuptools, tokenize;_
file
_='/tmp/pip-install-dbsouxqp/cryptography/setup.py';f-getattr(tokenize,'open',open)(_file);
code=f.read).replace(r\n'
'In');f.close();exec(compile(code,
file
exec'))'
install
--record/tmp/pip-record-12z_c632/install-record.txt--single-version-externally-managed--compile"failedwitherrorcode1in/tmp/pip-install-dbsouxqp/cryptography/

Forcément lors de l’appel de la commande suivante me renvoie l’erreur quel n’existe pas


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

Je suis sous une VM jeedom V4 sous debian 10
Pouvez-vous m’aider ?

Merci

Merci pour ce bout de code qui m’a permis de remettre en fonctionnement la collecte des données de mon purificateur suite passage en 4.2.