Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Aspirateur Roborock S50 => définir les zones de la maison?

Lacer
Timide
Messages : 56
Inscription : 24 nov. 2017, 17:59

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par Lacer » 13 avr. 2019, 23:12

Décidément, l'œil du pro !
Et coordonnées à autre aussi, non ?
Grâce à vous, mon scénario et virtuel marchent parfaitement, c'est le robot qui merdoie et j'ai besoin d'un conseil.
J'ai deux ensembles de zones partie_jour et partie_nuit qui se dessinent correctement sur la cartographie quand je lance le robot par le virtuel. Mais le robot fait 2 ou 3 zones et rentre à la base.
Et sur un groupement de zone "dégagement" en L composé d'un rectangle et d'un carré il se déplace dans tous les sens et part dans la pièce à côté et est incapable de retrouver la base si je lui demande.
Je me demande si le problème ne vient pas du fait que j'ai défini les zones au ras des murs et j'ai l'impression que le bord de la zone correspond au milieu du robot.
Qu'en pensez vous et que conseillez vous pour la définition des zones ?
But : piloter la maison à la voix
Groupe FB "club domotique Lyon" pour infos
Thermostat sur PAC réversible
Google Home et Sonoff, IFTTT, relais electrodragon
Jeedom sur Raspberry Fibaro commandé avec une seule commande IFTTT et interactions

morillaz
Timide
Messages : 17
Inscription : 12 avr. 2019, 10:20

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par morillaz » 14 avr. 2019, 10:38

Patrick a écrit :
13 avr. 2019, 21:14
morillaz a écrit :
13 avr. 2019, 20:30
Impossible de lancer via le virtuel.
Je suis obligé de lancer l'ordre , puis d'executer le scénario a chaque fois.
Déjà cela n'a strictement aucun intérêt d'essayer de lancer le scénario manuellement car il n'aura dans ce cas aucun paramètres...

Le problème qui déjà me saute aux yeux, c'est le type que tu as donné a la commande info "ordre" !

Si tu mets un type Numeric, ça ne peut pas marcher puisqu'on va mettre dedans le nom de la zone CàD du texte !
donc change déjà le type en "Autre", et refait un test MAIS avec un clic sur le Virtuel.

Ca devrait déjà avoir plus d'effets !!! :lol:

Surtout, ne change rien d'autre pour le moment, que je puisses savoir ou tu en es si jamais cela ne fonctionnait toujours pas...
A défaut de fonctionner , ca me fait un cours particulier au moins :)
J'ai bien change le type pour Ordre et coordonnées .
Mon virtuel ne déclenche rien, je comprend pas je l'ai pourtant mis en événement provoqué.

Quand j'actionne le virtuel de zone, je vois bien que la commande est prise en compte, mais le scenario ne voit rien.
je remarque que j'ai toujours un 0 devant "coordonnées".
Pièces jointes
Capture d’écran 2019-04-14 à 10.34.37.png
Capture d’écran 2019-04-14 à 10.34.37.png (20.76 Kio) Consulté 869 fois
Capture d’écran 2019-04-14 à 10.34.44.png
Capture d’écran 2019-04-14 à 10.34.44.png (21.19 Kio) Consulté 869 fois
Capture d’écran 2019-04-14 à 10.34.58.png
Capture d’écran 2019-04-14 à 10.34.58.png (301.36 Kio) Consulté 869 fois

Avatar de l’utilisateur
Patrick
Helper
Messages : 1025
Inscription : 29 août 2014, 15:21
Localisation : Savoie

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par Patrick » 14 avr. 2019, 10:50

Dans ton virtuel, au bout de la ligne de la commande Ordre, tu as une roue crantée pour ouvrir la configuration avancée...
Modifie la répétition, en la passant sur "toujours répéter".
Ensuite refait un test et donne le log...
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean

En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal

morillaz
Timide
Messages : 17
Inscription : 12 avr. 2019, 10:20

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par morillaz » 14 avr. 2019, 11:01

Ahhhh, le virtuel actife bien le scenario.
Par contre toujours pour 2cm
Pièces jointes
Capture d’écran 2019-04-14 à 11.00.57.png
Capture d’écran 2019-04-14 à 11.00.57.png (68.74 Kio) Consulté 860 fois

morillaz
Timide
Messages : 17
Inscription : 12 avr. 2019, 10:20

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par morillaz » 14 avr. 2019, 11:04

Ca y est ca fonctionne .
je viens de faire la meme motif "toujours répéter" sur la commande coordonnées et ca tourne !!!!!!

Millle merci ,
+10000 pour votre patience

sim2000
Timide
Messages : 65
Inscription : 08 avr. 2018, 23:19

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par sim2000 » 14 avr. 2019, 18:03

Salut à tous :)

Bon déja avant d'exposer mes problèmes, je tiens à dire un grand merci pour le travail apporté à ce script mais surtout au temps que chacun passe pour entraider les autres dans le besoin! Vous me voyez venir avec mes grands sabots lol!

Bon j'ai en apparence le même problème que beaucoup, je lance la commande depuis le virtuel, le robot sort du dock, dit qu'il a terminé au bout de 2s et rentre à la maison... (Ca c'est pour un zoneClean, pour un Gothere il ne bouge pas du tout).

J'ai commencé à chercher un peu partout, et après avoir trouvé plusieurs fois des erreurs dans mon code, j'ai à chaque fois pensé que ca allait fonctionnait mais non! Je m'en remet à vous...

Voici mon code:

Code : Tout sélectionner

//Script de contournement des problèmes de rotations de cartes
//définition des zones (cleanZone) et des positions sur la carte (goThere):
$coordonnees = array();
$coordonnees[‘Litiere chat’][] = "23500,21000,25500,22800,1";
$coordonnees[‘Chambre’][] = "22500,24000,26000,27800,1";
$coordonnees[‘Salle de bain’][] = "23200,19500,26000,22800,1";
$coordonnees[‘Couloir’][] = "22000,21000,23200,23500,1";
//Coordonnees des goThere
$coordonnees[‘Poubelle’][] = "24500,22000";

//Ne pas modifier en dessous//

//Récupération des paramètres stockés dans le virtuel:
  //Rotation relative de la carte == 0 lors de la création initiale des zones
$cmd = cmd::byString("#[Chambre][Aspirateur Ronflex Virtuel][Rotation Map]#");
$rotation = $cmd->execCmd();
// centre X de la carte :
$cmd = cmd::byString("#[Chambre][Aspirateur Ronflex Virtuel][Centre X]#");
$centre_x = $cmd->execCmd();
// centre Y de la carte :
$cmd = cmd::byString("#[Chambre][Aspirateur Ronflex Virtuel][Centre Y]#");
$centre_y = $cmd->execCmd();
$centre = array($centre_x,$centre_y); // centre X,Y de la carte (25000,25000)

//Fonctions utiles
function rotate($x,$y, $angle,$centre) {
  if($angle == 0)
  {
    // ajustement facultatif du centre par défaut en cas de léger déplacement de la base:
   // $x = $x - 80;
   // $y = $y + 80;
    return array($x,$y);
  }
  $angle *= M_PI / 180;
  $xM = $x - $centre [0];
  $yM = $y - $centre [1];
  $x = $xM * cos($angle) + $yM * sin($angle) + $centre[0];
  $y = - $xM * sin($angle) + $yM * cos($angle) + $centre[1];
  return array(round($x), round($y));
  }
  
function generer($coordonnees,$quoi,$rotation,$centre)
{
  if( count($coordonnees[$quoi])<1 ) return "AUCUN";
  $zonedef=array();
  foreach($coordonnees[$quoi] as $lazone)
     { //pour chaque zone
    	$zone=explode(',', $lazone);
    	$coord=array();
    	list( $xa , $ya ) = rotate($zone[0],$zone[1],$rotation,$centre); // renvoi position debut array(x,y)
    	if( $zone[2] > 0 )
        { // CleanZone
          list( $xb , $yb ) = rotate($zone[2],$zone[3],$rotation,$centre); // renvoi position fin array(x,y)
          if( $xa < $xb )
          {
            $coord[0] = $xa;
            $coord[1] = 0;
            $coord[2] = $xb;
          }
          else{
            $coord[0] = $xb;
            $coord[1] = 0;
            $coord[2] = $xa;
          }
          if( $ya < $yb )
          {
            $coord[1] =$ya;
            $coord[3] =$yb;
          }
          else{
            $coord[1] =$yb;
            $coord[3] =$ya;
          }
          $coord[4]=$zone[4];
          $zonedef[]='['.implode(',',$coord).']';
        }
    else{  // GoThere
      $zonedef[] = $xa . "," . $ya;
    }
  }
  return implode(',',$zonedef);
}
  
// créer le JOB
  $cmd = cmd::byString("#[Chambre][Aspirateur Ronflex Virtuel][Ordre]#");
  $job = $cmd->execCmd(); //Contien de le nom de la zone ou position demandée (tel que défini dans notre tableau)
  
  // on génère les coordonnées corrigées :
  $newpos = generer($coordonnees,$job,$rotation,$centre);
  
  //et on sauve ces coordonnées dans notre virtuel (pour qu'ils soient exploitables hors de notre bloc code)
  $cmd = cmd::byString("#[Chambre][Aspirateur Ronflex Virtuel][coordonnees]#");
  $cmd->event($newpos);
  
  // FIN DU SCRIPT
Le log de mon scenario:

Code : Tout sélectionner

[2019-04-14 17:28:32][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Chambre][Aspirateur Ronflex Virtuel][Ordre].
[2019-04-14 17:28:32][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-04-14 17:28:32][SCENARIO] Exécution d'un bloc code
[2019-04-14 17:28:32][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-14 17:28:33][SCENARIO] Evaluation de la condition : ["Poubelle" ==  "Litiere chat"] = Faux
[2019-04-14 17:28:33][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-04-14 17:28:33][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-14 17:28:33][SCENARIO] Evaluation de la condition : ["Poubelle" ==  "Couloir"] = Faux
[2019-04-14 17:28:33][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-04-14 17:28:33][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-14 17:28:33][SCENARIO] Evaluation de la condition : ["Poubelle" ==  "Poubelle"] = Vrai
[2019-04-14 17:28:33][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-04-14 17:28:33][SCENARIO] Exécution de la commande [Chambre][Aspi Ronflex][GoThere] avec comme option(s) : {"background":"0","title":"","message":""}
[2019-04-14 17:28:33][SCENARIO] Fin correcte du scénario
------------------------------------
[2019-04-14 17:47:42][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Chambre][Aspirateur Ronflex Virtuel][Ordre].
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-04-14 17:47:42][SCENARIO] Exécution d'un bloc code
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-14 17:47:42][SCENARIO] Evaluation de la condition : ["Litiere chat" ==  "Litiere chat"] = Vrai
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-04-14 17:47:42][SCENARIO] Exécution de la commande [Chambre][Aspi Ronflex][CleanZone] avec comme option(s) : {"background":"0","title":"","message":""}
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-14 17:47:42][SCENARIO] Evaluation de la condition : ["Litiere chat" ==  "Couloir"] = Faux
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-14 17:47:42][SCENARIO] Evaluation de la condition : ["Litiere chat" ==  "Poubelle"] = Faux
[2019-04-14 17:47:42][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-04-14 17:47:42][SCENARIO] Fin correcte du scénario
Voila mon scénario (après le bloc code):

Image

Enfin mon virtuel:
Image
Image

Donc comme on voit ci-dessus, le scénario est bien exécuté, mais l'aspi ne part pas car il ne semble ne rien y avoir dans l'info coordonnées, et la je sèche... :roll:

Avatar de l’utilisateur
noodom
Actif
Messages : 980
Inscription : 13 juil. 2014, 17:25
Contact :

Aspirateur Roborock S50 => définir les zones de la maison?

Message par noodom » 14 avr. 2019, 18:53

Salut,

Je ne sais pas si c'est transformé par le forum, mais les apostrophes ne semblent pas correctes et pourraient avoir un impact : remplacer ’ par ' pour les noms de coordonnées
ex : $coordonnees[‘Litiere chat’][] à remplacer par $coordonnees['Litiere chat'][]

Sinon je ne pense pas que ça soit gênant mais autant respecter la casse entre la déclaration dans le virtuel et le script ("centre x" et[Centre X], c'est plus clair à lire et maintenir.

sim2000
Timide
Messages : 65
Inscription : 08 avr. 2018, 23:19

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par sim2000 » 14 avr. 2019, 23:33

noodom a écrit :
14 avr. 2019, 18:53
Salut,

Je ne sais pas si c'est transformé par le forum, mais les apostrophes ne semblent pas correctes et pourraient avoir un impact : remplacer ’ par ' pour les noms de coordonnées
ex : $coordonnees[‘Litiere chat’][] à remplacer par $coordonnees['Litiere chat'][]

Sinon je ne pense pas que ça soit gênant mais autant respecter la casse entre la déclaration dans le virtuel et le script ("centre x" et[Centre X], c'est plus clair à lire et maintenir.
Salut noodom!

Bon bah... MERCI! :lol: :lol:

C'est dingue, même en lisant ta réponse sur le coup je n'ai pas trop tilté! Je ne savais même pas qu'il existait tout ces signes ressemblant à l'apostrophe... Le mien n'en était pas une!
Au cas où si ça arrive à quelqu'un, attention à ne pas recopier le texte du tuto qui donne:

Code : Tout sélectionner

$coordonnees[‘NOM_UNIQUE DE MA ZONE’][] = « Bas_X,Bas_Y,Haut_X,Haut_Y,NbreDePassages »;
et avec les apostrophes...

Code : Tout sélectionner

$coordonnees['NOM_UNIQUE DE MA ZONE'][] = « Bas_X,Bas_Y,Haut_X,Haut_Y,NbreDePassages »;
Sinon pour la casse j'avais renommé entre temps les noms dans mes virtuels, d'où la non concordance!
En tout cas, merci encore! :D :D A moi les zone!

Avatar de l’utilisateur
noodom
Actif
Messages : 980
Inscription : 13 juil. 2014, 17:25
Contact :

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par noodom » 15 avr. 2019, 00:34

Un bon classique d'erreur 'invisible' qu'on peut relire 10, 100 fois sans jamais rien voir

sim2000
Timide
Messages : 65
Inscription : 08 avr. 2018, 23:19

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par sim2000 » 15 avr. 2019, 17:42

Comme quoi, un œil nouveau, ça change tout! ^^

fravetier
Timide
Messages : 73
Inscription : 01 juin 2015, 16:40

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par fravetier » 22 avr. 2019, 11:00

Bravo pour ce temps passé, toutes ces trouvailles et ces partages!

Jiquem
Timide
Messages : 190
Inscription : 13 janv. 2018, 23:18

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par Jiquem » 23 avr. 2019, 17:03

Hello,

Merci pour ce superbe tuto ! Cela fonctionne à merveille chez moi.
A tout hasard, savez vous s'il existe une option pour désactiver l'utilisation de la serpillère ? (Je souhaite l'utiliser dans certaines zones et pas d'autres)

remyg83
Timide
Messages : 102
Inscription : 14 août 2017, 11:11

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par remyg83 » 24 avr. 2019, 16:27

Juste un petit message pour remercier sarakha et patrick pour ce tuto.. Avec alexa sur la freebox delta, c'est nikel!!! (après deux jours de galère pour comprendre le code et surtout comprendre mes erreurs!)
Je n'ai plus qu'à gérer l'histoire du bac plein en fonction de la surface aspirée...d'ailleurs si quelqu'un peut m'aiguiller un peu, car je n'arrive pas à comprendre avec quelle manip on peut avoir le cumul de surface nettoyée dans le virtuel pour declencher un scenario quand on arrive à un total défini!
Vraiment merci pour tout..

maxime079
Timide
Messages : 20
Inscription : 08 mars 2019, 11:38

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par maxime079 » 29 avr. 2019, 10:47

Bonjour,

Moi mon script tourne bien depuis plusieurs semaines, j'ai la chance de pas avoir eu de rotation de cartes pour le moment ...

Je reviens vers vous car j'ai un soucis , je ne peux pas lancer 2 fois à la suite sur la même clean zone .

Par exemple je lance vers cuisine X1 , il revient au dock , je me dis non c'est pas assez propre, donc je relance vers cuisine et il bouge pas .

Par contre si je lui dit cuisine , puis séjour puis cuisine , c'est ok ... je suis le seul?

Merci :)

Lacer
Timide
Messages : 56
Inscription : 24 nov. 2017, 17:59

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par Lacer » 29 avr. 2019, 12:19

Bonjour,
C'est normal, le scénario se déclenche sur un ordre nouveau, c'est pour cela qu'il y a l'ordre $coordonnees['***_null'] dans le scénario et le virtuel. Il ne fait rien mais permet seulement de changer d'ordre.
But : piloter la maison à la voix
Groupe FB "club domotique Lyon" pour infos
Thermostat sur PAC réversible
Google Home et Sonoff, IFTTT, relais electrodragon
Jeedom sur Raspberry Fibaro commandé avec une seule commande IFTTT et interactions

Avatar de l’utilisateur
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?

Message par Theking31 » 29 avr. 2019, 17:12

Patrick a écrit :
14 avr. 2019, 10:50
Dans ton virtuel, au bout de la ligne de la commande Ordre, tu as une roue crantée pour ouvrir la configuration avancée...
Modifie la répétition, en la passant sur "toujours répéter".
Ensuite refait un test et donne le log...
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

Lacer
Timide
Messages : 56
Inscription : 24 nov. 2017, 17:59

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par Lacer » 29 avr. 2019, 18:02

En effet, j'étais en automatique.
Donc en se mettant en "toujours répéter" ce $coordonnees['***_null'] ne sert plus
But : piloter la maison à la voix
Groupe FB "club domotique Lyon" pour infos
Thermostat sur PAC réversible
Google Home et Sonoff, IFTTT, relais electrodragon
Jeedom sur Raspberry Fibaro commandé avec une seule commande IFTTT et interactions

Avatar de l’utilisateur
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?

Message par Theking31 » 29 avr. 2019, 19:36

treker a écrit :
02 avr. 2019, 18:24


Erreur
Tout va bien
Nettoyez la brosse

Statut
En nettoyage
En charge
Nettoyage de Zone
Retour à la base
En pause (erreur ou pause) .
Au repos
Chargeur déconnecté
Je me dirige vers la cible


Ce serait bien de référencer tous ces statuts peut être en 1ere page?
Erreur à rajouter :

-Mes roues ont un soucis
-Ma roue principale est bloquée
-Ou est mon bac à poussière

Et idéalement, il faudrait recenser les erreurs qui régénère la carte, non ?

-Mes roues ont un soucis
-Ma roue principale est bloquée
-Nettoyez la brosse (pas certain)
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

Rvitch
Actif
Messages : 675
Inscription : 21 juin 2016, 10:31

Re: Aspirateur Roborock S50 => définir les zones de la maison?

Message par Rvitch » 03 mai 2019, 14:05

Theking31 a écrit :
treker a écrit :
02 avr. 2019, 18:24


Erreur
Tout va bien
Nettoyez la brosse

Statut
En nettoyage
En charge
Nettoyage de Zone
Retour à la base
En pause (erreur ou pause) .
Au repos
Chargeur déconnecté
Je me dirige vers la cible


Ce serait bien de référencer tous ces statuts peut être en 1ere page?
Erreur à rajouter :

-Mes roues ont un soucis
-Ma roue principale est bloquée
-Ou est mon bac à poussière

Et idéalement, il faudrait recenser les erreurs qui régénère la carte, non ?

-Mes roues ont un soucis
-Ma roue principale est bloquée
-Nettoyez la brosse (pas certain)
Merci, seulement impossible de faire un statut visuel par erreur car ce n'est pas la même info sur statut..
Sur un autre sujet, je crois avoir trouvé comment forcer un changement d'orientation de la carte !
J'ai constaté qu'il suffit de faire un retour a la base manuel en orientant l'aspirateur devant la base avec un angle différent.
Ex : faites un test avec la tourelle laser vers la base puis lancez un nettoyage, et refaites un retour a la base tourelle orientée a l'inverse et lancez un nettoyage ...vous verrez ça tourne .

tapatalké depuis une cabine téléphonique.


Avatar de l’utilisateur
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?

Message par Theking31 » 03 mai 2019, 18:13

Au final je pense que chaque erreur de l'aspi génére le recalcul de la carte !
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

Répondre

Revenir vers « [Plugin Tiers] Xiaomi Home »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités