Intégration Aspirateur Dreame D9 sous Jeedom

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 :

il va falloir que je remette les mains dans le cambouis car t’as l’air d’avoir plus de choses que moi (niveau d’usure des brosses par exemple) retour dans 7 jours ! merci pour tes captures c’est la même façon de procéder que moi :wink:

1 « J'aime »

Si ça peut t’avancer, je te passe le JSON que j’ai récupéré sur le mien :

{"battery_level": 100, 
"charging_state": 1, 
"device_fault": 0, 
"device_status": 2, 
"brush_left_time": 189, 
"brush_life_level": 63, 
"filter_life_level": 26, 
"filter_left_time": 39, 
"brush_left_time2": 89, 
"brush_life_level2": 44, 
"operating_mode": 14, 
"cleaning_mode": 1, 
"delete_timer": null, 
"timer_enable": true, 
"cleaning_time": 46, 
"cleaning_area": 49, 
"first_clean_time": 1662365685, 
"total_clean_time": 2867, 
"total_clean_times": 74, 
"total_clean_area": 3108, 
"start_time": "22:00", 
"stop_time": "08:00", 
"map_view": null, 
"frame_info": null, 
"volume": 75, 
"voice_package": "FR", 
"water_flow": 3, 
"water_box_carriage_status": 0, 
"timezone": "Europe/Paris"}

Merci !

Du coup j’ai mis mon nez dedans et j’ai une erreur que j’avais pas avant : You don’t have permission to access this resource. bizarre…

1 « J'aime »

Tu enregistres ton JSON dans quel dossier ?
Moi je le mets dans : /var/www/html/plugins/script/data/
J’ai du modifier les droits sur le dossier car l’accès en écriture m’était refusé.

1 « J'aime »

directement dans /var/www/html, je vais vérifier les droits mais j’avais pas eu à modifier la dernière fois c’est pour ça que je trouve bizarre, tu es passé par le terminal ou on peux faire ça depuis l’éditeur de fichier

EDIT : je suis bien en RW sur le fichier dans infos sur l’éditeur de fichier

Je l’ai fait par l’éditeur de fichier.
J’avais changé le chemin suite à ce sujet :

effectivement ça fonctionne à nouveau :wink:

Pour info (directement récupéré les infos piid/siid sur miot (bien d’autres sont dispo)) :

[battery-level]
 0 ~ 100 %

[charging_state]
* 1 - en charge
* 2 - ne charge pas
* 4 - en charge 2
* 5 - va se recharger

[device_fault] erreur / notification
0-100 
Plus d'informations :
0: No fault
-----
1: Capteur de surface ou capteur de distance laser bloqué.
2: Réinitialisation des capteurs de collision
3: Déplacez le robot aspirateur vers un autre emplacement et démarrez.
4: Nettoyer les capteurs.
5: Retirer et nettoyer la brosse principale.
6: Retirer et nettoyer la brosse latérale.
7: Roues principales bloquées.
8: Nettoyez la zone autour de l'appareil.
9: Vider le bac à poussière.
10: Nettoyez la grille du filtre.
11: Eloigner l'appareil d'une barrière virtuelle.
12: Le niveau de la batterie est trop faible.
13: Défaut de charge.
14: Batterie en défaut.
15: Nettoyer les capteurs muraux.
16: Placez l'appareil sur une surface plane et recommencez.
17: Anomalie des brosses latérales : réinitialisez le système.
18: Défaut d'aspiration, réinitialiser le système.
19: Base de charge non alimentée.
-----
68:  Nettoyage terminé, retirer et laver la serpillère 

[device_status]
1 - aspire
2 - inactif
3 - en pause
4 - erreur
5 - va se recharger
6 - charge
7 - nettoyage manuel

[brush_left_time]
0-300 heures

[brush_life_level]
0-100%

[brush_left_time2]
0-200 heures

[brush_life_level2]
0-100 %

[filter_left_time]
0-150 heures

[filter_life_level]
0-100 %

[operating_mode] 
1 - pause
2 - nettoie
3 - va se recharger
6 - charge
13 - nettoyage manuel
14 - veille
17 - nettoyage manuel en pause
19 - nettoyage par zone

[cleaning_mode]
0 - silencieux
1 - normal
2 - fort
3 - turbo

[cleaning_time]
0 ~ 32767 minutes

[cleaning_area]
0 ~ 32767 m²

[first_clean_time]
0 ~ 4294967295  

[total_clean_time]
0 ~ 4294967295 minutes

[total_clean_times]
0 ~ 4294967295 

[total_clean_area]
0 ~ 4294967295 

[volume]
0-100 %

[water_flow] 
1 - faible
2 - moyen
3 - haut

[water_box_carriage_status]
0 - réservoir d'eau non-installé
1 - réservoir d'eau installé
1 « J'aime »

:+1:
Du coup ça m’a permis de voir où était mon erreur. J’avais mis l’info « charging_state » en binaire alors que c’est du numérique.

effectivement ça fonctionnera nettement mieux :wink:

Je viens de tester et ça change bien. Pas étonnant qu’auparavant ça restait bloqué à 1 :frowning:

Tu sais comment créer une liste des états pour avoir quelque chose de plus parlant que des chiffres ? Histoire d’associer ce que tu as écrit plus haut ( 1-> pause, 2 → nettoie…)
Je ne me suis jamais penché sur ce type de listes et je ne sais pas par où commencer