Problème vérification annulateurs d'arrosage

Bonjour,

J’ai un pb avec la vérification des annulateurs : les expressions suivantes, bien que testées dans le testeur d’expressions ne sont jamais vraies pour le plugin, et du coup, même si je n’ai pas l’événement en cours dans le calendrier, l’arrosage se fait quand même…

not (#[Calendriers][Arrosages 1surN][En cours]# matches(’/1sur2/’))
not (#[Calendriers][Arrosages 1surN][En cours]# matches("/1sur2/"))
#[Calendriers][Arrosages 1surN][En cours]# matches(’/1sur2/’) == 0
#[Calendriers][Arrosages 1surN][En cours]# matches(’/1sur2/’) ? 0 : 1

Une difficulté est que le log en debug ne donne pas de détail de l’évaluation, donc impossible de savoir comment l’expression est évaluée…

Quelqu’un a une idée ?

Merci
Anthony

PS Comme le cron ne sait pas faire du « vrai » un jour sur 2 (*/2) sur les mois à nb de jours impairs, j’utilise un calendrier jeedom avec un événement se répétant tous les 2 jours…

PS2

0265|[2022-09-09 08:10:07]INFO : > DEMARRAGE DE L'ARROSAGE : [Aucun][test] test
0266|[2022-09-09 08:10:07]DEBUG :    > check_start_arrosage : [Aucun][test] test - Vérification des "annulateurs" de démarrage de l arrosage...
0267|[2022-09-09 08:10:07]DEBUG :    > check_start_arrosage : [Aucun][test] test - Lancements des commandes de démarrage de l arrosage...
0268|[2022-09-09 08:10:07]DEBUG :       > start_arrosage - execution de la commande : [Aucun][test] test >   #48#
0269|[2022-09-09 08:10:07]DEBUG :       > exec_comande :   #48#

Salut

bon j’ai posté une maj Beta qui rajoute des log debug

mais j’ai testé avec un virtuel , l’annulateur chez moi fonctionne, j’attend tes logs avec la nouvelle Beta

L’évaluation ne fonctionne pas, l’arrosage démarre.

Expression : not (#[Calendriers][Arrosages 1surN][En cours]# matches("/1sur2/"))
Le testeur d’expression retourne true :
Je vais évaluer : not (« Aucun » matches("/1sur2/"))
Résultat : true

log

[2022-09-12 12:20:07][INFO] : > DEMARRAGE DE L'ARROSAGE : [Aucun][test] test
[2022-09-12 12:20:07][DEBUG] :    > check_start_arrosage : [Aucun][test] test - Vérification des "annulateurs" de démarrage de l arrosage...
[2022-09-12 12:20:07][DEBUG] :     > start_arrosage - annuleur de start: [Aucun][test] test - condition  : Array
[2022-09-12 12:20:07][DEBUG] :     > start_arrosage - annuleur de start: [Aucun][test] test expression : not (Aucun matches("/1sur2/"))
[2022-09-12 12:20:07][DEBUG] :     > start_arrosage - annuleur de start : [Aucun][test] test resultat : not (Aucun matches("/1sur2/"))
[2022-09-12 12:20:07][DEBUG] :    > check_start_arrosage : [Aucun][test] test - Lancements des commandes de démarrage de l arrosage...
[2022-09-12 12:20:07][DEBUG] :       > start_arrosage - execution de la commande : [Aucun][test] test >   #48#
[2022-09-12 12:20:07][DEBUG] :       > exec_comande :   #48#
[
1 « J'aime »

je sais pas trop, j’utilise une fonction clé en main de Jeedom (evaluate)

pourquoi tu as des ‹ / › ? ca se trouve ca vient de la

je remarque autre chose

test expression : not (Aucun matches(« /1sur2/ »)) , il manque les " a Aucun… Essaye de rajouter des " " autour du nom de ton équipement peut etre

@kiboost Salut, excuse moi de te tagger sur ce sujet, mais peut être que ton exp de dev à ce sujet pour nous aider, pourquoi il y a une différence entre l’évaluateur d’expression via IHM et via code ? visiblement soit j’ai mal codé un truc soit il faut que @amerton fasse un petit truc

J’ai les slashs car le matches travaille avec des expression régulières.

Le manque de “” autour de Aucun vient probablement de Encours qui ne renvoie nada si l’évènement n’est pas actif…

Attendons la réponse de kiboost…

Bon… j’ai déporté le test dans un virtuel, et ça fonctionne…
C’est pas une solution élégante mais c’est pragmatique.

ok, mais il faudrait que je comprenne pourquoi… que dois je changer a mon code ?

Salut @amerton , pourrais tu faire la dernière maj beta, refaire un test avec l’annulateur acteur, et m’envoyer les logs debugs,

j’ai utilisé un autre bout de code trouvé dans le plugin virtuel, ca se trouve ca va passer (pour l’instant ca va rien changer, mais je verrais dans les logs si c’est bon)

Ce n’est pas possible pour moi avant 2-3 jours, mais tu peux le tester super facilement :

  • Plugin calendrier, calendrier XYZ avec parent ABC sans aucun événement pour la journée

  • dans un annulateur d’arrosage tu mets

not (#[ABC][XYZ][En cours]# matches("/1sur2/"))

(évidement à la place de 1sur2 tu mets ce que tu veux…mais 1sur2 fera l’affaire)

tu regardes ce que ça donne quand l’arrosage est provoqué et les annulateurs évalués.

Hope it helps
Anthony

Salut

c’est bon, corrigé, la nouvelle Beta devrait corrigé ton soucis

je te laisse valider avant de publier en stable

Ok, je te reviens vendredi ou samedi :slight_smile:

Merci
Anthony

Hello

Alors c’est ok je valide, j’ai fait les tests annulation attendue et arrosage attendu.

Merci
Anthony

Annulation attendue :

DEMARRAGE DE L'ARROSAGE : [Aucun][test] test
[2022-09-16 08:40:07][DEBUG] :    > check_start_arrosage : [Aucun][test] test - Vérification des "annulateurs" de démarrage de l arrosage...
[2022-09-16 08:40:07][DEBUG] :     > start_arrosage - annuleur de start: [Aucun][test] test - condition  : not (#3868# matches("/1sur2/"))
[2022-09-16 08:40:07][DEBUG] :     > start_arrosage - annuleur de start : [Aucun][test] test resultat : 1
[2022-09-16 08:40:07][DEBUG] :    ====> start_arrosage - annuleur de start: [Aucun][test] test > Annulation START !```

Arrosage attendu

DEMARRAGE DE L’ARROSAGE : [Aucun][test] test
[2022-09-16 08:42:06][DEBUG] : > check_start_arrosage : [Aucun][test] test - Vérification des « annulateurs » de démarrage de l arrosage…
[2022-09-16 08:42:06][DEBUG] : > start_arrosage - annuleur de start: [Aucun][test] test - condition : not (#3868# matches("/1sur2test/"))
[2022-09-16 08:42:06][DEBUG] : > start_arrosage - annuleur de start : [Aucun][test] test resultat :
[2022-09-16 08:42:06][DEBUG] : > check_start_arrosage : [Aucun][test] test - Lancements des commandes de démarrage de l arrosage…
[2022-09-16 08:42:06][DEBUG] : > start_arrosage - execution de la commande : [Aucun][test] test > #48#
[2022-09-16 08:42:06][DEBUG] : > exec_comande : #48#```

Top, merci du retour