Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

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

djo074
Timide
Messages : 50
Inscription : 19 janv. 2018, 14:59

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

Message par djo074 » 08 avr. 2019, 22:56

noodom a écrit :
08 avr. 2019, 21:57
Dans ton appel à rotate, entre les 2 paramètres, tu as un point au lieu d'une virgule :

list($xa, $ya) = rotate ($zone[0],$zone[1],$rotation,$centre);
J'avoue, j'avoue c'est super vexant.... On lit, on relit, on re-relit, et au final on passe a coté, et on fait perdre du temps aux autres qui se dévouent pour la communauté. C'était bien ça le problème.

Merci à vous et désolé pour le temps passé.

Djo

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

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

Message par noodom » 08 avr. 2019, 23:12

J'ai eu le droit aussi à mes quelques fautes de frappe moi aussi avant que ça fonctionne ;)
Maintenant, tu vas enfin pouvoir jouer avec les zones, c'est le principal 8-)

J'en profite d'ailleurs pour remercier Patrick qui a fait un script énorme !
Je m'étais fait à l'idée de ne pas pouvoir gérer des zones avec mon V1.

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

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

Message par Patrick » 09 avr. 2019, 08:47

noodom a écrit :
08 avr. 2019, 23:12
J'ai eu le droit aussi à mes quelques fautes de frappe moi aussi avant que ça fonctionne ;)
Maintenant, tu vas enfin pouvoir jouer avec les zones, c'est le principal 8-)
Bravo noodom !
je l'avais raté celle là ! :lol:
noodom a écrit :
08 avr. 2019, 23:12
J'en profite d'ailleurs pour remercier Patrick qui a fait un script énorme !
Je m'étais fait à l'idée de ne pas pouvoir gérer des zones avec mon V1.
Merci ;-)
ßê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

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

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

Message par maxime079 » 09 avr. 2019, 22:11

Patrick a écrit :
03 avr. 2019, 23:45
maxime079 a écrit :
03 avr. 2019, 21:33
pas mieux après ... :P

Bonne nouvelle , j'ai relu le script et effectivement j'avais fait des erreurs de saisies ( pas bon de faire du code dans le noir sans lunette ^^ ) .
Je vais donc ensuite faire des combinaison de zones :)

Petite question : je suis avec le V1 , donc pas de zones interdites ni murs virtuels . Ma question est possible d'avoir un script qui simule la commande mur virtuelle ou zone interdite ? Ou bien , je dois la jouer à l'inverse en faisant mon découpage de zones en contourant ces zones interdites ?

Malheureusement non, ce n'est pas possible...
Ta logique d'éviter les zones interdites est la bonne stratégie...
Tu peux faire des zones complexes en prenant pour exemple la zone "couloir" de mon tuto... ;-)

Ps : je t'ai fait une petite dotation paypal de 50 € pour le travail et t'encourager pour les prochains tuto/plugin ... :)
Merci Maxime ! :D :D :D
très sympa ;-)
De rien , c'est normal . J'ai finalisé mes zones et pour le moment tout marche , je n'ai pas encore eu de rotation de carte pour le moment :)
J'essaye de mettre à jour IFTTT avec mes nouvelles commandes quand le dns de jeedom marchera...

JPLP
Timide
Messages : 207
Inscription : 22 nov. 2017, 13:28

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

Message par JPLP » 10 avr. 2019, 20:40

maxime079 a écrit :
09 avr. 2019, 22:11
De rien , c'est normal . J'ai finalisé mes zones et pour le moment tout marche , je n'ai pas encore eu de rotation de carte pour le moment :)
Patrick : Ne penses-tu pas que de mettre la rotation à 360 au lieu de 0 au début, permettrait de régler les coordonnées du centre avant que la carte ne tourne ?

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

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

Message par Patrick » 10 avr. 2019, 22:30

Oui, mais dans ce cas, toutes les coordonnées seront systématiquement recalculées, alors que c'est inutile...
ßê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

JPLP
Timide
Messages : 207
Inscription : 22 nov. 2017, 13:28

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

Message par JPLP » 11 avr. 2019, 09:06

J'en suis bien conscient.

Mais l'idée serait de configurer le script (enfin surtout le virtuel) une bonne fois pour toute.
Quand j'ai mis en place ton système, et comme tu sais, j'ai mis beauuuuucoup de temps ... et une fois terminé je croyais que c'était fini.... Jusqu'à la première rotation, où là, je me suis aperçu que mes coordonnées de centre n'étaient pas bons. Il a donc fallut retravailler le sujet, Et pas forcement le jour qui m'arrangeait. Ba oui... quand tu dis à ta femme que tout fonctionne, et que finalement, il faut remettre le nez dans le moteur ... c'est pas très WAF :oops: Donc faut réparer rapidement ;-)

Donc, je me disais que si à la fin de la procédure, tu invitais les utilisateurs à passer la rotation à 360 pour régler le centre, quitte à repasser à 0 une fois réglé, ça pouvait peut-être, être une bonne idée ? Mais je ne sais pas si ça marche ...?

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

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

Message par Patrick » 11 avr. 2019, 09:37

JPLP a écrit :
11 avr. 2019, 09:06
(...)
Donc, je me disais que si à la fin de la procédure, tu invitais les utilisateurs à passer la rotation à 360 pour régler le centre, quitte à repasser à 0 une fois réglé, ça pouvait peut-être, être une bonne idée ?
Si tu indiques 360° alors la routine va calculer les rotations en prenant compte des centres (X/Y). du coup si tes centres ne sont pas bon, tu vas tout de suite voir un décalage. Par contre, pour le faire, il faut que tu modifies la commande rotation_map du virtuel pour changer ses bornes (actuellement 0 à 359)...
JPLP a écrit :
11 avr. 2019, 09:06
Mais je ne sais pas si ça marche ...?
Ben j'ai envie de dire essaie !!! :lol: :D ;)
Tu ne risques rien à essayer... :P
ßê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

JPLP
Timide
Messages : 207
Inscription : 22 nov. 2017, 13:28

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

Message par JPLP » 11 avr. 2019, 10:58

J'peux pas, ma carte est à 180 degrés actuellement :lol:

Je disais ça pour les autres 😊

Avatar de l’utilisateur
HerveL
Timide
Messages : 478
Inscription : 11 sept. 2015, 22:46
Localisation : Nantes

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

Message par HerveL » 11 avr. 2019, 20:06

Salut,
Juste une idée idiote.
Si avant de lancer un nettoyage de zone, on demande au robot de faire un petit tour, disons 30 secondes, et puis retour à la base ... ça ne permettrait pas de s'assurer d'avoir une carte toujours dans le bon sens ? car il me semble qu'il revient tout seul dans le bon sens après une utilisation, non ?
Hervé
Utilisateur Mini+ et SMART passionné
Zwave, IPX800V3, IPX800V4, Rfxcom, RFP1000

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

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

Message par Patrick » 11 avr. 2019, 20:43

Non, pas toujours.
en fait cela dépend beaucoup de l'emplacement de la base. C'est pourquoi chez certains les problèmes de rotation sont fréquents alors que d'autres n'ont pratiquement jamais ce problème...
si par exemple la base est dans un angle de la pièce, ou mieux, au fond d'un couloir étroit, les rotations sont plus rares...
Il semblerait que le robot se base sur le mur le plus long comme repère...
ßê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 » 12 avr. 2019, 10:27

Bonjour,

J'ai beau lire et relire, je bloque . Mon aspi démarrait pour faire 2cm et revenir à la base.
En cherchant et corrigeant ,via le log, maintenant il fait plus rien :(

Code : Tout sélectionner

// SCRIPT DE CONTOURNEMENT DES PROBLEMES DE ROTATIONS DE CARTES
// définition des zones (CleanZone) et des positions sur la carte (GoThere) : 
$coordonnees = array() ;
$coordonnees['Chintawa_CUISINE'][] = "23230,27400,27580,30400,1";
//Des coordonéees GoThere : 
$coordonnees['Chintawa_POUBELLE'][] ="23230,27400";
/* NE PAS MODIFIER 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("#[Hardware][ACTIONS Chintawa][rotation_map]#");
$rotation = $cmd->execCmd();
// centre x de la carte :
$cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][centre_x]#");
$centre_x = $cmd->execCmd();
// centre y de la carte :
$cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][centre_y]#");
$centre_y = $cmd->execCmd();
$centre = array($centre_x,$centre_y); //centre X,Yde la carte (25000,25000)

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;
      }
      scoord[4]=$zone[4];
      $zonedef[]='['.implode(',',$coord).']';
    }
    else{ //GoThere
      $zonedef[] = $xa ."," . $ya;
    }
  }
  return implode(',',$zonedef);
}
 
$cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][Ordre]#");
$cmd->event($newpos);

// FIN DU SCRIPT
Si ca parle a quelqu'un , merci

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

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

Message par Patrick » 12 avr. 2019, 10:35

normal, tu as tronqué le script !
tu n'as plus d'appel à la fonction generer() !!!
;-)
ßê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 » 12 avr. 2019, 11:17

Effectivement, j'ai un peu trop nettoyé le code.
Je viens de rajouter les lignes, et pas mieux, le scénario mouline et m'affiche erreur .
Le log me dit :
[2019-04-12 11:12:09][SCENARIO] Start : Scenario lance manuellement.
[2019-04-12 11:12:09][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-04-12 11:12:09][SCENARIO] Exécution d'un bloc code

Puis errreur.

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

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

Message par noodom » 12 avr. 2019, 11:42

morillaz a écrit :
12 avr. 2019, 11:17
Effectivement, j'ai un peu trop nettoyé le code.
Je viens de rajouter les lignes, et pas mieux, le scénario mouline et m'affiche erreur .
Le log me dit :
[2019-04-12 11:12:09][SCENARIO] Start : Scenario lance manuellement.
[2019-04-12 11:12:09][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-04-12 11:12:09][SCENARIO] Exécution d'un bloc code

Puis errreur.
Salut,

tu as la ligne :

scoord[4]=$zone[4];

au lieu de :

$coord[4]=$zone[4];

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

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

Message par morillaz » 12 avr. 2019, 12:15

bien vu,

Tant que j'y suis :)
------------------------------------
[2019-04-12 12:12:03][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Hardware][ACTIONS Chintawa][Ordre].
[2019-04-12 12:12:03][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-04-12 12:12:03][SCENARIO] Exécution d'un bloc code
[2019-04-12 12:12:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-12 12:12:03][SCENARIO] Evaluation de la condition : [23150,27480 == "Chintawa_CUISINE"] = 23150,27480 == "Chintawa_CUISINE"
[2019-04-12 12:12:03][SCENARIO] Expression non valide : 23150,27480 == "Chintawa_CUISINE"
[2019-04-12 12:12:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-12 12:12:03][SCENARIO] Evaluation de la condition : [23150,27480 == "Chintawa_POUBELLE"] = 23150,27480 == "Chintawa_POUBELLE"
[2019-04-12 12:12:03][SCENARIO] Expression non valide : 23150,27480 == "Chintawa_POUBELLE"
[2019-04-12 12:12:04][SCENARIO] Fin correcte du scénario
------------------------------------

Comprend pas pq.
il faut une vue de carte complète pour le lancer dans des zones ?

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

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

Message par noodom » 12 avr. 2019, 12:27

morillaz a écrit :
12 avr. 2019, 12:15
bien vu,

Tant que j'y suis :)
------------------------------------
[2019-04-12 12:12:03][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Hardware][ACTIONS Chintawa][Ordre].
[2019-04-12 12:12:03][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-04-12 12:12:03][SCENARIO] Exécution d'un bloc code
[2019-04-12 12:12:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-12 12:12:03][SCENARIO] Evaluation de la condition : [23150,27480 == "Chintawa_CUISINE"] = 23150,27480 == "Chintawa_CUISINE"
[2019-04-12 12:12:03][SCENARIO] Expression non valide : 23150,27480 == "Chintawa_CUISINE"
[2019-04-12 12:12:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-12 12:12:03][SCENARIO] Evaluation de la condition : [23150,27480 == "Chintawa_POUBELLE"] = 23150,27480 == "Chintawa_POUBELLE"
[2019-04-12 12:12:03][SCENARIO] Expression non valide : 23150,27480 == "Chintawa_POUBELLE"
[2019-04-12 12:12:04][SCENARIO] Fin correcte du scénario
------------------------------------

Comprend pas pq.
il faut une vue de carte complète pour le lancer dans des zones ?
Ah oui, il faut les coordonnées (x,y) en bas à gauche et celles en haut à droite pour définir le carré de ta zone.
Là, tu n'as défini que celles du bas, il ne pourra pas définir la surface de ta zone à parcourir.

EDIT : J'ai lu un peu vite, je n'avais pas remarqué que tu donnais des coordonnées pour un déplacement. Donc ça semble OK. Un autre problème du coup..

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

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

Message par morillaz » 12 avr. 2019, 12:37

pourtant je l'ai bien mis au début du code les adresses :
$coordonnees['Chintawa_CUISINE'][] = "23230,27400,27580,30400,1";
$coordonnees['Chintawa_POUBELLE'][] ="23230,27400"

Quand je lance l'ordre zone cuisine , j'ai ca
Evaluation de la condition : [[23150,27400,27500,30400,1] == "Chintawa_CUISINE"] = Faux
....
Evaluation de la condition : [[23150,27400,27500,30400,1] == "Chintawa_POUBELLE"] = Faux

et quand je lance l'ordre spot poubelle j'ai ca :

Evaluation de la condition : [23150,27480 == "Chintawa_CUISINE"] = 23150,27480 == "Chintawa_CUISINE"
Expression non valide : 23150,27480 == "Chintawa_CUISINE"
Exécution du sous-élément de type [condition] : if
Evaluation de la condition : [23150,27480 == "Chintawa_POUBELLE"] = 23150,27480 == "Chintawa_POUBELLE"
Expression non valide : 23150,27480 == "Chintawa_POUBELLE"

Je precise que rotation map , x et y me donne 0 .

Je dois regarder dans le code ?

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

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

Message par noodom » 12 avr. 2019, 12:44

Tu fais bien un #[Cuisine][aspi robot][GoThere]# et pas un #[Cuisine][aspi robot][CleanZone]# pour ces coordonnées ?

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

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

Message par morillaz » 12 avr. 2019, 13:07

J'ai un Cleanzone pour zone cuisnine et un Gothere pour spot poubelle.

C'est frustrant, je suis sur que je passe 50 fois devant l'erreur sans la voir.

Répondre

Revenir vers « [Plugin Tiers] Xiaomi Home »

Qui est en ligne ?

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