je ne reproduis pas: j’ai une commande script qui renvoi mon IP et un scénario qui se déclenche sur la commande, donc exactement comme toi sur le principe.
j’ai vérifié dans le code du plugin script et il utilise la méthode checkAndUpdateCmd du core donc
c’est standard et pas spécifique au plugin donc pas de raison d’avoir un comportement différent (de toute façon ce ne sont JAMAIS les plugins qui déclenche les scénarios).
cette méthode a « toujours » pris en compte la config (même pre-4.1.23)
les commandes « autres » n’était pas impactées par le bug pre-4.1.23
C’est bien entendu clair pour toi que si la valeur change, alors l’event aura lieu? le « jamais repeter » n’intervient que si la valeur est la strictement la même.
Oui, je ne devrais avoir que 2 valeurs en principe
Ma commande est le retour d’un lsusb | grep -i XXXX:XXXX avec comme argument l’id XXXX:XXXX de la clé USB
J’ai remarqué que lorsque la commande lsusb | grep retourne quelque chose, il n’y a pas de problème de répétition. En revanche lorsque la chaîne de caractère est nulle, le résultat de la commande est transmis à chaque fois. C’est comme si
La nouvelle chaîne nulle est différente de la précédente chaîne nulle
Dans le scénario, la non répétition de la chaîne de caractère nulle fonctionne.
[2021-07-12 20:32:30][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Passerelle][USB][Huawei E3531].
[2021-07-12 20:32:30][SCENARIO] Exécution du sous-élément de type [condition] : if
[2021-07-12 20:32:30][SCENARIO] Evaluation de la condition : ["" matches "/12d1:1001/" ] = 0
[2021-07-12 20:32:30][SCENARIO] Non exécution des actions pour cause de répétition
[2021-07-12 20:32:30][SCENARIO] Fin correcte du scénario
La nouvelle chaîne nulle est bien identique à la précédente chaîne nulle
clé USB connectée avec #[passerelle][usb][Huawei]# matches "/12d1:1001/"
clé USB déconnectée avec #[passerelle][usb][Huawei]# == '' (celui va se déclencher toutes les minutes, il faudra ne pas autoriser la répétition dans le scénario)
Autant laisser #[passerelle][usb][Huawei]# comme déclencheur.
Pour faire plus propre, je vais modifier mon script afin qu’il retourne un NOK lorsque le lsusb ne retourne rien. Avec un NOK, le « Jamais répéter » devrait fonctionner et le scénario ne s’exécuterait plus inutilement
Reste le problème de l’option « Jamais répéter » avec une chaîne vide.
J’ai vérifié et la réponse est: quand l’ancienne valeur est vide on répète toujours, quelque soit la nouvelle valeur:
extrait de checkAndUpdateCmd de la class eqLogic: