Je suis en train de paramétrer le plugin Gestion volet (officel Sunshutter) et j’ai un problème d’expression sur une condition.
Je souhaite ouvrir mon volet lorsqu’il fait jour (au lever du soleil [jour nuit][Etat] passe à 1) à condition qu’il soit entre 6h45 et 9h00 du lundi au vendredi.
J’ai donc écris ça :
#[Maison][Jour Nuit][Etat]# == 1 && time_between(#time#,645,900) == 1 && #njour# >= 1 && #njour# <= 5
J’ai testé mes conditions une par une pour voir laquelle n’est pas prise en compte.
#njour# >= 1 && #njour# <= 5. On est vendredi, cette condition est ok,
Je la modifie pour vérif #njour# >= 1 && #njour# <= 3. On est toujours vendredi, cette condition est non ok
idem pour
time_between(#time#,645,900) == 1 il est 11h00, condition Non OK
time_between(#time#,645,1200) == 0 il est 11h00, condition OK
Par contre pour
#[Maison][Jour Nuit][Etat]# == 1 il fait jour, condition OK
#[Maison][Jour Nuit][Etat]# == 0 il fait jour, condition toujours OK
#[Maison][Jour Nuit][Etat]# est un virtuel mis a jour au lever et coucher du soleil via un scénario
Donc le plugin me valide la condition quel que soit la valeur du virtuel.
Par contre il le prend bien en compte lorsque la valeur du virtuel change.
Ce matin le virtuel est passé de 0 à 1 au lever du soleil et le volet c’est ouvert.
Visiblement je ne passionne pas les foules avec mon problème…
J’avance de mon côté.
En fait j’avais un problème incompréhensible sur mon virtuel.
Quelle que soit la valeur du virtuel Sunshutter considérait que la condition était ok. J’ai recréé un virtuel identique et là magie Sunshutter voit bien les changements d’état et les prend en compte
… MAIS…
Encore un truc incompréhensible.
Sur mon positionnement j’ai 3 conditions :
Si je teste chaque condition indépendamment Sunshutter réagit correctement en fonction des valeurs… lorsque je réunis les 3 conditions Sunshutter, là, valide toujours les conditions quelles que soient les valeurs…
Au lieu de mettre votre condition à rallonge dans le plugin volet, la mettre dans un virtuel et appeler cette information de virtuel dans le plugin volets.
Supprimez le == pour voir ce que donne cette info.
Je pense qu’elle ne donne rien. Car elle reste nommée.
Normalement cela aurait du faire, par exemple : 0 == 1 false ou 1 == 1 true
Juste pour voir, refaites un virtuel identique, sans se tromper au moment de choisir le type (info/binaire)
Et tester dans le testeur d’expression avec le nouveau virtuel.
Le problème est « connu » quand on se trompe une fois dans le type de commande, le virtuel peut déconner, mais pas tout le temps.
Donc pas de bug dans le programme en tag.