Positionnement de volets , demande aide pour ecrire un scenario générique

Bonjour à tous,

Equiper de volets filaires bubbendorff et des modules qubino ZMNHCD, je suis confronté a un mauvais positionnement des volets lorsque on souhaite passée d’une position intermédiaire a une position ouverte,
par exemple de la position 20 a 99 le volet ne s’ouvre pas totalement
Pour eviter ce problème, j’ai remarqué quand passant de la position 20 a la position 0 (fermé) puis 99 le positionnement était correcte

Je voudrais donc remplacer mes commandes de positionnement par un scenario qui ferait :
si la position actuelle du volet n’est pas 0 ni 99 et que la position souhaitée ne soit pas 0 , envoyer une commande de positionnement 0, puis ensuite envoyer la commande de positionnement souhaitée et sinon envoyer la commande de positionnement souhaitée

Comme je souhaite faire ca sur mes 13 volets j’aimerai passée l’équipement voulu et la position finale souhaitée à mon scénario générique et c’est là que vous intervenez…possible ? pas possible ?

Merci de votre aide :blush:

Bonjour , la calibration a bien été effectué?

La calibration automatique n’est pas possible avec ce type de volet

Meme question pour un scenario générique pour les zones d’un arrosage auto.
Plutôt que de créer un scénario par zone, l’idée est de faire un scénario spécifique appelé plusieurs fois avec des tags différents permettant dans le scénario unique d’appeler différentes commandes.
L’idée n’est pas de faire un IF imbriqué ou switch case mais d’appeler des commandes qui sont stockées dans les tags. Merci

Salut,

Je propose quelque chose du genre pour positionner un volet à une valeur en indiquant dans un tag :

  • id de l’équipement (idEq)
  • valeur de la position (valeurPositionnement)

Le scénario « Central Volet (Community) » qui reçoit les tags et exécute la commande comporte un bloc code :

$tags = $scenario->getTags(); // Récupération des Tags passés dans un tableau

$idEq = $tags['#idEq#']; // Enregistrement de l'id de l'équipement
$positionnement = $tags['#valeurPositionnement#']; // Enregistrement de la position souhaitée

$equipement=eqLogic::byId($idEq); // Recherche de l'équipement par son id
$nomEquipement = $equipement->getHumanName(); // Récupération du nom complet de l'équipement

$cmd='#'.$nomEquipement.'[Positionnement]'.'#'; // Définition de la commande de "Positionnement" sur l'équipement pour agir dessus

$scenario->setLog('La commande '.$cmd.' sera définie à '.$positionnement); // Ecriture dans le log du scénario pour tracer la demande

$options = array('slider'=>intval($positionnement)); // Définition de ce qu'il faudra envoyer au slider
cmd::byString($cmd)->execCmd($options, $cache=0); // Execution de la commande

Le scénario appelant sera à faire de cette façon :

C’est à dire en passant en Tags : idEq=261 valeurPositionnement=50 afin de d’indiquer de positionner l’équipement 261 à la position 50

Chez moi l’équipement 261 est : #[Bureau][Volet Bureau (MQTT)][Positionnement]#

Et le logs donne :

[2021-08-24 20:16:42][SCENARIO] Start : Lancement provoque par le scenario  : [Aucun][Aucun][Commande volet (Community)]. Tags : {"#idEq#":"261","#valeurPositionnement#":"50"}
[2021-08-24 20:16:42][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-08-24 20:16:42][SCENARIO] Exécution d'un bloc code
[2021-08-24 20:16:42][SCENARIO] La commande #[Bureau][Volet Bureau (MQTT)][Positionnement]# sera définie à 50
[2021-08-24 20:16:42][SCENARIO] Fin correcte du scénario

Note : Il aurait peut-être été plus commode de passer le nom de la commande directement mais je crois que j’avais du rencontrer des problèmes liées aux espaces dans les noms des équipements

3 « J'aime »

J’essaye ca dans les prochains jours

Il va falloir un peu adapter parce que du coup on ne parle pas de position de volets dans ce que tu veux mais sûrement d’une action ON ou OFF :wink:

Oui effectivement mais je devrais y arriver.
Apres dans mon cas ca sera plus complexe car l’idée est depuis un slider unique de durée déclencher un arrosage (on effectivement) sur la durée spécifiée sur le slider.
Sachant que je dois gerer et empêcher aussi la repetition du scenario pour une même commande mais pas pour une commande differente… C’est a dire que si je modifie la dutee d’une zone deja en fonctionnement il faut que je puisse gerer ce cas de figure.

Et dans l’ideal remettre a jour toutes les minutes le nombre de minute restante d arrosage dans le slider…

C’est intéressant en totut cas :smiley:.
Je vois pas bien l’idée du slider unique et en même temps de mise à jour du slider chaque minute (puisque du coup chaque zone ne serait pas mise en service au même moment, donc pas la même durée restante) mais bon, tu verras au fur et à mesure.

La base est là :slightly_smiling_face:

Un slider unique avec touche +/- pour augmenter le temps par pas de 5 min. Par defaut à 0.
On clique sur le + d’une zone, ca declenche l arrosage pour 5 min.si on met 10 ca declenche pour 10 min…
Idem sur les autres zones

Merci pour ton post, c’est exactement ce que je souhaitais :grinning:

1 « J'aime »

Y a un peu de boulot…
Car il faut gerer les répétitions et les différentes zones puisque le scenario sera unique