Aspirateur Roborock S50 => définir les zones de la maison?
Re: Aspirateur Roborock S50 => définir les zones de la maison?
bizzare : j'étais passsé sur le serveur europe car à un moment xiaomi voulait plus que j'utilise roborock sur le serveur china...
Je vais faire des tests
Je vais faire des tests
mon modeste blog : http://neo-domotic.fr
Re: Aspirateur Roborock S50 => définir les zones de la maison?
ATTENTION RISQUE !! Je ne suis pas responsable en cas de mauvaise manipulation, ceci peut abîmer votre Jeedom en cas d'erreur !
Je vous conseille très très fortement de faire un backup de votre JEEDOM avant de commencer !
Pour ceux qui ont le firmware qui prend en charge le "zone clean" et qui voudraient ajouter la gestion de cette fonctionnalité au superbe plugin de lunarok et sarakha63 (en attendant qu'ils l'intègrent à leur plugin) :
Il faut commencer par récupérer l'id de l'objet aspirateur dans Jeedom. Cet id sert dans le code ci-après :
J'ai réussi en faisait un scénario avec un code php pour ajouter une nouvelle commande au plugin avec l'ordre "app_zoned_clean" et les coordonnées de la zone que j'ai au préalable identifiées chez moi pour la pièce en question. On peut créer une commande pour chacune des pièces de la maison. Ceci est à exécuter une seule fois pour créer la commande.
Ensuite on peut définir une icône pour la commande comme n'importe quelle commande si besoin.
Et un petit clic sur le bouton, et l'aspirateur part nettoyer uniquement la zone que vous avez définie
Le plus compliqué finalement c'est de trouver les coordonnées de chaque pièce de la maison, mais ça c'est pour un autre post...
Je vous conseille très très fortement de faire un backup de votre JEEDOM avant de commencer !
Pour ceux qui ont le firmware qui prend en charge le "zone clean" et qui voudraient ajouter la gestion de cette fonctionnalité au superbe plugin de lunarok et sarakha63 (en attendant qu'ils l'intègrent à leur plugin) :
Il faut commencer par récupérer l'id de l'objet aspirateur dans Jeedom. Cet id sert dans le code ci-après :
J'ai réussi en faisait un scénario avec un code php pour ajouter une nouvelle commande au plugin avec l'ordre "app_zoned_clean" et les coordonnées de la zone que j'ai au préalable identifiées chez moi pour la pièce en question. On peut créer une commande pour chacune des pièces de la maison. Ceci est à exécuter une seule fois pour créer la commande.
Code : Tout sélectionner
# Ajoute la commande "Cuisine" à l'aspirateur avec une clean zone défini sur les coordonnées de la cuisine
# aspirateur => id = 267
$xiaomihomeCmd = new xiaomihomeCmd();
$xiaomihomeCmd->setName('Cuisine');
$xiaomihomeCmd->setEqLogic_id(267); # remplacer l'id par votre id trouvé précédemment dans VOTRE Jeedom !
$xiaomihomeCmd->setEqType('xiaomihome');
$xiaomihomeCmd->setLogicalId('cuisine');
$xiaomihomeCmd->setType('action');
$xiaomihomeCmd->setSubType('other');
$xiaomihomeCmd->setConfiguration('request', 'app_zoned_clean');
$xiaomihomeCmd->setConfiguration('params', '[[21500,25800,24500,29800,2]]'); # Coordonnées de votre pièce [[bas_gauche_x, bas_gauche_y, haut_droit_x, haut_droit_y, nombre_de_passage (1,2 ou 3)]]
$xiaomihomeCmd->setIsVisible('1');
$xiaomihomeCmd->save();
$scenario->setLog(print_r($xiaomihomeCmd, true));
Ensuite on peut définir une icône pour la commande comme n'importe quelle commande si besoin.
Et un petit clic sur le bouton, et l'aspirateur part nettoyer uniquement la zone que vous avez définie
Le plus compliqué finalement c'est de trouver les coordonnées de chaque pièce de la maison, mais ça c'est pour un autre post...
Dernière édition par jfr le 04 oct. 2018, 13:30, édité 2 fois.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Voilà le résultat dans Mi Home après avoir cliqué sur la commande nouvellement créée, on voit la zone donnée à l'aspirateur sur le plan ! On peut donc checker facilement que les coordonnées définies sont correctes :
- Theking31
- Actif
- Messages : 1182
- Inscription : 21 sept. 2017, 11:13
- Localisation : Toulouse - Le Vernet
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Intéressant...
Et c'est adaptable aux version 1 du robot si on a zone clean dans l'app ?
Et c'est adaptable aux version 1 du robot si on a zone clean dans l'app ?
Jeedom 4.0.23 sur Intel NUC 6CAYH | Linux 4.9.0-11-amd64 | Debian 9.11
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Re: Aspirateur Roborock S50 => définir les zones de la maison?
ATTENTION RISQUE !! Je ne suis pas responsable en cas de mauvaise manipulation, ceci peut abîmer votre Jeedom en cas d'erreur !
Je vous conseille très très fortement de faire un backup de votre JEEDOM avant de commencer !
Pour trouver les coordonnées, il faut y aller en tâtonnant.
Les coordonnées sont définies comme ceci :
[[zone1][zone2][zone_x]...] => on peut définir plusieurs zones, dans ce cas l'aspirateur les fera l'une après l'autre et dans l'ordre
Chaque zone est définie comme suit :
[bas_gauche_x, bas_gauche_y, haut_droit_x, haut_droit_y, nombre_de_passage]
Nombre de passage = 1, 2 ou 3 => nombre de passage que l'aspirateur doit faire dans la zone
Exemple :
[[21500,25800,24500,29800,2][11500,22800,24000,11800,1][26000,25800,28500,39800,3]] => définit 3 zones dont la première fera 2 passages, la seconde 1 passage et la dernière 3 passages
Les coordonnées peuvent faire jusqu'à [52000, 52000] ! Après avoir imprimé mon plan Mi Home, je remarque que sur une feuille A4, 1cm fait environ 650 points de coordonnées.
=> 1unité xiaomi = 1 mm donc 1000 => 1m !
La base de l'aspirateur est environ au milieu du plan [25300, 25400] pour moi, je pense que ça doit être le cas à chaque fois, ce qui laisse la possibilité au plan de pouvoir s'agrandir dans toutes les directions au fur et à mesure que l'aspi découvre l'espace autour de lui...
Donc au début chercher autour du milieu pas trop loin de la base, si on définit un point qui sort du plan on a une erreur de l'aspi disant qu'il ne peut pas atteindre la cible.
Maintenant, comment trouver ses coordonnées ? Personnellement j'ai utilisé la commande spot que j'ai modifiée temporairement pour faire un goto target avec des coordonnées au hasard. Et petit à petit on arrive à trouver les coordonnées de toute la maison.
Commencer par identifier l'id de la commande spot de votre aspirateur. Pour moi, il s'agit de l'id 2601 dans exemple, mais pour vous ce sera différent (!!) :
Ensuite utiliser l'éditeur de base de données intégré à Jeedom dans Configuration => OS/DB => Base de données (attention danger, toute mauvaise manipulation ici peut être fatale à votre JEEDOM, je ne suis pas responsable !!) :
Taper la commande SQL suivante dans le requêteur SQL (avec l'id de VOTRE commande spot) :
Noter la configuration actuelle, pour pouvoir remettre la commande spot à la fin !!
Exemple :
Ensuite il ne reste plus qu'à modifier la configuration de la commande spot pour lui faire faire un goto target avec les coordonnées qu'on veut plutôt qu'un nettoyage spot. Pour cela on utilise la commande suivante pour modifier la configuration de la commande spot et faire aller le robot aux coordonnées [21500,25800] :
En fait il faut remplacer dans la configuration de VOTRE commande spot :
par :
avec les coordonnées souhaitées. Puis cliquer sur le bouton spot pour faire aller le robot aux coordonnées demandées ! Bonus : l'application Mi Home vous montrera sur le plan la cible visée.
Et recommencer autant de fois que nécessaire pour identifier toutes les coordonnées de la maison
Et quand on a terminé, remettre la commande spot comme elle était avec un :
=> reprendre la configuration que vous avez noté au départ entre les {} !
Je vous conseille très très fortement de faire un backup de votre JEEDOM avant de commencer !
Pour trouver les coordonnées, il faut y aller en tâtonnant.
Les coordonnées sont définies comme ceci :
[[zone1][zone2][zone_x]...] => on peut définir plusieurs zones, dans ce cas l'aspirateur les fera l'une après l'autre et dans l'ordre
Chaque zone est définie comme suit :
[bas_gauche_x, bas_gauche_y, haut_droit_x, haut_droit_y, nombre_de_passage]
Nombre de passage = 1, 2 ou 3 => nombre de passage que l'aspirateur doit faire dans la zone
Exemple :
[[21500,25800,24500,29800,2][11500,22800,24000,11800,1][26000,25800,28500,39800,3]] => définit 3 zones dont la première fera 2 passages, la seconde 1 passage et la dernière 3 passages
Les coordonnées peuvent faire jusqu'à [52000, 52000] ! Après avoir imprimé mon plan Mi Home, je remarque que sur une feuille A4, 1cm fait environ 650 points de coordonnées.
=> 1unité xiaomi = 1 mm donc 1000 => 1m !
La base de l'aspirateur est environ au milieu du plan [25300, 25400] pour moi, je pense que ça doit être le cas à chaque fois, ce qui laisse la possibilité au plan de pouvoir s'agrandir dans toutes les directions au fur et à mesure que l'aspi découvre l'espace autour de lui...
Donc au début chercher autour du milieu pas trop loin de la base, si on définit un point qui sort du plan on a une erreur de l'aspi disant qu'il ne peut pas atteindre la cible.
Maintenant, comment trouver ses coordonnées ? Personnellement j'ai utilisé la commande spot que j'ai modifiée temporairement pour faire un goto target avec des coordonnées au hasard. Et petit à petit on arrive à trouver les coordonnées de toute la maison.
Commencer par identifier l'id de la commande spot de votre aspirateur. Pour moi, il s'agit de l'id 2601 dans exemple, mais pour vous ce sera différent (!!) :
Ensuite utiliser l'éditeur de base de données intégré à Jeedom dans Configuration => OS/DB => Base de données (attention danger, toute mauvaise manipulation ici peut être fatale à votre JEEDOM, je ne suis pas responsable !!) :
Taper la commande SQL suivante dans le requêteur SQL (avec l'id de VOTRE commande spot) :
Code : Tout sélectionner
select configuration from cmd where id = 2601
Exemple :
Ensuite il ne reste plus qu'à modifier la configuration de la commande spot pour lui faire faire un goto target avec les coordonnées qu'on veut plutôt qu'un nettoyage spot. Pour cela on utilise la commande suivante pour modifier la configuration de la commande spot et faire aller le robot aux coordonnées [21500,25800] :
Code : Tout sélectionner
UPDATE cmd SET configuration='{"request":"app_goto_target","params":"[21500,25800]","timeline::enable":"0","interact::auto::disable":"0","actionConfirm":"0","actionCodeAccess":"","actionCheckCmd":[],"jeedomPreExecCmd":[],"jeedomPostExecCmd":[],"minValue":"","maxValue":""}' where id = 2601
Code : Tout sélectionner
"request":"app_spot"
Code : Tout sélectionner
"request":"app_goto_target","params":"[21500,25800]"
Et recommencer autant de fois que nécessaire pour identifier toutes les coordonnées de la maison
Et quand on a terminé, remettre la commande spot comme elle était avec un :
Code : Tout sélectionner
UPDATE cmd SET configuration='{"request":"app_spot","timeline::enable":"0","interact::auto::disable":"0","actionConfirm":"0","actionCodeAccess":"","actionCheckCmd":[],"jeedomPreExecCmd":[],"jeedomPostExecCmd":[],"minValue":"","maxValue":""}' where id = 2601
Dernière édition par jfr le 04 oct. 2018, 13:38, édité 4 fois.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
C'est le même protocole pour V1 et V2 visiblement
https://github.com/marcelrv/XiaomiRobotVacuumProtocol
-
- Timide
- Messages : 13
- Inscription : 29 mai 2017, 21:20
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Bonjour,
J'ai l'impression que pour l'instant seule la V2 peut utiliser les zones et avoir le Français, y a t-il parmi vous des possesseur du V1 qui ont le français et/ou les zones ?
J'ai l'impression que pour l'instant seule la V2 peut utiliser les zones et avoir le Français, y a t-il parmi vous des possesseur du V1 qui ont le français et/ou les zones ?
- Theking31
- Actif
- Messages : 1182
- Inscription : 21 sept. 2017, 11:13
- Localisation : Toulouse - Le Vernet
Re: Aspirateur Roborock S50 => définir les zones de la maison?
J'ai les zones mais pas le français => V1
Jeedom 4.0.23 sur Intel NUC 6CAYH | Linux 4.9.0-11-amd64 | Debian 9.11
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Re: Aspirateur Roborock S50 => définir les zones de la maison?
J'ai le Français, mais pas la maj des zones ==> V2 (serveur europe)
Re: Aspirateur Roborock S50 => définir les zones de la maison?
@jfr Marche nickel pour ajouter la commande et lancer la zone de clean
Ton mode serpillière c'est toi qui l'a ajouté ?
Ton mode serpillière c'est toi qui l'a ajouté ?
PROD: NAS1815+ VMM Buster 10.2 / Jeedom 4.0.31 / MariaDB 10.3.18 / PHP 7.3.9
DEV: DIY Odroid C2 16gb Strech 9.11 / Jeedom 4.x Alpha / MariaDB 10.1.41 / PHP 7.0.33
DEV: DIY Odroid C2 16gb Strech 9.11 / Jeedom 4.x Alpha / MariaDB 10.1.41 / PHP 7.0.33
-
- Timide
- Messages : 13
- Inscription : 29 mai 2017, 21:20
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Je confirme que la méthode proposée par Jfr fonctionne parfaitement sur un v1.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Heureux que ça fonctionne en V1 et V2
Le mode serpillière est arrivé tout seul à l'ajout de mon aspirateur (V2) dans le plugin, je n'ai rien fait de spécial.
Voici la configuration de ma commande si ça peut servir :
- Theking31
- Actif
- Messages : 1182
- Inscription : 21 sept. 2017, 11:13
- Localisation : Toulouse - Le Vernet
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Merci pour ce tuto et pour ta trouvaille
Marche nikel sur V1 (zone cleanup)...
Bon pas évident de trouver les coordonnées mais une fois que c'est fait, c'est que du bonheur et encore plus avec ifttt et GH.
Chapeau bas
Marche nikel sur V1 (zone cleanup)...
Bon pas évident de trouver les coordonnées mais une fois que c'est fait, c'est que du bonheur et encore plus avec ifttt et GH.
Chapeau bas
Jeedom 4.0.23 sur Intel NUC 6CAYH | Linux 4.9.0-11-amd64 | Debian 9.11
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
-
- Timide
- Messages : 13
- Inscription : 29 mai 2017, 21:20
Re: Aspirateur Roborock S50 => définir les zones de la maison?
De mon coté, j'ai un petit soucis. J'avais définis différentes zones, et j'ai relancé un nettoyage "classique" ce qui a régénéré la carte et évidement elle n'avait pas la même orientation que lorsque j'ai définis mes zones. Donc évidement les zones ne correspondent plus.
Je ne sais pas si on peut résoudre ce problème et si je suis le seul à rencontrer ce problème.
Pour info j'ai la V1 donc je ne peux pas sauvegarder la carte.
Je ne sais pas si on peut résoudre ce problème et si je suis le seul à rencontrer ce problème.
Pour info j'ai la V1 donc je ne peux pas sauvegarder la carte.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Visiblement c’est un problème rencontré par pas mal de monde quand on parcoure les forums je n’ai pas encore rencontré le soucis. La solution proposée par certains c’est de ne faire que du zone clean qui utilise la map existante sans la recréer.doudouhightech a écrit : ↑05 oct. 2018, 13:09De mon coté, j'ai un petit soucis. J'avais définis différentes zones, et j'ai relancé un nettoyage "classique" ce qui a régénéré la carte et évidement elle n'avait pas la même orientation que lorsque j'ai définis mes zones. Donc évidement les zones ne correspondent plus.
Je ne sais pas si on peut résoudre ce problème et si je suis le seul à rencontrer ce problème.
Pour info j'ai la V1 donc je ne peux pas sauvegarder la carte.
- Theking31
- Actif
- Messages : 1182
- Inscription : 21 sept. 2017, 11:13
- Localisation : Toulouse - Le Vernet
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Arrf... c'est ballot ça, j'viens d'y passer 2h
Qu'est ce qui fait que l’orientation de la carte change ?
Qu'est ce qui fait que l’orientation de la carte change ?
Jeedom 4.0.23 sur Intel NUC 6CAYH | Linux 4.9.0-11-amd64 | Debian 9.11
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Bonsoir à tous,
J'ai pour ma part un v1, qui fonctionnait très bien jusqu'à y'a pas si longtemps.
En fait, j'ai un amis qui a le même appareil que moi (on l'a commandé à qq jours d'intervalle) et qui lui avait la fonctionnalité des zones (moi pas).
En comparant ce qui était différents entre nos deux configs, il était sur Main China et moi sur Other. J'ai changé de serveur pour passer sur Europe.
Et là Oura j'ai bien les zone cleanup sur l'appli.
j'ai récupéré le token via la méthode Iphone/iOS, mais là pas moyen de faire fonctionner dans Jeedom.
Je suis du coup passé sur China, même soucis, puis retour sur Other, tjours la même (mais j'ai conservé les zones).
Est-ce qu'il y a un moyen de récupérer un token fonctionnel pour de nouveau lancer l'aspi depuis Jeedom?
Merci à vous pour les suggestions.
Edit: j'ai tenté de recréer toutes les commandes à chaque fois que j'ai changé de serveur mais ça ne change rien du tout
J'ai pour ma part un v1, qui fonctionnait très bien jusqu'à y'a pas si longtemps.
En fait, j'ai un amis qui a le même appareil que moi (on l'a commandé à qq jours d'intervalle) et qui lui avait la fonctionnalité des zones (moi pas).
En comparant ce qui était différents entre nos deux configs, il était sur Main China et moi sur Other. J'ai changé de serveur pour passer sur Europe.
Et là Oura j'ai bien les zone cleanup sur l'appli.
j'ai récupéré le token via la méthode Iphone/iOS, mais là pas moyen de faire fonctionner dans Jeedom.
Je suis du coup passé sur China, même soucis, puis retour sur Other, tjours la même (mais j'ai conservé les zones).
Est-ce qu'il y a un moyen de récupérer un token fonctionnel pour de nouveau lancer l'aspi depuis Jeedom?
Merci à vous pour les suggestions.
Edit: j'ai tenté de recréer toutes les commandes à chaque fois que j'ai changé de serveur mais ça ne change rien du tout
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Greenju => quelle version de Mi Home ? tu as bien un token version crypté qu'il faut décrypter ?
Re: Aspirateur Roborock S50 => définir les zones de la maison?
version 4.8.7 pour MiHome
Comment je sais si mon Token est chiffré?
Je l'ai mis tel quel dans l'interface. En utilisant la méthode iOS, le principe c'est de récupérer la sauvegarde du téléphone pour aller recupérer l'id dedans.
Au passage, du coup j'ai restauré un backup d'avant mes bidouilles, j'ai récupéré le token qui fonctionnait auparavant, mais cela ne fonctionne toujours pas.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Dans les versions récentes de Mi Home le token est chiffré, il faut le déchiffrer avant de pouvoir l'utiliser.
S'il fait 96 caractères => il est chiffré !
La version en clair (déchiffrée) du token fait 32 caractères.
https://vdays.net/fr/2017/09/28/tuto-je ... ken_crypte
Sinon voici un petit script en python 2.7 pour déchiffrer son token (renseigner le token à l'endroit indiqué dans le script entre les '') :
Puis exécuter le script qui affichera le token déchiffré :
S'il fait 96 caractères => il est chiffré !
La version en clair (déchiffrée) du token fait 32 caractères.
https://vdays.net/fr/2017/09/28/tuto-je ... ken_crypte
Sinon voici un petit script en python 2.7 pour déchiffrer son token (renseigner le token à l'endroit indiqué dans le script entre les '') :
Code : Tout sélectionner
from Crypto.Cipher import AES
import binascii
keystring = '00000000000000000000000000000000'
iostoken = 'METTRE SON TOKEN DE 96 CARACTERES ICI'
key = bytes(bytearray.fromhex(keystring))
cipher = AES.new(key, AES.MODE_ECB)
token = cipher.decrypt(bytes(bytearray.fromhex(iostoken[:64])))
print(token)
Code : Tout sélectionner
# python nom_du_script.py
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités