Nouveau Plugin Dreame : recherche des testeurs

nouvelle version dispo à l’instant
à retester @jean-marc @phn77470 @clmuller

Ok je regarde ds la journée

Problème résolu, un grand MERCI !

pas mieux !!

ajout robot => null matériel ajouté

ci joint les fichiers log !!

dreame (2).log (9,5 Ko)
dreame_packages(1).log (12,2 Ko)

réponse a
sudo miiocli -o json_pretty viomivacuum --ip 192.168.31.15 --token …

Traceback (most recent call last):
  File "/usr/local/bin/miiocli", line 5, in 
    from miio.cli import create_cli
  File "/usr/local/lib/python3.8/site-packages/miio/__init__.py", line 23, in 
    from miio.cloud import CloudDeviceInfo, CloudException, CloudInterface
  File "/usr/local/lib/python3.8/site-packages/miio/cloud.py", line 32, in 
    class CloudDeviceInfo(BaseModel):
  File "/usr/local/lib/python3.8/site-packages/pydantic/_internal/_model_construction.py", line 98, in __new__
    private_attributes = inspect_namespace(
  File "/usr/local/lib/python3.8/site-packages/pydantic/_internal/_model_construction.py", line 327, in inspect_namespace
    raise NameError(
NameError: Fields must not use names with leading underscores; e.g., use 'raw_data' instead of '_raw_data'.

bonjour,
je me pose une question, suite au non fonctionnement du plugin gkeep.
en lisant divers sujet, nécessite d’avoir python v3.8 mini,
ce qui semble aussi nécessaire dans dreame.
dans vérification des système, il est précisé python3.7.3-1.
y aurait il un éventuel loup ??
amicalement

est-ce que ce plugin install python 3.8?
si oui comment? je peux voir le script? (ou le repo github)

ma question est en lien avec un problème que j’ai ici sur un autre plugin:

je n’ai pas du tout regardé ce qui est fait sur les dépendances.
Il y a surement un gros boulot à faire, puisque j’avais mis plus de 28min à les installer …
donc pas certains que tout soit correctement fait/installé …!

le repo est là :
dreame/resources at dev · Julien80/dreame (github.com)

du coup, il semble que « oui » pour 3.8

python3.8 est installé en atlisntall donc soit, si on fait gaffe ca peut aller

mais après les package sont installé sur le système global avec python3.8 y compris pip! => ca va casser tous les plugins qui n’ont pas de venv, donc tout ceux qui se repose sur le système de package du core… :sob:

faut absolument passer sur un venv dans ce cas, et pas aller écraser le pip de python3.7;
ca va faire bcp de dégât

bon, au moins je sais d’où vient le problème

Hello Mips,

L’installation de Dreame sur mon Jeedom de dev n’a pas cassé Blitzortung chez moi. Tu vois pourquoi du coup ?

soit pcq il était installé avant et qu’il n’y a pas de librairies en commun, soit pcq tu utilises un venv pour ton plugin

Je n’utilises pas de venv, j’avais bien lu ce que tu avais dis à ce propos. J’ai installé Dreame après Blitzortung (système de dépendant géré par la nouvelle méthode avec packages.json) donc du coup il n’utilise pas les mêmes librairies.

Par contre tu vas avoir le problème avec tout nouveau plugin qui installera les dépendances python via le system package.json ou lors de réinstallation des dépendances

Au diable les dépendances ! :stuck_out_tongue_closed_eyes:

Ta solution sera là (si tu es bien dans le même cas):

1 « J'aime »

Coucou a toutes et a tous, en lisant le forum, je me sens moins seul :grin:

J’ai exactement le meme probleme, plus rien qui fonctionne sur ce plugin alors que tout fonctionnait sans probleme avant. J’ai lu qu’il fallait supprimer le robot et le refaire détecter avec le plugin mais probleme, rien n’est trouvé

[2023-09-04 19:43:21]DEBUG : ============================ DISCOVER ============================
[2023-09-04 19:43:22]DEBUG : ["Traceback (most recent call last):","  File \"\/usr\/local\/bin\/micloud\", line 5, in ","    from micloud.cli import cli","  File \"\/usr\/local\/lib\/python3.8\/site-packages\/micloud\/__init__.py\", line 1, in ","    from .micloud import MiCloud","  File \"\/usr\/local\/lib\/python3.8\/site-packages\/micloud\/micloud.py\", line 16, in ","    from micloud import miutils","  File \"\/usr\/local\/lib\/python3.8\/site-packages\/micloud\/miutils.py\", line 15, in ","    from Crypto.Cipher import ARC4","ImportError: cannot import name 'ARC4' from 'Crypto.Cipher' (unknown location)"]

J’ai réinstallé python3-pip aussi, sans succès (enfin si, il est bien installé mais ça change rien).
Au besoin, j’ai remarqué que miiocli provoquait une erreur lors de la lecture de la version.

sudo micloud --version
Traceback (most recent call last):
  File "/usr/local/bin/micloud", line 5, in <module>
    from micloud.cli import cli
  File "/usr/local/lib/python3.8/site-packages/micloud/__init__.py", line 1, in <module>
    from .micloud import MiCloud
  File "/usr/local/lib/python3.8/site-packages/micloud/micloud.py", line 16, in <module>
    from micloud import miutils
  File "/usr/local/lib/python3.8/site-packages/micloud/miutils.py", line 15, in <module>
    from Crypto.Cipher import ARC4
ImportError: cannot import name 'ARC4' from 'Crypto.Cipher' (unknown location)

pycrypto-2.6.1 est bien installé (réinstallé pour tester, toujours KO). La version de Python est la 3.7.3, la version de pip est la 23.2.1. Wheel est dans sa version 0.41.2. J’avoue que je sèche…

J’ai aussi testé la commande suivante qu’avait donné Julien : sudo python3.8 -m pip install pydantic==1.10.6, mais cette fois ci, meme avec une version spécifique, toujours le meme probleme
PS : J’ai réalisé un snapshot de ma VM, je peux donc la péter sans probleme

Hello,
C’est moi qui ai mis en place ces installations, et je suis le premier a reconnaître que c’est loin d’être optimisé.
J’ai essayé 50 combinaisons différentes pour réussir une installation complète de python-miio et micloud, qui sont les 2 dépendances principales du plugin.
Le soucis c’est que l’installation marche ou boîte suivant les cas et les configurations de chaque personne.
Je n’arrive pas a contourner ce problème et je suis ouvert à toute proposition pour améliorer le point noir et catastrophique de ce plugin.
Loin de moi de vouloir dégrader vos expériences avec Jeedom et les futurs problèmes d’installation et je m’en excuse.

1 « J'aime »

Pour le soucis précédent voici la solution.

FYI : J’ai initié des modifs pour utiliser un venv, rollback partiel sur les mauvaises install, et faire un peu de ménage dans ce qui est fait.

Hello tous,

nouvelle version dispo, incluant le venv et faisant un rollback sur la précédente mauvaise installation.
En théorie lors de la mise à jour du plugin, l’installation des dépendances sera automatiquement faite, si ce n’est pas le cas, pensez à les lancer pour que le plugin fonctionne de nouveau :slight_smile:

1 « J'aime »

Bonjour,
un espoir !!,
la mise à jour a effectivement ramené le robot au centre de Jeedom !!
il est détecté, mais pas ses commandes malgré mon insistance !!
à suivre !
voici les fichiers debug :

dreame_dep.log (16,9 Ko)
dreame_packages(2).log (13,1 Ko)
dreame (3).log (2,2 Ko)

néanmoins, un copier coller de la commande miiocli issue du fichier debug « dreame »,
CMD BY genericmiot → sudo … -ip -token status, dans administration systeme :

saisissez ou collez du code ici
```ERROR:miio.click_common:Exception: Cache file /root/.cache/python-miio/viomi.vacuum.v6.json not found or it is stale
Traceback (most recent call last):
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/click_common.py", line 54, in __call__
    return self.main(*args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/click_common.py", line 331, in wrap
    result = func(*args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/decorators.py", line 92, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/click_common.py", line 270, in command_callback
    return miio_command.call(miio_device, *args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/click_common.py", line 218, in call
    return method(*args, **kwargs)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/click_common.py", line 184, in _wrap
    self._fetch_info()
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/integrations/genericmiot/genericmiot.py", line 199, in _fetch_info
    self.initialize_model()
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/integrations/genericmiot/genericmiot.py", line 65, in initialize_model
    self._miot_model = miotcloud.get_device_model(self.model)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/miot_cloud.py", line 87, in get_device_model
    spec = self._file_from_cache(file)
  File "/var/www/html/plugins/dreame/resources/venv/lib/python3.8/site-packages/miio/miot_cloud.py", line 129, in _file_from_cache
    raise FileNotFoundError("Cache file %s not found or it is stale" % file)
FileNotFoundError: Cache file /root/.cache/python-miio/viomi.vacuum.v6.json not found or it is stale

si je mets viomivacuum :

{
  "battary_life": 100,
  "box_type": 1,
  "cur_mapid": 1660055948,
  "err_state": 2105,
  "has_map": 1,
  "has_newmap": 0,
  "hw_info": "1.0.3",
  "is_charge": 0,
  "is_mop": 0,
  "is_work": 1,
  "light_state": 1,
  "map_num": 1,
  "mode": 0,
  "mop_route": 1,
  "mop_type": 0,
  "remember_map": 1,
  "repeat_state": 0,
  "run_state": 5,
  "s_area": 0,
  "s_time": 0,
  "suction_grade": 0,
  "v_state": 7,
  "water_grade": 12,
  "order_time": "0",
  "start_time": 0,
  "water_percent": 0,
  "zone_data": "0",
  "sw_info": "3.5.8_0046",
  "main_brush_hours": 193,
  "main_brush_life": 53,
  "side_brush_hours": 13,
  "side_brush_life": 7,
  "mop_hours": 22,
  "mop_life": 12,
  "hypa_hours": 13,
  "hypa_life": 7
}

cela vient, ne rien lâcher !!

merci