Aspirateur Roborock S50 => définir les zones de la maison?
-
- Timide
- Messages : 49
- Inscription : 20 mai 2017, 14:15
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Bonsoir à tous,
Tout d'abord un grand merci à Patrick, Sarakah et toutes les personnes qui ont produit et contribué au concept, c'est fabuleux
Je suis sur la dernière version de Jeedom V4.
J'ai implémenté le tout, j'ai pour le moment une question très basique, mon virtuel ne semble pas mémoriser les valeurs rotation (0), centre_x (25000), centre_y (25000) lorsque je les modifie sur mon widget. Pourtant lorsque j'active l'historisation, je vois bien mes valeurs historisées.
Ai-je loupé quelque chose ou mal compris une brique de la solution ?
Voici mon widget et mon virtuel.
Un grand merci pour votre aide
Tout d'abord un grand merci à Patrick, Sarakah et toutes les personnes qui ont produit et contribué au concept, c'est fabuleux
Je suis sur la dernière version de Jeedom V4.
J'ai implémenté le tout, j'ai pour le moment une question très basique, mon virtuel ne semble pas mémoriser les valeurs rotation (0), centre_x (25000), centre_y (25000) lorsque je les modifie sur mon widget. Pourtant lorsque j'active l'historisation, je vois bien mes valeurs historisées.
Ai-je loupé quelque chose ou mal compris une brique de la solution ?
Voici mon widget et mon virtuel.
Un grand merci pour votre aide
Manu
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Salut Manu,
je ne comprends pas bien pourquoi tu as plusieurs fois centre X et Y sur ton virtuel ?
je ne comprends pas bien pourquoi tu as plusieurs fois centre X et Y sur ton virtuel ?
ßê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
-
- Timide
- Messages : 49
- Inscription : 20 mai 2017, 14:15
Re: Aspirateur Roborock S50 => définir les zones de la maison?
J'ai les infos pour le stockage des valeurs ici
Et les actions pour changer les valeurs des infos C'est la première fois que je mets en oeuvre le plugin virtuel et ma version a plus de zones de paramétrage que sur les screenshots du tuto...alors j'ai improvisé.
En attendant de régler la partie Virtuel, j'ai fixé les variables dans le code.
Mon aspirateur indique bien qu'il va effectuer un nettoyage par zone cependant ne va pas là où il doit aller. Il aurait du nettoyer la chambre principale (zone en vert) mais s'acharne sur la 2e chambre au dessus là où il y a la base.
Je dois louper quelque chose...
Merci pour ton aide c'est très sympa.
Et les actions pour changer les valeurs des infos C'est la première fois que je mets en oeuvre le plugin virtuel et ma version a plus de zones de paramétrage que sur les screenshots du tuto...alors j'ai improvisé.
En attendant de régler la partie Virtuel, j'ai fixé les variables dans le code.
Mon aspirateur indique bien qu'il va effectuer un nettoyage par zone cependant ne va pas là où il doit aller. Il aurait du nettoyer la chambre principale (zone en vert) mais s'acharne sur la 2e chambre au dessus là où il y a la base.
Code : Tout sélectionner
// Coordonnées des pièces
$coordonnees['ASPICHOU_ENTREE'][] = "29758,22875,33058,24475,1";
$coordonnees['ASPICHOU_CUISINE'][] = "30454,19638,32054,22788,1";
$coordonnees['ASPICHOU_SALON'][] = "24346,17925,30496,21875,1";
$coordonnees['ASPICHOU_CHAMBRE1'][] = "24523,21989,27723,25039,1";
$coordonnees['ASPICHOU_CHAMBRE2'][] = "24342,24976,28492,27926,1";
$coordonnees['ASPICHOU_SDB'][] = "29773,25425,31373,27075,1";
$coordonnees['ASPICHOU_WC'][] = "29623,24538,31573,25488,1";
$coordonnees['ASPICHOU_COULOIR'][] = "28430,23450,29730,26450,1";
$coordonnees['ASPICHOU_PLACARDPC'][] = "27840,20875,30990,22875,1";
// Coordonnées Go There
$coordonnees['ASPICHOU_POUBELLE'][] ="17100,28900";
// Zones regroupement plusieurs autres zones :
/* 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("#[Appartement][V_Aspichou][Rotation_map]#");
$rotation = 0;//$cmd->execCmd();
// centre X de la carte :
$cmd = cmd::byString("#[Appartement][V_Aspichou][centre_x]#");
$centre_x = 25000;//$cmd->execCmd();
// centre Y de la carte :
$cmd = cmd::byString("#[Appartement][V_Aspichou][centre_y]#");
$centre_y = 25000;//$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)
{ // 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("#[Appartement][V_Aspichou][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("#[Appartement][V_Aspichou][coordonnees]#");
$cmd->event($newpos);
// FIN DU SCRIPT
Merci pour ton aide c'est très sympa.
Manu
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Je pense que ton problème doit pouvoir se résoudre en modifiant les paramètres de la commande info "ordre" :
Ajoute l'option "Toujours répéter" ... EDIT :
En relisant ton message avec un peu plus d'attention (c'est mieux en lisant sur le PC), je crois que ton problème vient du fait qu'il ne trouve pas comment aller dans la pièce du dessous...
Cela arrive parfois quand il a mémorisé une porte qui a été temporairement fermée par exemple...
Pour résoudre le problème, déplace manuellement le robot (avec l'appli FloleVac par exemple) pour l’amener devant l'entrée de cette pièce...
Ensuite, il devrait de nouveau être capable de retrouver son chemin tout seul...
Tu peux aussi lui faire faire un tour afin qu'il retrouve les chemin des différents accès de tes zones...
Ajoute l'option "Toujours répéter" ... EDIT :
En relisant ton message avec un peu plus d'attention (c'est mieux en lisant sur le PC), je crois que ton problème vient du fait qu'il ne trouve pas comment aller dans la pièce du dessous...
Cela arrive parfois quand il a mémorisé une porte qui a été temporairement fermée par exemple...
Pour résoudre le problème, déplace manuellement le robot (avec l'appli FloleVac par exemple) pour l’amener devant l'entrée de cette pièce...
Ensuite, il devrait de nouveau être capable de retrouver son chemin tout seul...
Tu peux aussi lui faire faire un tour afin qu'il retrouve les chemin des différents accès de tes zones...
ßê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
-
- Timide
- Messages : 49
- Inscription : 20 mai 2017, 14:15
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Merci beaucoup Patrick, je vais tenter de lui refaire repérer les lieux.
En lisant les différents échanges sur le topic, j'avais déjà activé l'option "Toujours répéter" sur la commande info "ordre".
Concernant mon virtuel et le widget pour l'affectation des valeurs à rotation centre_x et centre_y, as-tu une idée ? C'est plus pour ma culture
EDIT: Voici les logs d'exécution de mon scénario pour un nettoyage zone puis un GoThere, ont-ils une bonne tête ?
Et le log pour un GoThere qui ne déclenche aucune réaction de l'aspirateur par ailleurs.
En lisant les différents échanges sur le topic, j'avais déjà activé l'option "Toujours répéter" sur la commande info "ordre".
Concernant mon virtuel et le widget pour l'affectation des valeurs à rotation centre_x et centre_y, as-tu une idée ? C'est plus pour ma culture
EDIT: Voici les logs d'exécution de mon scénario pour un nettoyage zone puis un GoThere, ont-ils une bonne tête ?
Code : Tout sélectionner
[2019-12-29 11:09:29][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Appartement][V_Aspichou][ordre].
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-12-29 11:09:29][SCENARIO] Exécution d'un bloc code
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_COULOIR' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_WC' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_SDB' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_CUISINE' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_SALON' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_PLACARDPC' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_ENTREE' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[color=#FF0000][b][2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_CHAMBRE1' ] = Vrai
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-12-29 11:09:29][SCENARIO] Exécution de la commande [Appartement][Aspichou][CleanZone] avec comme option(s) : {"background":"0","title":"","message":"0"}[/b][/color]
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_CHAMBRE2' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 11:09:29][SCENARIO] Evaluation de la condition : ["ASPICHOU_CHAMBRE1" == 'ASPICHOU_POUBELLE' ] = Faux
[2019-12-29 11:09:29][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 11:09:29][SCENARIO] Fin correcte du scénario
Code : Tout sélectionner
[2019-12-29 23:05:55][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Appartement][V_Aspichou][ordre].
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-12-29 23:05:55][SCENARIO] Exécution d'un bloc code
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_COULOIR' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_WC' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_SDB' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_CUISINE' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_SALON' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_PLACARDPC' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_ENTREE' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_CHAMBRE1' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_CHAMBRE2' ] = Faux
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2019-12-29 23:05:55][SCENARIO] Evaluation de la condition : ["ASPICHOU_POUBELLE" == 'ASPICHOU_POUBELLE' ] = Vrai
[2019-12-29 23:05:55][SCENARIO] Exécution du sous-élément de type [action] : then
[2019-12-29 23:05:55][SCENARIO] [color=#FF0000]Exécution de la commande [Appartement][Aspichou][GoThere] avec comme option(s) : {"background":"0","title":"","message":"17100.289"}[/color]
[2019-12-29 23:05:55][SCENARIO] Fin correcte du scénario
Manu
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Tu as un bug apparemment dans ton code, car dans ton log tu as :
[
Tu as un point alors que le séparateur dois être la virgule : 17100, 289
[
Code : Tout sélectionner
2019-12-29 23:05:55][SCENARIO] [color=#FF0000]Exécution de la commande [Appartement][Aspichou][GoThere] avec comme option(s) : {"background":"0","title":"","message":"17100.289"}[/color]
[2019-12-29 23:05:55][SCENARIO] Fin correcte du scénario
ßê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
-
- Timide
- Messages : 49
- Inscription : 20 mai 2017, 14:15
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Pour la partie GoThere je comprens, cependant je n'ai nul part une point au lieu d'une virgule dans le code. Les coordonnées ne sont pas celles que j'ai dans ma variable "17100,28900" mais c'est ceci qui apparait dans la log: "17100.289"
Pour un nettoyage par zone la log ne fait apparaître aucune coordonnée: [Appartement][Aspichou][CleanZone] avec comme option(s) : {"background":"0","title":"","message":"0"}, est-ce normal ?
Pour un nettoyage par zone la log ne fait apparaître aucune coordonnée: [Appartement][Aspichou][CleanZone] avec comme option(s) : {"background":"0","title":"","message":"0"}, est-ce normal ?
Code : Tout sélectionner
// Coordonnées des pièces
$coordonnees['ASPICHOU_ENTREE'][] = "29758,22875,33058,24475,1";
$coordonnees['ASPICHOU_CUISINE'][] = "30454,19638,32054,22788,1";
$coordonnees['ASPICHOU_SALON'][] = "24346,17925,30496,21875,1";
$coordonnees['ASPICHOU_CHAMBRE1'][] = "24523,21989,27723,25039,1";
$coordonnees['ASPICHOU_CHAMBRE2'][] = "24342,24976,28492,27926,1";
$coordonnees['ASPICHOU_SDB'][] = "29773,25425,31373,27075,1";
$coordonnees['ASPICHOU_WC'][] = "29623,24538,31573,25488,1";
$coordonnees['ASPICHOU_COULOIR'][] = "28430,23450,29730,26450,1";
$coordonnees['ASPICHOU_PLACARDPC'][] = "27840,20875,30990,22875,1";
// Coordonnées Go There
$coordonnees['ASPICHOU_POUBELLE'][] ="17100,28900";
// Zones regroupement plusieurs autres zones :
/* 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("#[Appartement][V_Aspichou][Rotation_map]#");
$rotation = 0;//$cmd->execCmd();
// centre X de la carte :
$cmd = cmd::byString("#[Appartement][V_Aspichou][centre_x]#");
$centre_x = 25000;//$cmd->execCmd();
// centre Y de la carte :
$cmd = cmd::byString("#[Appartement][V_Aspichou][centre_y]#");
$centre_y = 25000;//$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)
{ // 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("#[Appartement][V_Aspichou][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("#[Appartement][V_Aspichou][coordonnees]#");
$cmd->event($newpos);
// FIN DU SCRIPT
Manu
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Jeedom 4.0.27/Debian 9 Docker sur Synology 1812+
Snips 0.64.0/Raspbian 9
Zwave+ et Zigbee
Re: Aspirateur Roborock S50 => définir les zones de la maison?
Salut Manu,
Peux-tu me faire un screen de ta commande #[Appartement][V_Aspichou][coordonnees]# ?
Parce que j'ai un gros doute sur sa config...
Peux-tu me faire un screen de ta commande #[Appartement][V_Aspichou][coordonnees]# ?
Parce que j'ai un gros doute sur sa config...
ßê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?
Est ce que quelqu'un a réussi d'ajouter des commandes "homebridge" suite à la création des virtuels de chaque piece ? (merci patrick pour le support et le tuto)
MicroServer N54L sous Win7 avec VMware Workstation hébergeant une VM jeedom.
- FGRM-222 + Modules X2D
- Clé Z-Wave Plus
- Clé 3G Huawei e1752
- Clé RFplayer
- FGRM-222 + Modules X2D
- Clé Z-Wave Plus
- Clé 3G Huawei e1752
- Clé RFplayer
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités