Scenario Async dans bloc code

Hello,

Voila, j’ai un scenario avec un bloc code qui va effectuer plusieurs commandes d’affilées.
Je voudrais que chaque commandes soient appelées en asynchrone pour accélérer les commandes.
J’ai trouvé ça, mais c’est pour autre chose que du code

Voila pour le coups mon code :

$SendMsgCmd = cmd::byString("#[Montigny][Maison][Envoi message]#");

$tags = $scenario->getTags();
$piece = $tags['piece'];
$lumiere = $tags['lumiere'];
$cmd = $tags['cmd'];
$couleur = $tags['couleur'];
$luminosite = $tags['luminosite'];

if (!empty($piece) || !empty($lumiere) || !empty($cmd))
{
  $scenario->setLog('piece        '.$piece);
  $scenario->setLog('lumiere      '.$lumiere);
  $scenario->setLog('cmd          '.$cmd);
  $scenario->setLog('lumiere choisie : ['.$piece.']['.$lumiere.'][...]#');

  $SendMsgCmd->execCmd($options=array('message'=> 'scenario genericLight ['.$piece.']['.$lumiere.']['.$cmd.']'));
  if ($cmd == 'On'){
    cmd::byString('#['.$piece.']['.$lumiere.']['.$cmd.']#')->execCmd();
  }
  if(!empty($couleur)) {
    $scenario->setLog('color        '.$couleur);
    cmd::byString('#['.$piece.']['.$lumiere.'][Couleur]#')->execCmd($options=array('color'=>$couleur));
  }
  if(!empty($luminosite)) {
    $scenario->setLog('luminosite  '.$luminosite);
    cmd::byString('#['.$piece.']['.$lumiere.'][Luminosité]#')->execCmd($options=array('slider'=>$luminosite));
  }
  if ($cmd == 'Off'){
    cmd::byString('#['.$piece.']['.$lumiere.']['.$cmd.']#')->execCmd();
  }
}

Je pensais remplacer le execCmd par un execCmdAsync, mais ça ne passe pas :slight_smile:

Bref, petite aide ? :slight_smile:

Bonjour,
Vous n’aurez pas de moyen de faire cela dans un bloc code d’un scénario.

Mince … Par contre, je peux contourner en faisant du // après le bloc code.
ça oblige des étapes en plus, ça fait dégueulasse, mais ça peut passer …
Moyen d’aider à l’implémenter sinon ?

Pour faire plus propre, est-ce volontaire ou bien est-il possible de voir pour faire une évolution sur le code ?
Je peux m’en occuper si c’est quelque chose qui est compatible avec la philosophie que vous voulez maintenir. Comme certains bloc peuvent être en //, Je me disais que ce devait être jouable.

Je ne fais pas partie de l’équipe jeedom, je ne suis que modérateur (et développeur tiers sur jeedom).
Donc je ne peux pas m’exprimer sur la volonté de jeedom à ce sujet.

Ceci étant dit, je connais bien le core effectivement et je pense que ce changement ne sera pas anodin, le risque d’impact collateral est bien présent.
Reste à évaluer le réel intérêt pour une telle fonctionnalité: travailler en async est intéressant lors d’opération io relativement lourde et répété, dans ces cas les gains sont non négligeable.
Pas certain que ce soit vraiment le cas pour ce qu’on demande au core de jeedom du coup pas sur qu’on y gagne beaucoup au final.

Ceci dit, le code est ouvert et public, libre à vous de tenter de mettre cela en place et de proposer un PR, à faire sur la branche alpha.

OK, je vais chercher pour voir si c’est simple à implémenter et puis je soumettrais si c’est pas trop compliqué :slight_smile:
Merci pour le retour :slight_smile:
Et merci pour le boulot :slight_smile: