Utilisation de tag dans un scenario

Bonjour,
Après avoir lu un (excellent) article

J’essaie sans succès d’utiliser un tag avec le scenario de test ci dessous :

La valeur du tag(volet) est interprétée comme une chaine de caractère plutôt que comme une commande/info

Voir premier message ci dessous :

Que faut-il faire pour que le tag soit correctement interprété ?

En vous remerciant par avance pour votre aide.

Bonjour

Le tag est correctement interprété. Tu es en message donc pour lui tu construis une chaine de caractère, tu n’appelles pas une commande.

Vu que tu utilises un bloc code, pourquoi ne pas construire cela dans le bloc code ?

en fait il s’agit juste d’un test avant de faire plus compliqué
quoiqu’il en soit je n’imagine pas transférer toute l’algorithmique du scenario dans le code

si je souhaite que cela soit interprété comme une commande, a-t-on le moyen de convertir une string en commande

Bonjour
Pour info : Tu peux également enregistrer les tag avec l’action tag. (Voir la doc scénario)
Par contre je ne vois pas l’erreur
Dans ton bloc tu rentres tag = v-Amis
Puis ton message contient v-Amis
Donc, c’est correct…?
Si tu mets un « = 2 » dans ton bloc code, tu récupèreras 2, dans ton message !

Le tag porte une information
Ce n’est pas une commande
Comme une variable, ça peut contenir un nombre ou tu texte

Comme action, indique « tag » puis dans la valeur
, tu indiques l’information du niveau du volet.
Quand tu appelles ton tag, il vaut la valeur du volet



1 « J'aime »

Bonjour,

Ne faut-il pas utiliser la fonction value(cmd) pour faire cela ?

value(cmd)` : Renvoie la valeur d’une commande si elle n’est pas donnée automatiquement par Jeedom (cas lors du stockage du nom de la commande dans une variable)

nop… voir le deuxième tag de mon exemple

« Pour faire cela » se rapportait à ce que @xigaowei semble vouloir faire c’est à dire interpréter une chaine de caractères comme le nom d’une commande et en obtenir la valeur

Sorry, mais j’ai pas compris…

La valeur donner au tag est une chaîne de caractères « v-Amis », le tag ne peux pas sortir autre chose…
J’ai du louper un truc :face_with_monocle:
Pour obtenir la valeur d’un commande de type information, voir exemple, il suffit d’indiquer la commande… non ?

Cmd = [Serrure Nuki]
et #[Cuisine]variable(Cmd)[Etat]# est bien évalué comme #[Cuisine][Serrure Nuki][Etat]#

Donc en utilisant state = value(#[volets][tag(volet)][State]#)
Il devrait obtenir state = 99 pour la première ligne de son scénario

Je suppose que ça marche aussi pour les tags et pas seulement pour les variables

Ah bon ?

Lui construit sa commande avec un tag
image

Mais reproche que du coup cette commande construite ne soit pas interprétée.
D’où ma proposition de construire la commande dans le bloc code et de la passer en tag et là cela fonctionne comme on le voit sur ma capture

Ho punaise, je viens de comprendre… Merci Iperenna !

1 « J'aime »

image

tag(volet)=v-Amis

Donc dans la capture ci dessus, on voit qu’il construit une commande avec ce tag
(flèche rouge)

En dessous il appelle la commande directement

A l’exécution ce qui est niveau fleche rouge state=le nom de la commande
En dessous la commande a pris la valeur

Mille excuse @lperenna / @Bonjour pour le patinage au démarage.
Noel a été costaud on dirait :slight_smile:

Donc @xigaowei, Iperenna à raison, tu peux tout décomposer dans ton bloc code, sinon avec le value() de Bonjour, tu peux y arriver en commande « classique » en décomposant comme ceci :



Merci pour vos réponses.
lperenna a raison, cela fonctionne bien en renseignant en totalité la commande dans le code.
Comme cela c’est bien interprété comme une commande et non comme une string.
Avec value() je n’obtiens aucun message, idem dans l’exemple de Henri, value() ne produit aucun log, mais je ferai d’autres essais.
Merci à vous.

En définitive, value() fonctionne aussi très bien (il manquait des #) ce qui me permet d’en dire moins dans le code; je préfère dans le cas présent.


Merci à tous.