Utiliser un tag dans le nom d'une commande dans un scénario

Bonjour à tous,

Dans le but de rendre générique un scénario par rapport à son déclancheur, je souhaite pouvoir utiliser une commande avec une partie variable dans le nom, pour être clair je souhaiterais appeler une action dans un bloc action d’un un scénario de ce genre : [tag(montag,default)][Store][On].

Est ce que quelqu’un aurait une solution ? je sais que je peux le faire en bloc code mais c’est pas le but, les scénarios vont être moins lisibles …

si ça peut aider exemples ici :

salut @olive ,

merci pour ta réponse, j’ai essayé dans un scénario, dans les logs ça marche j’ai la bonne chaine, mais quand je mets la même chose dans une action ça ne marche pas, voici les logs du scénario test :

[2021-02-24 22:19:25][SCENARIO] Log : #[Salle à manger][Yeelight][Allumer]#
[2021-02-24 22:19:25][SCENARIO] [Erreur] Aucune commande trouvée pour #[#test#][Yeelight][Allumer]#

est ce que je fais quelque chose de travers ?

Hello… Pourquoi des # autour de test ?

parce que c’est un tag, pour qu’il le remplace par sa valeur, non?

Oui et Donc comme ton nom de commande n’en contient pas ça risque pas de marcher…

Pour exploiter un tag hors code de toutes façons c’est :
Tag(nom)

quand je mets #[#test#][Yeelight][Allumer]# je m’attends à ce qu’il interprête #test# qui est égal à « Salle à manger » et qu’il execute la commande #[Salle à manger][Yeelight][Allumer]# ; visiblement ce n’est pas le cas. Dans les logs ça marche sous les 2 formes :
#[#test#][Yeelight][Allumer]# ou #[tag(test,"")][Yeelight][Allumer]#

Avec ta première syntaxe je suis quasi sûr que jeedom cherche au mieux à remplacer ce qui est encadré par 2 # consécutifs…
Donc entre le 1 et le 2 puis entre le 3 et le 4… Et pas du tout en sachant faire la différence d’une commande entre 1 et 4 après avoir compris que c’était un tag entre 2 et 3…

Et pour le deuxième cas, il cherche le nom brut entre les #. Donc c’est mort sans bloc code

merci pour tes réponses, est ce qu’on peut remonter à l’équipe qui s’occupe des dév ? parce que ça me semble une bonne idée d’avoir des variable dans une commande …

Tu peux toujours remonter l’information… Personnellement je crois pas que ça change grand chose

dans mon cas c’est un vrai besoin, alors oui on peut faire un bloc code, mais c’est tellement plus pratique et lisible d’utiliser un paramètre dans une commande que d’utiliser un bloc code …

C’est pas moi qu’il faut convaincre…

non je t’explique juste :slight_smile:

merci en tous cas pour ton temps !

Hello

Ya certain petit bloc code qui ne sont pas bien mechant quand meme ! :slight_smile:

J’ai aucun souci à écrire du code, je suis développeur, je suis entrain de faire le scénario avec le bloc code, je mettrais 2 screenshots avec les 2 scénarios l’un à côté de l’autre, tu comprendras certainement pourquoi je voulais une variable dans une action

Oulaaa toutes mes excuses alors !..

bein non pas de soucis :slight_smile:

bon bein voilà comment est le scénario (je t’épargne le scénario générique qui ne fait qu’executer une commande)

et voici le scénario comment il aurait dû être

je trouve la deuxième version plus lisible, et encore j’ai pris un scénario simple, dans un scénario complexe ça va d’autant plus complexifier la lecture (enfin toujours à mon avis)

1 « J'aime »

C est en effet une question de point de vue.
Perso je prefere la version 1 ! :slight_smile:

Si ton scenarion ne fait que ca, je ne vois pas vraiment l utilité des 2 bloc SI !? Autant finir les actions directement dans le code…
(Et question lisibilité str_replace sait prendre un tableau en parametre :wink: )