Déclenche que si et seulement si une autre condition n’est pas réalisée

Bonjour @ tous,
j’ai besoin d’aide pour la configuration d’un scénario.
Je souhaite qu’une condition d’un scénario ne se déclenche que si et seulement si une autre condition dans ce même scénario n’est pas réalisée.
J’ai donc pensé à utiliser la fonction TAG (je ne sais pas si c’est la bonne méthode).
Le raisonnement est il correct?

Si oui, comment remplir la fonction TAG?

Merci d’avance

bonjour

Une fois le tag fait pour l’utiliser il suffit de l’encadré avec des #

tag MONTAG 1

SI #MONTAG# == 1 …

par exemple.

Bon dimanche

Bonsoir,
je te conseil de faire des tests dans un scénario test, pour être alaise avec chaque fonction avant d’attaquer direct un vrai scénario…

Ici le nom de ton tag est « scénario_volet_nuit »
ton tag s’écrit donc tag(scénario_volet_nuit) ou encore #scénario_volet_nuit# (même si je dé conseil cette écriture qui peux parfoit faire des bugs quand elle est utilisé dans un calcul).

Ta condition va lui injecté un 1
donc la valeur par defaut est 0

Cela devient tag(scénario_volet_nuit,0)

(pour le test « Comme @olive te l’a dit » avec la variante tag(scénario_volet_nuit,0) == 1

Bonsoir,
merci pour vos conseils, je vais essayer demain.

PS: tu lances pas mal de commandes d’un coup.


N’oublie pas que chaque message doit partir, puis le module fait une réponse, et que tout ceci est tres bref mais pas instantané…
Je te conseil vivement (pour la stabilité / répétabilité) et mettre des sleep entre chaque actions
(en Z-wave une pose de 2-3 secondes suffit / est tres bien. Le zigbee est plus rapide et c’est moins utile. Mais es-tu as quelque secondes pres ? Ou préfère tu avoir un truc qui tourne toujours au top…? laisse de la marge…).

Pour l’exécution des commandes en simultanées, tout fonctionne parfaitement car c’est en filaire. Mais effectivement rien ne m’empêche de mettre une pause.

Bonjour,

si j’ai bien compris le fonctionnement, le TAG « scénario_volets_nuit » (que je devrais renommer plus simplement), sera créé avec la valeur lors de l’exécution du scénario dans lequel il se trouve.
Du coup, lorsque ce scénario ne rempli plus les conditions pour être exécuté, le TAG repasse à 0 ou reste-t-il en mémoire à 1?
Autre question, comment peut on connaitre la valeur à l’instant T d’un TAG ou d’une variable?

Hello,

Ça a été expliqué par Henri.

Le tag est uniquement créé et mémorisé pour le scénario en cours d’exécution puis sera effacé

La variable, est conservée même après la fin du scénario et pourra donc être réutilisée.

SI tag(scénario_volet_nuit,0) == 1 est donc une condition qui dit en français :
« Si le tag qui s’appelle scénario_volet_nuit existe et vaut 1 ».
Donc si tu as défini le tag à la valeur 1 la comparaison sera « si 1 vaut 1 ».

Mais si ce tag n’existe pas car pas encore défini il prendra la valeur 0. La comparaison sera donc dans ce cas « si 0 vaut 1 ». En utilisant cette fonction de la sorte ça permet d’éviter une erreur lors de la comparaison si jamais le tag n’était pas défini avec une valeur.

Merci Bison,
je comprends vite mais il faut m’expliquer longtemps… :sweat_smile:
Pour bien enfoncer le clou, lorsque l’on appelle le TAG il est de la forme: tag(montag,defaut) où
montag= nom du TAG
defaut= C’est là que je ne comprends pas, désolé. Dans « SI tag(scénario_volet_nuit,0) », pourquoi 0? La valeur « défaut » ne peut être que 0 (condition non réalisée) ou 1 (condition réalisée)?

Tu as bien compris. On a choisi comme exemple 0 pour la valeur par défaut parce que tu avais défini ton tag à 1.

En informatique quand on programme en binaire si une valeur ne vaut pas 1 elle vaut 0. C’était donc par réflexe mais en effet si ça t’arrange de dire que si le tag n’est pas défini alors ça valeur sera 100, c’est toi qui voit avec ce que tu veux faire

J’étais en train d’éditer mon texte durant ta réponse :sweat_smile:
Je comprends au final que le tag prend une valeur définie lors de sa création seulement lors de l’exécution du scénario puis reprend sa valeur par défaut lorsque le scénario est terminé.
A la différence de la variable qui garde en mémoire sa valeur définie lors de sa création jusqu’à sa nouvelle valeur…

1 « J'aime »

Le tag ne reprend pas sa valeur par défaut quand le scénario est fini, le tag est supprimé, il n’existe plus.

Bonjour et…
NON
En dehors d’un scénario, lorsque le scénario est finit, le tag n’hésite tout simplement plus…
A chaque scénario, il sera créé puis effacer (c’est de la memoire « vive »/éphémère, pas stocké en dur / dans ta carte mémoire ou disque dur, à l’inverse d’une variable qui elle est stockée en dur)
La seconde différence avec une variable, c’est que la variable est commune à tout le système (elle sera lu de la même manière / aura la même valeur, par tout les scénarios / virtuel)

Donc un tag.
Tu le crées au debut d’un scenario
Tu le lis
Puis il disparaît

La valeur par défaut étant simplement
« Si le tag n’a pas de valeur, alors on dit qu’il vaut X » sinon on prend sa valeur)
Ainsi, si au debut de ton scénario tu dis « tag(volet)=X, pas besoin d’une valeur par défaut
Si ton tag peut être appeler sans qu’il est pris de valeur, alors du doit lui donner une valeur par defaut sinon la valeur du tag est « rien » et si tu teste 1==rien, ca renverra une erreure ! Normal !

Enfin, un tag dépendant d’un unique scénario, si tu fait appel au tag « toto » dans plusieurs scenario, ils auront chacun la valeurs données dans le scénario où ils tournent.
Exemple chez moi:
Le tag(température_actuel)
Il va tourné dans leS scénarios de gestion du chauffage (un par piece) rt donc, dans chaque scénario avec la valeur de la température de la pièce en question…
Ainsi, tous les scénarios ont un gros bloc commun (copier/coller de l’un à l’autre) et si ils tournent en même temps, chacun tournent avec ses valeurs. Si j’avais utilisé une variable (comme au debut de Jeedom où certain calcul n’était pas autorisé avec un tag) il aurait fallut que les scénarios ce suivent sans s’exécuter en même temps pour que chaque piece garde ses valeurs (que le scénario de la piece 1 ne s’exécute avec les valeurs de température de la piece 2)

C’est plus clair…?
:blush::rofl::sleeping::sleeping::sleeping:

Oui, merci :sweat_smile:

Salut,

Je conseillerais d’éviter d’appeler un tag par la notation #montag# qui correspond à l’ancienne notation et qui peut disparaître de Jeedom à tout moment (et donc provoquer des erreurs à terme de ses scénarios) mais plutôt d’utiliser la définition de la documentation le format tag(montag) ou tag(montag, defaut) pour définir une valeur par défaut si non défini.

Merci nono

je suis de la vieille école … faut que je passe en revue tout mes scénario :sob:

Qu’en est t’il de la notation dans du code autre que les scénario la notation des tag reste #xyz#

bon dimanche