Intégration Aspirateur Dreame D9 sous Jeedom

Bonjour
J’ai acquis le plugin Xiaomi pour Jeedom pensant pouvoir intégrer mon nouvel aspirateur Dreame D9, mais hélas il n’apparait pas dans la liste.
Il n’y a que 3 modèles d’aspirateurs, que j’ai tous testés en vain.
Mon IP est bonne et j’ai bien réussi à récupérer le token via l’application MiHome 5.4.49.
Quelqu’un aurait-il réussi à intégrer cette appliance sous Jeedom ?
Faut-il attendre une mise à jour du plugin ?

Merci pour vos retours

1 « J'aime »

Pour ma part toujours pas réussi a l’intégrés, j’avais fait un article : Dreame D9 plugin xiaomi - #7 par Hyperion
il y a une méthode : valetudo

Salut,
Je suis passé par Alexa et le plugin Alexa-API, je peux juste savoir l’état et le mettre en marche ou l’arrêter.

image

Je n’en ai pas fait davantage. Ça reste très limité :frowning:
Peut-être qu’un jour le plugin évoluera.

Je me permets de remonter le poste pour savoir si le robot dreame vacuum d9 est désormais pilotable via le plugin Xiaomi home avant de l’acheter. Je n’ai eu aucun problèmeème d’intégration homebridge mais je souhaiterai pouvoir le piloter via Jeedom. Si @lunarok passe par ici :slight_smile:

C’est un robot gérer par l’appli Xiaomi Home y’a pas de raison que ce soit pas compatible :stuck_out_tongue:

1 « J'aime »

Pour les intéressés je suis passé par le plugin python-miio.

Voici les bases pour un purificateur d’air mais le cheminement est le même :
Connecter le Purifier 3H Xiaomi à Jeedom (benjamintestart.fr)

4 « J'aime »

Bonjour
J’avais regardé cette alternative, mais j’ai buté sur le nom du device.
Qu’as-tu renseigné pour y parvenir ?
« sudo miiocli xxxxx … »
J’ai un Dreame D9
Merci

PS: l’IP et le token s’écrivent bien AVEC les crochets [ ] ?

2 « J'aime »

Bonjour @dan_73 ,
Non, c’est sans les crochets. J’ai pas mon PC perso devant moi. Il faut je regarde ce que j’ai mis dans l’historique des commandes en ssh. C’est pas le nom de l’appareil mais le type, tu peux avoir la liste en tapant miiocli --help

De souvenir c’est dreamevacuum donc la commande complète pour l’obtention de la listes des commandes action & info cela devrait être :

sudo miiocli dreamevacuum --ip xxx.xxx.xxx.xxx --token xxxxxxxxxxxxxxxxxxxxxxxxxxxxx --help

Il te restera plus qu’à créer un équipement script et de mettre l’ensemble des infos/actions sous le même format :

sudo miiocli dreamevacuum --ip xxx.xxx.xxx.xxx --token xxxxxxxxxxxxxxxxxxxxxxxxxxxxx "commande_info/action"

Je peux plus faire de test le robot est sous le sapin :stuck_out_tongue:

Merci
Je vais déjà tester avec ces éléments

1 « J'aime »

Bon je viens d’essayer, mais je bloque :frowning:
J’ai une erreur après la saisie de la commande --help

freebox@Jeedom-V2:~$ miiocli --help
Traceback (most recent call last):
  File "/usr/local/bin/miiocli", line 5, in <module>
    from miio.cli import create_cli
  File "/usr/local/lib/python3.7/dist-packages/miio/cli.py", line 43, in <module>
    cli.add_command(device_class.get_device_group())
  File "/usr/local/lib/python3.7/dist-packages/miio/integrations/vacuum/roborock/vacuum.py", line 932, in get_device_group
    @dg.resultcallback()
AttributeError: 'DeviceGroup' object has no attribute 'resultcallback'

Malheureusement je n’ai aucune compétence sur cet OS et impossible de voir ce qui bloque.
C’est une VM Freebox :
Linux Jeedom-V2 4.19.0-22-arm64 #1 SMP Debian 4.19.260-1 (2022-09-29) aarch64 GNU/Linux [10.13]
Si jamais ça parle à l’un d’entre vous

Merci

Tu n’as pas bien lu il faut mettre :

( avec ton ip et ton token bien évidemment)

Tu as tapé : miiocli --help avec cet commande cela te renvoi les type d’appareils compatible

Exemple chez moi :

root@VM-JEEDOM:/home/gauthier# miiocli --help
Usage: miiocli [OPTIONS] COMMAND [ARGS]...

Options:
  -d, --debug
  -o, --output [default|json|json_pretty]
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Commands:
  airconditionermiot
  airconditioningcompanion
  airconditioningcompanionmcn02
  airconditioningcompanionv3
  airdehumidifier
  airdogx3
  airfresh
  airfresha1
  airfresht2017
  airhumidifier
  airhumidifierjsq
  airhumidifierjsqs
  airhumidifiermiot
  airhumidifiermjjsq
  airpurifier
  airpurifiermiot
  airqualitymonitor
  airqualitymonitorcgdn1
  alarmclock
  aqaracamera
  ceil
  chuangmicamera
  chuangmiir
  chuangmiplug
  cloud                          Cloud commands.
  cooker
  curtainmiot
  device
  discover                       Discover devices using both handshake...
  dreamevacuum
  fan
  fan1c
  fanleshow
  fanmiot
  fanp5
  fanza5
  g1vacuum
  gateway
  heater
  heatermiot
  huizuo
  huizuolampfan
  huizuolampheater
  huizuolampscene
  miotdevice
  petwaterdispenser
  philipsbulb
  philipseyecare
  philipsmoonlight
  philipsrwread
  philipswhitebulb
  powerstrip
  pwznrelay
  roborockvacuum
  roidmivacuummiot
  scisharecoffee
  toiletlid
  viomivacuum
  walkingpad
  waterpurifier
  waterpurifieryunmi
  wifirepeater
  wifispeaker
  yeelight
  yeelightdualcontrolmodule

Si tu mets la commande que je t’ai dis plus haut :

root@VM-JEEDOM:/home/gauthier# sudo miiocli dreamevacuum --ip 1xx.xxx.xxx --token xxxxx --help
Usage: miiocli dreamevacuum [OPTIONS] COMMAND [ARGS]...

Options:
  --ip TEXT     [required]
  --token TEXT  [required]
  --model TEXT
  --help        Show this message and exit.

Commands:
  call_action           Call an action by a name in the mapping.
  call_action_by        Call an action.
  fan_speed             Return fan speed.
  fan_speed_presets     Return available fan speed presets.
  forward               Move forward.
  get_property_by       Get a single property (siid/piid).
  home                  Return to home.
  identify              Locate the device (i am here).
  info                  Get (and cache) miIO protocol information from...
  play_sound            Play sound.
  raw_command           Send a raw command to the device.
  reset_filter_life     Reset filter life.
  reset_mainbrush_life  Reset main brush life.
  reset_sidebrush_life  Reset side brush life.
  rotate                Rotate vacuum.
  set_fan_speed         Set fan speed.
  set_fan_speed_preset  Set fan speed preset speed.
  set_property_by       Set a single property (siid/piid) to given value.
  set_voice             Upload voice package.
  set_waterflow         Set water flow.
  start                 Start cleaning.
  status                State of the vacuum.
  stop                  Stop cleaning.
  test_properties       Helper to test device properties.
  waterflow             Get water flow setting.
  waterflow_presets     Return dictionary containing supported water flow.

Non j’ai très bien effectué ma saisie. Mais que ce soit avec sudo ou non c’est pareil.
La seule commande miiocli --help ou sudo miiocli dreamevaccuum … me retourne toujours la même erreur se terminant par « AttributeError: ‹ DeviceGroup › object has no attribute 'resultcallback’ »
J’ai pourtant suivi le TUTO à la lettre
J’ai fait des recherches avec cette erreur et je ne semble pas etre le seul :
https://community.jeedom.com/t/air-purifier-3h/37012/99?page=5
ou encore :
https://community.jeedom.com/t/air-purifier-3h/37012/115?page=6

J’ai trouvé la solution sur un forum allemand :slight_smile:
Il faut éditer le fichier vacuum.py (voir chemin ci-après)

File "/usr/local/lib/python3.7/dist-packages/miio/integrations/vacuum/roborock/vacuum.py

Aller en fin de ficher et remplacer : @dg.resultcallback par @dg.result_callback

J’ignore si cela peut avoir des conséquences ailleurs, mais cette fois-ci la commande miiocli --help fonctionne sans erreur

Bizarre problème à l’installation peut être car j’ai pas eu ce problème !

Ou peut être lié aux différentes versions précédemment installées, ou à la version même de l’OS.
En tout cas ça me permet d’avancer sur l’intégration.
Merci pour tes retours.

Pour info je suis sur une distri debian 11… le principal c’est que ça fonctionne désormais :ok_hand:t2:

Moi debian 10.13
C’est sans doute lié.
Mais comme tu dis, ça fonctionne, c’est le principal.

1 « J'aime »

Bon finalement ça ne marche pas trop mal.
Il y a un peu de boulot, mais on a rien sans rien :wink:

Quand tu remettras le tien en service, tu pourras me dire si tu trouves ce à quoi correspondent « charging_state »: 1, et « device_status »: 2

Je pensais que « charging_state » retournait 1 si en charge et 0 si débranché, mais chez moi ça ne bouge pas. C’est peut-être davantage En ligne ou pas ?

image

Le robot est actuellement hors de sa base et ça affiche « En charge », donc je doute que ce soit lié à la batterie.
Quant à l’état 2 ?? aucune idée. Peut-être à voir à l’usage.

Edit : Etat 6 c’est lorsque ça charge. Etat 2 lorsque c’est chargé.
Par contre « charging_state » ne bouge jamais :frowning: si je le mets hors réseau le script génère une erreur, mais l’état ne bouge pas)

2 « J'aime »

Tu me partager ta partie script (commande/action) car de mémoire je n’avais pas autant d’info sur le widget… après j’ai fait ça en 1h pour vérifier la compatibilité. je vais mettre ça au propre quand le père noël sera passé :slight_smile:

J’approfondirai les 2 états que tu m’as cité :wink:

Après avoir surveillé le robot en fonctionnement, les 3 états que j’ai pu constater sont:
Etat 1 : en travail
Etat 2 : chargé
Etat 6 : en charge

« charging_state » reste déséspérement à 1. Je ne vois pas l’utilité, ni l’affectation.

Pour les lignes du script, pas de soucis :