Aspirateur Roborock S50 => définir les zones de la maison?
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Elles sortent d'où les coordonnées [23150,27400,27500,30400,1] dans les logs ?
Ce n'est pas toi qui les as saisis dans le code ou dans un scénario ?
EDIT : essaie en enlevant ces lignes !
//ajustement facultatif du centre par défaut en cas de léger déplacement de la base :
$x = $x - 80;
$y = $y + 80;
Ce n'est pas toi qui les as saisis dans le code ou dans un scénario ?
EDIT : essaie en enlevant ces lignes !
//ajustement facultatif du centre par défaut en cas de léger déplacement de la base :
$x = $x - 80;
$y = $y + 80;
Re: Aspirateur Roborock S50 => définir les zones de la maison?
oui c'est dans le Log.
Quand j'enlève les lignes je retrouve les memes message mais cette fois avec les bonnes coordonnées.
Toujours pas de mouvement de l'aspi.
Je suppose que dans le log je devrais avoir :
Evaluation de la condition : [(adress,1] == "mon ordre"] = vrai ? la ou pour le moment je n'ai que Faux
Quand j'enlève les lignes je retrouve les memes message mais cette fois avec les bonnes coordonnées.
Toujours pas de mouvement de l'aspi.
Je suppose que dans le log je devrais avoir :
Evaluation de la condition : [(adress,1] == "mon ordre"] = vrai ? la ou pour le moment je n'ai que Faux
Aspirateur Roborock S50 => définir les zones de la maison?
Ajoute des lignes de logs pour tracer le problème :
$scenario->setLog('mon log de passage');
Avec des valeurs de variables :
$scenario->setLog('ma variable x : '.$x);
Et renvoie ton code complet avec ta dernière correction.
$scenario->setLog('mon log de passage');
Avec des valeurs de variables :
$scenario->setLog('ma variable x : '.$x);
Et renvoie ton code complet avec ta dernière correction.
Dernière édition par noodom le 12 avr. 2019, 13:52, édité 1 fois.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Bonjour,
Normalement centre_x et centre_y c'est 25000 et 25000.
Et pour les commandes virtuelles j'ai mis rotation_map min=-180 et max=+180. Et pour centre_x et centre_y min=24000 et max=26000 comme ça, avec le curseurs je peux ajuster comme je veux rotation, x et y, si je ne fais rien j'ai 0,25000 et 25000 . mais je n'en ai pas besoin ma carte ne tourne pas.
Si ça peut aider
Normalement centre_x et centre_y c'est 25000 et 25000.
Et pour les commandes virtuelles j'ai mis rotation_map min=-180 et max=+180. Et pour centre_x et centre_y min=24000 et max=26000 comme ça, avec le curseurs je peux ajuster comme je veux rotation, x et y, si je ne fais rien j'ai 0,25000 et 25000 . mais je n'en ai pas besoin ma carte ne tourne pas.
Si ça peut aider
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
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
-
- Timide
- Messages : 119
- Inscription : 19 août 2014, 13:33
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Bonjour,
Excusez ma question qui n'est pas en lien direct mais je regarde avec attention les aspi robots, celui de Roborock me semble un bon rapport qualité prix.
Ma question : Comment gère t on les pièces à l'étage ?
les plans vont se superposer ?
Merci
et bon WE
Roland
Excusez ma question qui n'est pas en lien direct mais je regarde avec attention les aspi robots, celui de Roborock me semble un bon rapport qualité prix.
Ma question : Comment gère t on les pièces à l'étage ?
les plans vont se superposer ?
Merci
et bon WE
Roland
Re: Aspirateur Roborock S50 => définir les zones de la maison?
A morillaz,
tu ne devrais pas avoir de condition comme celle çi :
Evaluation de la condition : [23150,27480 == "Chintawa_CUISINE"] = 23150,27480 == "Chintawa_CUISINE"
Expression non valide : 23150,27480 == "Chintawa_CUISINE"
Mais plutôt ce genre là :
[2019-04-12 09:55:34][SCENARIO] Evaluation de la condition : ["Max_degagement" == "Max_degagement"] = Vrai
[2019-04-12 09:55:34][SCENARIO] Exécution du sous-élément de type [action] : then
Tu as les coordonnées au lieu d'avoir l'ordre.
je pense qu'il y une erreur dans ton scénario au niveau du "SI", tu devrais avoir qcq de ce genre #[maison][virtuel][ordre]# == "Chintawa_CUISINE" ou erreur dans le virtuel où tu dois avoir des commandes virtuelles avec dans la colonne "valeur" "ordre" (dans le champ "Nom Information") et dans "valeur" les pièces de la maison et dans ce cas "Chintawa_CUISINE". ATTENTION respecter les minuscules/majuscules.
Une copie d'écran pour être plus clair :
tu ne devrais pas avoir de condition comme celle çi :
Evaluation de la condition : [23150,27480 == "Chintawa_CUISINE"] = 23150,27480 == "Chintawa_CUISINE"
Expression non valide : 23150,27480 == "Chintawa_CUISINE"
Mais plutôt ce genre là :
[2019-04-12 09:55:34][SCENARIO] Evaluation de la condition : ["Max_degagement" == "Max_degagement"] = Vrai
[2019-04-12 09:55:34][SCENARIO] Exécution du sous-élément de type [action] : then
Tu as les coordonnées au lieu d'avoir l'ordre.
je pense qu'il y une erreur dans ton scénario au niveau du "SI", tu devrais avoir qcq de ce genre #[maison][virtuel][ordre]# == "Chintawa_CUISINE" ou erreur dans le virtuel où tu dois avoir des commandes virtuelles avec dans la colonne "valeur" "ordre" (dans le champ "Nom Information") et dans "valeur" les pièces de la maison et dans ce cas "Chintawa_CUISINE". ATTENTION respecter les minuscules/majuscules.
Une copie d'écran pour être plus clair :
- Pièces jointes
-
- Sans titre-2.jpg (71.87 Kio) Consulté 1135 fois
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
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
Re: Aspirateur Roborock S50 => définir les zones de la maison?
J'ai pourtant l'impression que c'est bon .
- Pièces jointes
-
- Capture d’écran 2019-04-12 à 18.09.08.png (71.86 Kio) Consulté 1123 fois
-
- Capture d’écran 2019-04-12 à 18.09.40.png (110.8 Kio) Consulté 1123 fois
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Je t'avoue que je capte pas grand chose au code.
Donc si il faut , en voulant réparer j'aggrave.
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_NULL'][] = "";
$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 :
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);
}
$cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][Ordre]#");
$job = $cmd->execCmd(); //contient le nom de la zone ou position demandée (tel que défii 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 soiet expploitables hors de notre bloc de code)
$cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][Ordre]#");
$cmd->event($newpos);
Re: Aspirateur Roborock S50 => définir les zones de la maison?
En effet ça semble correct.
Si tu veux essayer mon script qui fonctionne. Tu remplaces bien sûr [maison] et [virtual roborock] et je n'ai pas mis les coordonnées qui ne marcheront sûrement pas chez toi. Et regarde ce que j'ai dit avant pour les min et max de rotate_map, centre_x et centre_y
Si tu veux essayer mon script qui fonctionne. Tu remplaces bien sûr [maison] et [virtual roborock] et je n'ai pas mis les coordonnées qui ne marcheront sûrement pas chez toi. Et regarde ce que j'ai dit avant pour les min et max de rotate_map, centre_x et centre_y
Code : Tout sélectionner
// 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("#[Maison][Virtuel Roborock][rotation_map]#");
$rotation = $cmd->execCmd();
// centre X de la carte :
$cmd = cmd::byString("#[Maison][Virtuel Roborock][centre_x]#");
$centre_x = $cmd->execCmd();
// centre Y de la carte :
$cmd = cmd::byString("#[Maison][Virtuel Roborock][centre_y]#");
$centre_y = $cmd->execCmd();
$centre = array($centre_x,$centre_y); // centre X, Y de 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 )
{ // Clean zone
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);
}
$cmd = cmd::bystring("#[Maison][Virtuel Roborock][Ordre]#");
$job = $cmd->execCmd(); // contient 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 de code)
$cmd = cmd::byString("#[Maison][Virtuel Roborock][coordonnees]#");
$cmd->event($newpos);
// FIN DU SCRIPT
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
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
Re: Aspirateur Roborock S50 => définir les zones de la maison?
je tourne en rond.
j'ai réutiliser ton code et mis a jour les adresses, il démarre et stope dessuite.
j'ai réutiliser ton code et mis a jour les adresses, il démarre et stope dessuite.
- Pièces jointes
-
- Capture d’écran 2019-04-13 à 09.12.07.png (137.4 Kio) Consulté 1095 fois
Re: Aspirateur Roborock S50 => définir les zones de la maison?
La condition n'est toujours pas bonne, tu as 0 au lieu d'avoir l'ordre. Comme je suis sûr que mon script est bon puisqu'il fonctionne, regarde ton virtuel et les conditions du scènario.
Peux tu faire des copies d'écran des commandes du virtuel et les conditions du scènario
Peux tu faire des copies d'écran des commandes du virtuel et les conditions du scènario
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
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
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Les voila.
J'ai supprimé le virtu gothere pensant que ca posait problème. mais non
A centre x et Y j'ai 0 . c'est normal ?
J'ai supprimé le virtu gothere pensant que ca posait problème. mais non
A centre x et Y j'ai 0 . c'est normal ?
- Pièces jointes
-
- Capture d’écran 2019-04-13 à 10.28.16.png (81.72 Kio) Consulté 1083 fois
-
- Capture d’écran 2019-04-13 à 10.29.15.png (244.74 Kio) Consulté 1083 fois
-
- Capture d’écran 2019-04-13 à 10.29.29.png (193.07 Kio) Consulté 1083 fois
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Ton problème c'est que tu ne renvoie pas les coordonnées au bon endroit à la fin du script !
Faux :
Tu envoies dans la commande ORDRE alors que tu devrais renvoyer le résultat dans COORDONNEES !
Faux :
Code : Tout sélectionner
// et on sauve ces coordonnées dans notre virtuel (pour qu'ils soiet expploitables hors de notre bloc de code)
$cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][Ordre]#"); $cmd->event($newpos);
ßê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
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
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Cette partie est corrigée depuis. J'ai repris le code de Lacer.Patrick a écrit : ↑13 avr. 2019, 10:37Ton problème c'est que tu ne renvoie pas les coordonnées au bon endroit à la fin du script !
Faux :Tu envoies dans la commande ORDRE alors que tu devrais renvoyer le résultat dans COORDONNEES !Code : Tout sélectionner
// et on sauve ces coordonnées dans notre virtuel (pour qu'ils soiet expploitables hors de notre bloc de code) $cmd = cmd::byString("#[Hardware][ACTIONS Chintawa][Ordre]#"); $cmd->event($newpos);
Et recrée le virtuel , capture au dessus.
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Tes min et max ne sont pas au bon endroit et c'est ça que tu remontes, tu les as mis dans les infos alors que c'est dans les commandes virtuelles.
Dans la capture 10.29.29.png
Et mets centre x et centre y à curseur dans l'action, comme rotation map. Et quand tu affiches le virtuel, mets les valeurs à 0, 25000, 25000 approximativement avec la souris et tu ajustes avec les flèches du clavier
Dans la capture 10.29.29.png
Et mets centre x et centre y à curseur dans l'action, comme rotation map. Et quand tu affiches le virtuel, mets les valeurs à 0, 25000, 25000 approximativement avec la souris et tu ajustes avec les flèches du clavier
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
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
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Modif OK, resultat NOK .
Démarre, fait 2 cm et retour dock.
log :
[2019-04-13 15:24:20][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-13 15:24:20][SCENARIO] Evaluation de la condition : [0 == "aspirateur_CUISINE"] = Vrai
[2019-04-13 15:24:20][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-04-13 15:24:20][SCENARIO] Exécution de la commande [Hardware][Chintawa][CleanZone] avec comme option(s) : {"background":"0","title":"","message":"0"}
[2019-04-13 15:24:20][SCENARIO] Fin correcte du scénario
------------------------------------
c'est quoi ce "background - title - message ' ?
Mes coordonnées sont correctes ?
$coordonnees['aspirateur_CUISINE'][] = "23230,27400,27580,30400,1";
Démarre, fait 2 cm et retour dock.
log :
[2019-04-13 15:24:20][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-04-13 15:24:20][SCENARIO] Evaluation de la condition : [0 == "aspirateur_CUISINE"] = Vrai
[2019-04-13 15:24:20][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-04-13 15:24:20][SCENARIO] Exécution de la commande [Hardware][Chintawa][CleanZone] avec comme option(s) : {"background":"0","title":"","message":"0"}
[2019-04-13 15:24:20][SCENARIO] Fin correcte du scénario
------------------------------------
c'est quoi ce "background - title - message ' ?
Mes coordonnées sont correctes ?
$coordonnees['aspirateur_CUISINE'][] = "23230,27400,27580,30400,1";
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Bon, t'as fait tellement de modifs dans tous les sens sans savoir ce que tu fais qu'on ne sait plus ou tu en es !
Repose la totalité de ton code ainsi que les screens de tout les éléments de ton virtuel.
Et vide et refait un nouveau log avec deux lancement de ton scénario (et pas un lancement manuel mais bien un lancement à partir d'un clic sur le virtuel !).
et on pourra peut-être t'aider...
Repose la totalité de ton code ainsi que les screens de tout les éléments de ton virtuel.
Et vide et refait un nouveau log avec deux lancement de ton scénario (et pas un lancement manuel mais bien un lancement à partir d'un clic sur le virtuel !).
et on pourra peut-être t'aider...
ßê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
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
Re: Aspirateur Roborock S50 => définir les zones de la maison?
OUai dsl je reconnais je suis assez bordélique, merci pour votre patience.
alors le code :
Et le virtuel
alors le code :
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_NULL'][] = "";
$coordonnees['aspirateur_CUISINE'][] = "23230,27400,27580,30400,1";
//Des coordonéees GoThere :
$coordonnees['aspirateur_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][Virtuel aspirateur][rotation_map]#");
$rotation = $cmd->execCmd();
// centre X de la carte :
$cmd = cmd::byString("#[Hardware][Virtuel aspirateur][centre_x]#");
$centre_x = $cmd->execCmd();
// centre Y de la carte :
$cmd = cmd::byString("#[Hardware][Virtuel aspirateur][centre_y]#");
$centre_y = $cmd->execCmd();
$centre = array($centre_x,$centre_y); // centre X, Y de 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 )
{ // Clean zone
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);
}
$cmd = cmd::bystring("#[Hardware][Virtuel aspirateur][Ordre]#");
$job = $cmd->execCmd(); // contient 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 de code)
$cmd = cmd::byString("#[Hardware][Virtuel aspirateur][coordonnees]#");
$cmd->event($newpos);
// FIN DU SCRIPT
- Pièces jointes
-
- Capture d’écran 2019-04-13 à 20.24.38.png (242.03 Kio) Consulté 1026 fois
-
- Capture d’écran 2019-04-13 à 20.25.38.png (212.98 Kio) Consulté 1026 fois
-
- Capture d’écran 2019-04-13 à 20.26.35.png (34.57 Kio) Consulté 1026 fois
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Impossible de lancer via le virtuel.
Je suis obligé de lancer l'ordre , puis d'executer le scénario a chaque fois.
Je suis obligé de lancer l'ordre , puis d'executer le scénario a chaque fois.
- Pièces jointes
-
- Capture d’écran 2019-04-13 à 20.29.19.png (66.45 Kio) Consulté 1024 fois
-
- Capture d’écran 2019-04-13 à 20.29.36.png (291.84 Kio) Consulté 1024 fois
Re: Aspirateur Roborock S50 => définir les zones de la maison?
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 !!!
Surtout, ne change rien d'autre pour le moment, que je puisses savoir ou tu en es si jamais cela ne fonctionnait toujours pas...
ßê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
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
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 18 invités