Jeedom v4.5 : demande d'aide pour les nouveaux trigger

Bonjour,

En pleine migration de mon Jeedom de production sur Raspberry Pi OS Bookworm et Jeedom v4.5 bêta.
- J’entreprend le changement d’usage des Trigger

Et là, je me pose une question sur un cas.

Un scénario avec plusieurs déclencheurs, dont (mais pas que) 4 passages à 1 sur la présence.

Avant, si le déclencheur était la présence d’un des 4 nut, je procédait ainsi, dans un bloc SI :
trigger(#[Localisation][Chloé][Présence]#) == 1 || trigger(#[Localisation][Fabrice][Présence]#) == 1 || trigger(#[Localisation][Sylvie][Présence]#) == 1 || trigger(#[Localisation][Yaris][Présence]#) == 1

Je bute pour savoir comment faire avec les nouveaux Trigger ?

Avant : le contrôle du déclencheur était fait ainsi: trigger(état commande A) == 1
Maintenant, en regardant les logs des scénarios, j’ai l’impression que je ne peux plus avoir cela :
Tags :
"#trigger#":"virtualCmd"
ou "#trigger_name#":"[Localisation][Fabrice][Présence]"
ou "#trigger_id#":17864
ou "#trigger_message#":"Scénario exécuté automatiquement sur événement venant de : [Localisation][Fabrice][Présence] (1)"
ou "#trigger_value#":1

En gros, je pense que celui qui me correspond, à savoir QUI a déclenché le 1; c’est le #trigger_message# (qui contient le nom et l’état) mais avec de la pollution.

Je veux bien des explications.

Merci

Salut,

Plus simplement ?

#trigger_name# == "[Localisation][Fabrice][Présence]"

Bonjour et merci.

C’est ce que je fais pour ma télécommande par exemple.

Ça, cela me dit que c’est le déclencheur nommé, mais pas s’il est à 0 ou 1.

Avant, je comprends qu’avec le trigger, j’avais le QUI et la valeur du QUI en même temps.

Pour moi, non. si c’est vrai, tu connais le trigger, mais pas sa valeur.

Personne n’a se besoin ? D’avoir le trigger et sa valeur même temps ?

Ce que semble proposer : trigger_message, mais pas utilisable dans mon cas.

Bonjour,
Tu as le déclencheur : trigger_name et la valeur avec trigger_value. Si tu veux que les déclenchement à 1 en haut du scénario tu met un if trigger_value =0 alors stop et ensuite tu peux dans la suite de ton scénario tester le déclencheur avec trigger_name en sachant que c’est forcement 1 la valeur du déclencheur.

Ben je comprends pas bien la difficulté en fait, je faisais déja ça en 4.4 avec l’ancienne syntaxe :

trigger() == "[Maison][JC-Tel][En charge]" && triggerValue() == 1

2 « J'aime »

Il me semble que cette syntaxe ne supporte pas le changement de nom.

Il faudra éventuellement choisir #trigger_id#.

2 « J'aime »

Bonjour,

En effet je me rappelle maintenant de la discussion sur le sujet.
Et du coup je dégainerai ta solution pour passer par #trigger_id# avec une relecture facile du scénario :wink:

1 « J'aime »

Cela est déprécié (but de ma question)

- voir la documentation des scénarios pour la version v4.5 :
Documentation Scénarios Jeedom v4.5

Bonjour,

C’est la solution en fin de compte.

Je vais faire comme @Madcow l’a indiqué :
#trigger_name# == "[Localisation][Fabrice][Présence]" || les autres à la suite
Puis, un nouveau bloc (unique) en dessous :
SI #trigger_value# == 1
Et mon action

Merci.

Hello,

Tiens par contre y’a une incohérence non ?

#trigger_value# : Si c’est une commande qui a déclenché le scénario alors ce tag à la valeur de la commande ayant déclenché le scénario. Astuce si vous voulez la valeur courante de la commande qui a déclencher le scénario (et non sa valeur au déclenchement) vous pouvez utiliser : ##trigger_id## (double #)

Ça serait pas ##trigger_value## plutôt ? Puisque id renvoi l’ID de la commande :

  • #trigger_id# : Si c’est une commande qui a déclenché le scénario alors ce tag à la valeur de l’id de la commande qui l’a déclenché. Exemple : #trigger_id# == 19
1 « J'aime »

C’est une (la) bonne idée, mais pas triviale, mais cela ne donne pas non plus la valeur, il faut ajouter un bloc pour l’avoir.

Je ne demande rien, mais dans un cas pareil, il faudrait une liste déroulante qui permet de sélectionner les commandes (à la manière du menu rechercher ou remplacer) ce qui serait très lourd.

Non mais je sais bien, ce que je veux dire c’est pourquoi tu ne remplaces pas juste l’ancienne syntaxe par la nouvelle ?

En gros chez moi ça :

trigger() == "[Maison][JC-Tel][En charge]" && triggerValue() == 1

Deviendrait ça :

#trigger_name# == "[Maison][JC-Tel][En charge]" && #trigger_value# == 1

Je maintiens que je ne vois pas ce qui est si complexe que ça … :thinking:

C’est ce que j’ai fait en fin de compte, ce n’est pas une histoire de complexité, c’est juste qu’avant, en utilisant les commandes #macommande#, on avait l’état en même temps et le coté dynamique en cas de changement de nom des objets, équipement ou commande.

Pour moi :

trigger(#[Localisation][Chloé][Présence]#) == 1 || trigger(#[Localisation][Fabrice][Présence]#) == 1 || trigger(#[Localisation][Sylvie][Présence]#) == 1 || trigger(#[Localisation][Yaris][Présence]#) == 1

devient :

(#trigger_name# == "[Localisation][Chloé][Présence]" || #trigger_name# == "[Localisation][Fabrice][Présence]' || #trigger_name# == "[Localisation][Sylvie][Présence]" || #trigger_name# == "[Localisation][Yaris][Présence]") && #trigger_value# == 1

Je ne comprends pas.

Ton déclencheur n’est pas une commande ? #[ma][com][mande]#==1

Si, mais il y a de multiple déclencheurs, comme le changement d’un mode par exemple.

Ha, je note une erreur dans mon message d’origine, sur ce que tu as cité, ce n’est pas tout à fait exacte. A la place de déclencheur il faut lire : le control du trigger.

Donc, si tes déclencheurs sont de cette forme, tu n’as pas besoin de tester la valeur du trigger correspondant.

2 « J'aime »

Ce n’est pas faux, j’ai d’autres cas où le déclencheur n’est pas exclusif.
Dans cet exemple, tu as parfaitement raison.

C’est clos pour moi. Merci à tous.

1 « J'aime »

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