Scénario éclairage

Bonsoir

Je viens vers vous pour un petit peu d’aide sur un scénario d’éclairage.
Je dispose d’un lumière Xiaomi, d’un capteur d’ouverture et d’un capteur de mouvement.
Quand j’ouvre la porte j’éclaire l’ampoule et quand je la ferme cela éteint l’ampoule. ça c’est bon.

Par contre je veux ensuite que si il n’y a pas de mouvement depuis X minutes dans la pièce cela éteint la lumière.
Si la porte est restée ouverte alors c’est le capteur de mouvement qui éclaire la lumière.

Je pense que c’est un bloc Dans qu’il faut mettre mais je ne vois pas où exactement et ce que j’ai fait ne fonctionne pas c’est certain

Merci par avance

1 « J'aime »

Bonjour,
Un simple bloc DANS ne suffira pas.
Si tu te contentes que de ce bloc, en cas mouvement dans l’intervalle, alors qu’il faut conserver la lumière, elle s’éteindra quand même.
D’abord, il est nécessaire de savoir de quel type de lumière tu disposes pour savoir si l’extinction peut se gérer directement depuis l’ampoule ou s’il faut le faire par scénario.
Si ton ampoule sait gérer un time-out, pas besoin de scénario, seul l’allumage de l’ampoule sera activé par scénario.
Sinon, il faudra un logique où tu insères un booléen pour savoir si un mouvement a été détecté dans l’intervalle du DANS.

1 « J'aime »

Ah bien voilà pourquoi cela ne fonctionne pas alors je joue juste avec le bloc DANS depuis le début.

Mon ampoule est une Xiaomi Zigbee dans ce cas là donc elle s’allume et s’éteint toute seule.
Les capteurs sont mes déclencheurs.

Par contre j’ai un autre cas où mes ampoules ne sont pas commandable je passe pas un fibaro Dimmer 2.

Je veux bien voir les deux cas de figure pour bien comprendre le système

L’idée tu time-out est la suivante.
Dans le cas du dimmer, dans la configuration de celui-ci, il y a un paramètre qui indique au bout de combien de temps il y a extinction automatique.
Dans ton scénario, lorsque tu ouvres la porte ou qu’il y a détection de mouvement (un seul suffit), tu allumes la lampe en faisant un ON sur le dimmer et c’est tout.
Si rien ne se passe, c’est-à-dire pas de mouvement, au bout du temps programmé, le dimmer va éteindre la lampe. En revanche, si il y a détection, le scénario va relancer l’allumage et donc le time-out repart du début.
Dans le cas de l’ampoule zigbee, soit il y a le même paramètre auquel cas tu adoptes la même logique, soit tu crées un booléen, et dans ton scénario, avant le DANS, tu commences par tester le booléen, si oui alors remove_inat() pour supprimer le précédent DANS du CRON et tu retournes dans le DANS.
Ça devrait le faire comme ça

Alors je vais voir les paramètre des modules (je n’y pense jamais vraiment c’est agaçant).
Je regarde ensuite pour le booléen si j’ai tout compris :wink: et je mettrais à la correction du professeur en plus de la correction physique qui sera faite chez moi :rofl:

C’est gentil mais je ne suis pas sensible à la flagornerie.
:joy:
A bientôt

:innocent:

Bon je pense que je viens d’obtenir ce que je souhaite avec mon garage et ces deux portes et mon dimmer 2.

J’ai commencé le sujet du bouléen mais pour le moment je ne vois pas encore le principe de déclaration de booléen. je recherche des exemples pour mieux comprendre.
Je vais voir si j’ai ça dans la documentation jeedom aussi

Pour créer un booléen (ou une variable en général, un booléen n’étant qu’une variable ne pouvant prendre que 0 ou 1 comme valeur), il te suffit de l’utiliser dans ton scénario.
Si elle n’existe pas, le système la crée et exécute l’affectation sinon, il se contente de ne faire que l’affectation.
L’utilisation de ces variables se fait par l’utilisation des commandes de scénarios.
Pour les tests, c’est un peu différent, ça s’utilise comme ça pour une variable « toto » :
SI variable(toto)
ALORS cas vrai
SINON cas faux

Bonsoir @Fabrice,
Je ne suis pas sûr qu’il faille déjà clore le sujet.
Il est encore dans ses phases de test, il y a fort à parier qu’il aura besoin d’autres précisions.

1 « J'aime »

Alors je résume ce que j’ai produit ce matin avant de partir au boulot et que je vais contrôler ce soir.
Si Porte ouverte ou Mouvement
Alors je passe le booléen « Présence » à 1et j’allume la lumière
Sinon si le booléen « Présence » est à 0 alors remove_inat et dans X minutes je passe la lumière OFF

C’est l’histoire du booléen encore que je ne saisie pas complètement le sens et l’intérêt.
C’est Juste pour dire que je ne suis pas dans les conditions de mise en ON ?

Je crois que tu n’as pas tout à fait compris.
Le booléen va te servir, si dans la période des 1mn (du DANS) une personne est passé devant un détecteur, à ne pas éteindre la lumière.
Cela remplace la fonction time-out du dimmer.
Lorsque tu entres dans ton scénario, systématiquement, tu commences par tester ce booléen.
S’il est à true, alors ça veut dire que tu as allumé la lumière il y a moins d’une minute.
Dans ce cas, tu fais un remove_inat() pour supprimer la dernière instance du bloc DANS de ton scénario, ce qui aura pour effet de réinitialiser le timer de 1mn de ton scénario.
S’il est à false, alors ça veut dire que ta lumière était éteinte, donc tu l’allumes.
Dans les 2 cas, à la suite de ce test (hors du bloc SI ALORS SINON), tu retournes dans le bloc DANS.
Dans le.bloc, lorsqu’il va s’exécuter, tu commences par passer le.booleen à false puis tu éteins la lumière.
J’espère être clair.
A+

Pour faire court, quelque chose comme ça ou à peu près :

1 « J'aime »

Je n’ai pas eu le temps de regarder ce soir.
Je regarde demain pour adapter à ma situation et voir si je comprends le principe.

Sur le Dimmer c’est une minuterie dans les paramètres et donc pas tout à fait ce que je souhaite. Mais cela sécurise l’extinction si capteur défaillant.

J’ai fait ceci

Le dernier SI c’est pour si je ferme la porte cela éteint la lumière uniquement si la présence est pas active donc normalement je ne suis plus dedans donc.

A voir si sur le long terme cela fonctionne et si mon capteur de présence rayonne suffisamment pour jouer ce rôle.

J’aurais 2 remarques à faire.
La première, en l’état tu vas avoir un conflit entre le bloc DANS et le dernier SI. Si veux le faire comme ça, dans la mesure où ton bloc DANS précède le SI, si tu éteins, il te faut supprimer la dernière instance du bloc DANS par un remove_inat. Sinon, le mieux serait d’inclure le DANS dans la partie SINON du dernier bloc SI.
Deuxième remarque, à quoi sert d’avoir un détecteur d’ouverture et un détecteur de mouvement, il me semble que le seul détecteur de mouvement serait suffisant. A quoi sert d’allumer la lumière si tu ouvres la porte sans pénétrer dans la pièce?

Je vais voir la remarque pour les blocs.

Pour le cas d’usage c’est dans le cas où la porte ne serait pas fermée et que personne présent dans la pièce. Le capteur de mouvement est juste un moyen d’être sur qu’il y a personne et donc pour éviter de laisser la lumière toute la journée toute la nuit.

Ben justement, pourquoi ne pas utiliser QUE le détecteur de mouvement ?

Je ne trouve pas super fiable dans la pièce que j’ai.
Il m’en faudrait 2 pour bien cadriller la zone.

Je trouve plus fiable le déclencheur capteur d’ouverture de porte. À tort peut être.

Je fiabilise le scénario comme ça et je teste comme tu me le proposes aussi car je veux apprendre et voir d’autres choses que mes petites idées de départ.

Sauf que tu n’as pas besoin de quadriller toute la zone, l’entrée devrait suffire.

Sur le principe je suis d’accord mais je suis dans une cave et je peux passer du temps à mettre à jour ma cave à vin numérique, bricoler etc… et la pièce est longue de 7 à 8 mètres et en bout je ne détecte pas top top.

Ensuite j’ai les deux pour le moment d’installé donc autant l’utiliser aussi :slight_smile: