Nettoyage de pièces DreameBot L10s Ultra avec miiocli

Bonjour,

Après avoir pas mal galéré pour trouver la commande qui va bien afin de lancer le nettoyage d’une pièce enregistrée dans l’appli Mihome via un script.

Ci-dessous la commande :

miiocli dreamevacuum --ip 192.168.2.218 --token votre token raw_command action '{"did":"Device id de l'aspirateur","siid":4,"aiid":1,"in":[{"piid":1,"value":18},{"piid":10,"value":"{\"selects\":[[5,1,1,2,1]]}"}]}'

Les valeurs [[5,1,1,2,1]] correspondent à cela :

  1. Id de la pièce à nettoyer
    - 1-… chez moi cela va de 1 à 10
  2. Nombre de passage pour la pièce demandée
    • 1-2-3 c’est selon votre choix
  3. Puissance d’aspiration
    • 0 silencieux
    • 1 standard
    • 2 fort
    • 3 mode turbo
  4. Quantité d’eau pour les serpillères
    - 1 minimum
    - 2 standard
    - 3 beaucoup
  5. Mode de lavage
    - 1 lavage journalier
    - 2 lavage intensif
    il est possible de cumuler le nettoyage de plusieurs pièces :
    [[5,1,2,3,3],[3,1,2,3,3]]
    chaque pièce à nettoyer étant séparée par une virgule.

:wink:

1 « J'aime »

Salut
eh superbe ca ! Bien joué et merci de ce partage
je me permet de mettre le dev du plugin Mirobot
peut etre qu’il ajoutera cela a son plugin aussi
@tomitomas

bonjour

juste une question

{"did":"Device id de l'aspirateur"

on met quoi à la place de « device id de l’aspirateur »

Merci d’avance

Bonsoir,

C’est le N° unique du Dreame L10 que tu trouves dans l’application Mi Home.

Pour le trouver, tu fais comme si tu voulais renommer le nom de ton aspirateur dans Mi Home.

L’application ouvre une pop-up dans laquelle sont mentionnés les infos de ton aspirateur dont le device ID de celui-ci sous la forme suivante : Device DID: 63*******.

Sinon tu le trouves aussi dans le plugin Mi-robot dans la partie configuration de ton appareil.

Sur cette pop-up tu retrouveras également le token, adresse MAC, adresse IP, etc…

Ma version de Mi Home : 7.13.709.7917

:wink:

1 « J'aime »

Re bonjour

Merci à toi de cette réponse
vais pouvoir tester cela des que j’aurais un moment

bonne journée

1 « J'aime »

Hello à tous !
Je viens de tester ces commandes avec mon Dreame L10s Pro et ça fonctionne.
Mais pour l’instant j’envoie des commande depuis la page « ip de jeedom »/index.php?v=d&p=system
Ca fonctionne très bien ! J’ai retrouvé toutes mes pièces.

En revanche je n’arrive pas à envoyer cette commande depuis une commande du plugin script alors que j’imagine que c’est fait justement pour !
Sauriez-vous m’aider ?
Voici à quoi ressemble ma commande :

J’ai enlevé le « sudo » à la requête car je vois dans les logs qu’il le rajoute tout seul.
Mais sans succès, les logs me donnent ça :

[2024-09-18 23:08:21] DEBUG  : Exécution de : sudo chmod +x /var/www/html/plugins/mirobot/core/class/../../resources/venv/bin/miiocli 2>/dev/null;/var/www/html/plugins/mirobot/core/class/../../resources/venv/bin/miiocli -o json_pretty genericmiot --ip 192.168.0.19 --token 70744aXXXXXXXXXXXXXXXXXXXXXX raw_command action {"did":"638XYYYYY","siid":4,"aiid":1,"in":[{"piid":1,"value":18},{"piid":10,"value":"{\"selects\":[[1,1,1,2,1]]}"}]} => ERROR:miio.click_common:Exception: invalid syntax (<unknown>, line 1) Traceback (most recent call last):   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/miio/click_common.py", line 55, in __call__     return self.main(*args, **kwargs)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 1078, in main     rv = self.invoke(ctx)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 1688, in invoke     return _process_result(sub_ctx.command.invoke(sub_ctx))   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 1686, in invoke     sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 943, in make_context     self.parse_args(ctx, args)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 1408, in parse_args     value, args = param.handle_parse_result(ctx, opts, args)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 2400, in handle_parse_result     value = self.process_value(ctx, value)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 2356, in process_value     value = self.type_cast_value(ctx, value)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 2344, in type_cast_value     return convert(value)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/core.py", line 2316, in convert     return self.type(value, param=self, ctx=ctx)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/click/types.py", line 83, in __call__     return self.convert(value, param, ctx)   File "/var/www/html/plugins/mirobot/resources/venv/lib/python3.9/site-packages/miio/click_common.py", line 102, in convert     return ast.literal_eval(value)   File "/opt/pyenv/versions/3.9.19/lib/python3.9/ast.py", line 62, in literal_eval     node_or_string = parse(node_or_string, mode='eval')   File "/opt/pyenv/versions/3.9.19/lib/python3.9/ast.py", line 50, in parse     return compile(source, filename, mode, flags,   File "<unknown>", line 1     {did:638554088,siid:4,aiid:1,in:[{piid:1,value:18},{piid:10,value:{"selects":[[1,1,1,2,1]]}}]}                                  ^ SyntaxError: invalid syntax

Merci encore à la commu !

Hello,

Dans l’image que tu fournis ce n’est pas un script que tu lances :grin: il faut mettre cette commande dans un fichier avec une extension « .sh », et c’est ce script que tu lanceras avec éventuellement des paramètres, à savoir le n° de ta pièce, l’intensité du nettoyage, le nombre de passe, etc…
Dans un script bash tu récupères les paramètres via des variables $1, $2, $3, etc…

$1 sera par exemple ton N° de pièce
$2 sera par exemple ton nombre de passage sur zone
$3 sera par exemple l’intensité du nettoyage

Avec le plugin script, tu peux lancer des scripts python, php, bash, etc…

Capture d’écran 2024-09-19 161842

Tu remarqueras sur la deuxième image le script que je lance avec les paramètres correspondants aux options visibles sur la première image.

:wink:

Rahhh purée j’étais vraiment loin !!!
Merci beaucoup pour ton temps, c’est super clair du coup !
Je pense pouvoir trouver en fouillant sur le net mais si tu peux partager l’exemple de ton fichier *.sh, en particulier pour pouvoir lui faire passer des paramètres, ça me fera encore gagner plus de temps !

Pas de soucis :

/root/.local/share/pypoetry/venv/bin/poetry run miiocli genericmiot --ip 192.168.2.218 --token 484a61****************** raw_command action '{"did":"63*******","siid":4,"aiid":1,"in":[{"piid":1,"value":18},{"piid":10,"value":"{\"selects\":[['$1','$2','$3','$4','$5']]}"}]}'

Attention tout ce qui se trouve avant « genericmiot » est propre à mon installation :grin:

Bonus :
Voici les paramètres pour lancer le nettoyage d’une zone définie :

run miiocli genericmiot --ip 192.168.2.218 --token 484a61****************** raw_command action '{"did":"63*******","siid":4,"aiid":1,"in":[{"piid":1,"value":19},{"piid":10,"value":"{\"areas\":[[-5969,-6449,-4349,-4055,1,3,136192]]}"}]}'

:wink:

Wahouo !! Merci.
Je vois que tu es un power user, du coup j’en profite :innocent: !

Es-tu arrivé à utiliser la fonction goto ? Et si oui, quelle est la syntaxe ? J’ai compris que certains auraient trouvé en utilisant la « commande personnalisée », puis la commande goto et en valeur x y (avec juste un espace entre les deux) mais ça marche pas chez moi.

Et enfin, je comprends bien dans ta commande de zone que tu lui indiques les deux coordonnées (x,y) j’imagine des deux coins de la zone… Mais du coup comment as-tu déterminé les coordonnées ?
J’ai vu que la base était possiblement en coordonnées (2500,2500), je comprends que c’est des centimètres… bref, comme je n’arrive pas à tester je ne peux même pas tenter une approche à tâtons.

Merci encore !

Merci encore !
J’a

Houla !! loin de moi l’idée de me considérer comme un power user :rofl:

Je n’ai pas testé de mon coté ce type de commande « goto » pour déplacer l’aspirateur à un point donné sur la carte.

J’utilise dans une VM Home Assistant avec l’intégration de l’aspirateur Dreame L10 et tu trouves pas mal d’information sur les commandes en question, par exemple pour trouver les ID des pieces sur la carte, etc…

si tu regardes ici tu verras qu’il n’existe pas à priori de commande action pour déplacer l’aspirateur à un point donné sur la carte, après je peux me trompé et si quelqu’un à l’information je suis preneur.

Désolé si je ne répond pas à ta question :face_with_peeking_eye:

Merci quand même pour ta réponse !

Bonjour,
Un énorme merci a vous qui m’a permis de pouvoir sélectionner la pièce que je désire pour le nettoyage. :+1: :+1:

J’ai un xiaomi X20+

J’ai mes pieces qui vont de 1 à 7

Par contre quel que soit les autres valeurs que sélectionne, cela ne change rien sur mon aspirateur.
Y’a t’il un moyen de pouvoir modifier ses actions sur le X20+ ? ( mode serpillère, force d’aspiration )

Merci encore a vous :+1: :+1:

Salut,

Voici les paramètres pour un X20+ : ici

Je ne me sert que du N° de pièce pour nettoyer tel ou tel pièce et je n’utilise pas les autres options. A l’occasion il faudrait que je teste pour mon Dreame 10 Plus.

:grin:

Merci pour ce lien,

J’ai essayé un bon moment, mais je n’y arrive pas :face_with_peeking_eye:

J’ai changé les valeurs que j’ai et qui commande le nettoyage
J’ai ça a l’origine:

« siid »:4,
« aiid »:1,"
:[{« piid »:1,« value »:18},
{« piid »:10,« value »:"

siid je comprend
aaid je comprend
piid1 je comprend
value 18 c’est la ou je bloque.
on voit plus haut dans la discusion pour lancer le nettoyage de zone il faut utiliser 19

J’aimerais juste pouvoir lancer le lavage d’une pièce.