Scene suivante

Hello,

Excusez-moi si la question a déjà été posée mais malgré mes multiple recherche sur la communauté, je n’ai pas trouvé de solution…

Je souhaiterais reproduire la même action qu’avec le Hue Dimmer Switch, à savoir changer la scène lorsqu’on répète l’appuie sur le « I » mais avec un interrupteur double Legrand 067724.

J’ai mis en place un scénario de ce genre qui fonctionne y compris la dernière action.
Mais la liste déroulante fige la scène.

N’ayant pas à disposition de bloc Select Case qui permettrait de contourner, même si ce n’est pas propre et évolutif par rapport à l’ajout de nouvelle scène.

Existerait-il un id plutôt qu’un liste de scènes que l’on pourrait incrémenter par le biais d’une variable ?

J’utilise le plug in mode et je passe d’un mode à l’autre.

Merci pour l’info.
Çà fait un peu surcouche mais l’idée est très bonne.

J’ai donc créé un mode tel que :


Et placé un event dans mon scénario pour incrémenter le mode :

Le scénario fait bien basculer le mode comme il faut mais les actions d’entrée ne sont pas exécutées et la lampe ne change donc pas de scène…

Pourrais-tu préciser comment tu utilises mode ? ou me fourvoie-je ?

Hello,

Au final j’ai abandonné les modes qui faisait trop surcouche pour moi et qui n’éxécutaient pas les actions d’entrées…

J’ai donc opté pour un bloc Code, un tag et une variable en m’inspirant de ce qu’a réalisé @Eridani78 dans ce post pour avoir un scenario all inclusive :sweat_smile:

Merci à lui et à @kiboost pour sa très enrichissante page et qui trouvera très certainement de l’optimisation à faire dans mon code :smiley:

Pour ceux que ça intéresserait voici :

// Recupération des tags et variables du scénario
$tags = $scenario->getTags();
$command = $tags['#Command#'];
$value = $scenario->getData('Value'.$command);
// Récupération de la liste sous forme d'array
$list = explode(";", cmd::byString($command)->getConfiguration('listValue'));
// Traitement
$i = 0;
$found = 0;
while($found<1)
{
	$slist = explode("|", $list[$i]);
	if ($slist[0] == $value)
	{
		$found = 1;
	}
	$i++;
	if ($i == count($list))
	{
		$found = 1;
		$i = 0;
	}
}
$slist = explode("|", $list[$i]);
$value = $slist[0];
$scenario->setData('Value'.$command, $value);
$options = array('select'=>$value);
cmd::byString($command)->execCmd($options);
  • le résultat :
    image

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.