C’est l’hiver, je me remets doucement sur les scenarios
Ce matin j’ai x2 questions :
Syntaxe d’écriture :
J’ai envie d’allumer une lumière d’ambiance le matin.
Je veux que le scenario évalue les jours de la semaine, puis qu’il vérifie la présence de l’un ou de l’autre (et que ça marche pour un(e) seul(e) présent(e), ou pour les x2 aussi en meme temps…), pour ensuite dérouler.
Pour l’instant j’ai rédigé de cette façon :
(#sjour# not in ["Mercredi", "Samedi", "Dimanche"]) && #[Maison][Présence UNTEL][Présence]# == 1 OR #[Maison][Présence UNETEL][Présence]# == 1
Est-ce suffisant, que se passe-t-il si les 2 sont présents ?
Le scenario considèrera-t-il que le fait d’etre les 2 à « 1 » alors cela ne remplit pas la condition UNTEL=1 ou UNETEL=1 ?
Imbrication des conditions :
Une question sur la façon de positionner graphiquement le bloc de l’action : j’aimerai déclencher l’action à 6h20.
Faut-il glisser le bloc « juste après », comme ici :
Je ferais ça totalement autrement.
Je déclencherais tous les jours avant tes heures d’exécution et je testerais le jours.
Si c’est un des bons jours, j’enchainerais par 2 blocs A qui exécuteraient les actions souhaitées.
Inutile de tester l’heure.
Pour ton test, si tu mets un && entre les 2 conditions, il faut que les 2 conditions soient réunies pour que le test soit vrai.
Si une des 2 conditions ou les 2 sont fausses alors le test est faux dans sa globalité
Merci @mich0111 mais pardon, je ne comprends pas ?
Merci pour la précision !
EDIT:
C’est effectivement ce que je fais, à 5h30 je déclenche le scenario
C’est uniquement l’action que je veux déclencher à 6h20 (je me suis peut-être mal exprimé), et je veux conserver la possibilité de « doser » ou modifier l’heure facilement via le bloc « A » pour faire des essais « concrets en situation » ces prochains jours…
Pour la seconde partie de la condition après le && qui gere la présence,
un conseil pour que cela fonctionne avec l’un ou l’autre présent, ou les x2 présents en même temps ?
Pour l’instant j’ai ceci :
#[Maison][Présence UNTEL][Présence]# == 1 OR #[Maison][Présence UNETEL][Présence]# == 1
Si je ne me trompe pas, il faut que l’un ou l’autre soit présent pour que le scenario valide la condition.
Est-ce que d’avoir les x2 présents ne gênera pas non plus cette interprétation ? En gros le fait que les 2 conditions soient remplies valide-il aussi la condition ?
En d’autres termes, et sans rien ajouter d’autre, est-ce que le scenario est suffisamment « paresseux » (!) pour que le fait d’avoir x1 seule personne présente, ou les x2 en même temps, fonctionne avec cette syntaxe ?
Dans ma rédaction, le « OR » est-il exclusif ? (Un peu comme le « && »…).
Merci !
PS: je me réponds sur une partie : dans la doc, c’est le « xor » ou « XOR » qui est le « OU exclusif ». J’en déduis donc que le « OR » = « OU/ET » ? (ce qui m’arrangerait dans mon cas…).
salut,
c’est l’un ou l’autre ou les deux oui.
par contre il y a une erreur de syntaxe qui peut être très impactante: il faut toujours mettre les OU entre parenthèse lorsque tu combines avec un ET
donc ceci ne va pas donner le résultat que tu attends (probablement que dès que PRESENT_2 sera vrai l’ensemble sera vrai)
JOUR && PRESENT_1 || PRESENT_2
tu dois écrire
JOUR && (PRESENT_1 || PRESENT_2)
donc si je reprend ton test:
(#sjour# not in ["Mercredi", "Samedi", "Dimanche"]) && (#[Maison][Présence UNTEL][Présence]# == 1 OR #[Maison][Présence UNETEL][Présence]# == 1)
Attention, le sujet a été marqué comme résolu ! On n’est pas sensé poursuivre la discussion…
Pour répondre sur le point 2 :
Pas bon…
L’allumage de la lampe d’ambiance ne se déclenchera pas à 06h20 comme attendu, mais immédiatement après avoir lancé la programmation à 06h20 du bloc d’instruction dans le bloc A…FAIRE où il n’y a…rien.
Soit à 05h30 si j’ai bien suivi. Ça va râler…
Pardon mais pas assez clair pour moi je pense
j’ai besoin d’un peu de pédagogie sur les scenario.
je n’y vais pas souvent et parfois je me fais des noeux au cerveau, peut-être pour rien…
Le niveau 2 avec les or et les and c’est de savoir/comprendre qu’une évaluation va s’arrêter dès que ce n’est plus utile de continuer (c’est vrai en php mais ce n’est pas le cas dans tous les langages).
J’explique:
un test avec un or, la seconde opérande ne sera pas évaluée si la première est vrai car quelque soit le résultat, le tout sera vrai
à l’inverse, avec un and, on s’arrête si la première est fausse
Je n’ai pas l’esprit de synthèse comme toi. Je n’arrive pas à traduire ton schema texte en interface graphique dito mes captures d’écran
Ecrit comme tu l’as fait, je trouve que c’est « conceptuel », un concept avec lequel je suis en accord d’ailleurs car c’est ce que je souhaite faire que tu as très bien résumé.
Mais trouver la subtilité pour « glisser le bloc de couleur au bon endroit » n’était pas clair pour moi…
Pas assez à l’aise avec l’outil scenario de Jeedom.
Je ne trouvais pas déconnant « graphiquement » à nouveau de glisser le bloc ACTION juste après celui de A, car graphiquement cela fait sens avec un déroulé « en cascade » et décallés de la meme façon par rapport au bloc SI… Mais en le mettant à l’intérieur de A, c’est uniquement de cette façon qu’il sera interprété (et me donnera la paix du couple au passage )
Donc, avec ton esprit de synthèse et 3 lignes tu poses bien la réponse, le bon « schema conceptuel du scenario », mais Daniel va plus loin en se mettant à mon niveau et m’expliquant les différences entre tel ou tel disposition « graphique » de l’outil Jeedom.
Vous avez raison tous les 2, mais moi je comprends mieux quand on m’explique d’une certaine façon Ou quand on m’explique longtemps, comme tu préfères