Intégration de la Trottinette M365 dans Jeedom

Bonjour,

Je m’excuse par avance si je ne poste pas dans la bonne catégorie.

Je suis en train de suivre le tuto suivant:
https://forum.jeedom.com/viewtopic.php?f=157&t=47129&sid=d121c1f21af68b70964062678b790a19

J’ai bien tout mis en place comme expliqué dans le tuto, mais lorsque je lance le scénario, j’ai cette erreur :
ImportError: No module named m365py

Pourtant en ligne de commande, si j’exécute :
python /var/www/html/montheme/m365/jsonGeneration.py > var/www/html/montheme/m365/m365.json

Le connection à la trotinette et la récupération de données se fait bien.

Je me demande donc si la librairie m365py doit être placée quelque part

Je découvre ton post à l’instant.
Vu tes retours, ça ressemble à un problème de droit non ? La librairie est bien exécutée quand tu recopies la commande.

Sinon tu peux tester ma version plugin ici non finalisée mais avec les mêmes possibilités :

1 « J'aime »

Bonsoir @noodom,

Merci pour ta réponse. Je viens de tenter d’installer ton module sur ma version de Jeedom 4.1 et j’ai cette erreur :
Class ‹ object › not found

Je pense savoir d’où vient le pb. Je crois que c’est un pb classique entre v3 et v4.
Je vais voir si j’arrive à fixer cela et si le plugin fonctionne avec la modif.

Pour info, j’ai une config particulière car j’utilise Jeedom dans un container Docker sur Synology et mon antenne-blea dans un autre container Docker. J’espère que malgré cela ca fonctionnera.

Je te ferais un retour prochainement.

Alors, j’ai réussi à modifier le script pour la V4.
Il faut modifier dans le fichier /m365/desktop/php/m365.php ligne 85 :

foreach (object::all() as $object) {                                          

Par

foreach (jeeObject::all() as $object) {

Par contre, j’ai un soucis lors de la récupération des données. Voici le log :

[2021-03-25 20:38:05][INFO] : traitement des données de la trottinette
[2021-03-25 20:38:08][INFO] : traitement des données de la trottinette
[2021-03-25 20:39:06][INFO] : updateStatus:: Trottinette 556 présente
[2021-03-25 20:39:06][INFO] : lancement de la mise à jour des données de la trottinette d'id 556
[2021-03-25 20:39:06][INFO] : sauvegarde du fichier json m365
[2021-03-25 20:39:06][INFO] : sudo  /bin/bash /var/www/html/plugins/m365/core/class/../../resources/jsonGeneration.sh XX:XX:XX:XX:XX:XX /var/www/html/plugins/m365/core/class/../../data/m365_556.json 0 >> /var/www/html/core/class/../../log/m365 2>&1
Traceback (most recent call last):
File "/var/www/html/plugins/m365/resources/jsonGeneration.py", line 25, in <module>
scooter.connect()
File "/var/www/html/plugins/m365/resources/m365py/m365py.py", line 285, in connect
self._try_connect()
File "/var/www/html/plugins/m365/resources/m365py/m365py.py", line 273, in _try_connect
raise e
bluepy.btle.BTLEDisconnectError: Failed to connect to peripheral XX:XX:XX:XX:XX:XX, addr type: random
[2021-03-25 20:39:17][INFO] : traitement des données de la trottinette
[2021-03-25 20:39:30][INFO] : lancement de l'action cruiseOff avec l'adresse mac XX:XX:XX:XX:XX:XX, autoReconnect=0
[2021-03-25 20:39:30][INFO] : sudo  /bin/bash /var/www/html/plugins/m365/core/class/../../resources/m365actions.sh XX:XX:XX:XX:XX:XX cruiseOff 0 >> /var/www/html/core/class/../../log/m365 2>&1
Traceback (most recent call last):
File "/var/www/html/plugins/m365/resources/m365actions.py", line 23, in <module>
scooter.connect()
File "/var/www/html/plugins/m365/resources/m365py/m365py.py", line 285, in connect
self._try_connect()
File "/var/www/html/plugins/m365/resources/m365py/m365py.py", line 273, in _try_connect
raise e
bluepy.btle.BTLEDisconnectError: Failed to connect to peripheral XX:XX:XX:XX:XX:XX, addr type: random
[2021-03-25 20:39:31][INFO] : updateStatus:: Trottinette 556 présente
[2021-03-25 20:39:31][INFO] : lancement de la mise à jour des données de la trottinette d'id 556
[2021-03-25 20:39:31][INFO] : sauvegarde du fichier json m365
[2021-03-25 20:39:31][INFO] : sudo  /bin/bash /var/www/html/plugins/m365/core/class/../../resources/jsonGeneration.sh XX:XX:XX:XX:XX:XX /var/www/html/plugins/m365/core/class/../../data/m365_556.json 0 >> /var/www/html/core/class/../../log/m365 2>&1
Traceback (most recent call last):
File "/var/www/html/plugins/m365/resources/jsonGeneration.py", line 25, in <module>
scooter.connect()
File "/var/www/html/plugins/m365/resources/m365py/m365py.py", line 285, in connect
self._try_connect()
File "/var/www/html/plugins/m365/resources/m365py/m365py.py", line 273, in _try_connect
raise e
bluepy.btle.BTLEDisconnectError: Failed to connect to peripheral XX:XX:XX:XX:XX:XX, addr type: random
[2021-03-25 20:39:42][INFO] : traitement des données de la trottinette

Une idée d’où cela peut provenir ?
C’est possible que ca vienne de ma config avec 2 containers Docker ?

Merci

Bonjour @noodom,

J’ai vu que la librairie m365py n’était compatible qu’avec le firmware 1.3.8
Du coup, j’ai pu downgrader mon fw en 1.3.8 (jétais en 1.5.5) et je suis en BLE 0.74 sur ma m365 pro.

Sur l’écran dela trotinette, je note que le mode S a disparu (sans doute lié au fw) mais ce n’est pas dramatique.

Pour en revenir à la connection avec jeedom, ca ne fonctionne toujours pas.
J’ai l’impression que le bluetooth de la trotinette ne se connecte même pas à jeedom avec le plugin BLEA.

Pourtant je sais que ca fonctionnait bien avant puisque j’avais pu remonter des infos dans le passé.

Aurais-tu des idées ?
Quelle est la config de ta trotinette si tu as toujours la m365 ?

Merci d’avance.

Si j’ai bien compris, cette librairie la est par contre compatible avec les derniers firmwares https://github.com/scooterhacking/NinebotCrypto

Apparemment oui d’après le Readme.
Merci pour l’info.

pas de soucis, perso j’ai pas les compétences pour modifier le plugin, c’est dommage