Bonjour à tous je rebondi sur un sujet qui a été clôturé, sur un petit bug dans l’utilisation de eqEnable().
fonction-eqenable-suivi-dune-autre-condition-non-interprete
Je réouvre un post pour documenter le problème si éventuellement un développeur souhaite jeter un œil à l’occasion.
Dans mon cas les conditions sont utilisées dans des scénarios avec la version 4.3.16 de Jeedom
Lorsque eqEnable() est suivi d’une autre condition, celle ci n’est pas bien interprétée (cf exemple ci dessous :
(eqEnable(#[CH1][THERMOSTAT_CH1]#) == 1) && (#[SALON][02012E02][bt1]# == 1)
Il suffit d’inverser les conditions pour que cela fonctionne :
(#[SALON][02012E02][bt1]# == 1) && (eqEnable(#[CH1][THERMOSTAT_CH1]#) == 1)
Le soucis est le même avec le format d’écriture suivant :
eqEnable(#[CH1][THERMOSTAT_CH1]#) ET #[SALON][02012E02][bt1]# == 1
En inversant les conditions celà fonctionne :
#[SALON][02012E02][bt1]# == 1 ET eqEnable(#[CH1][THERMOSTAT_CH1]#)
Bonne journée à tous,
Bonjour,
Il me semble que ce bug à été traité en Alpha :
Re :
J’ai quand même analysé un peu plus loin le problème,
Si un membre de l’équipe peu valider ma conclusion.
Ce problème intervient quand on utilise un Eqlogic et une Cmd dans la même chaine du testeur d’expression ou scénario, et ce dans un ordre bien précis.
Sa démarre avec la fonction fromHumanReadable($_input) de la class jeedom qui fait appel cmd::humanReadableToCmd($_input).
dans cette dernière un preg_match_all("/#\[(.*?)\]\[(.*?)\]\[(.*?)\]#/", $_input, $matches); semble aussi mat…
Elle n’est tous simplement pas encore déscendu en Stable.
Loic
Mars 26, 2023, 10:49
3
De plus la bonne syntaxe serait plus :
eqEnable(#[CH1][THERMOSTAT_CH1]#) == 1 && #[SALON][02012E02][bt1]# == 1
Bonjour @Loic , @Phpvarious
Ok c’est noté : vous avez identifiez le Problème en version Alpha,
Avez vous une idée de quand la correction sera en version stable ?
Pour information : @Loic
Voici ce que remonte le testeur d’expression selon l’ordre des conditions : (jeedom 4.3.17)
#[SALON][02012E02][bt1]# == 1 && eqEnable(#[CH1][THERMOSTAT_CH1]#) == 1
eqEnable(#[CH1][THERMOSTAT_CH1]#) == 1 && #[SALON][02012E02][bt1]# == 1
Bonne journée et merci encore pour vos retours
Loic
Avril 1, 2023, 9:30
5
Bonjour
Comme toujours chez jeedom jamais de date ça évite de décevoir si on arrive pas a les tenir