Capteur de lumière et scénario

Le problème vient de ton déclencheur. Ca reste le capteur de luminosité. Donc tant qu’il n’a pas renvoyé de valeur, le scénario se déclenchera pas, même à 23h30. Et il peut mettre un certain moment à renvoyer son info, surtout si la luminosité est stable comme en pleine nuit.

Rajoute un déclencheur programmé à 23h31 :wink:

1 « J'aime »

Ça simplifie les choses. Si on résume :

  • Scénario 1 : on allume la lumière si la lumière est éteinte et si la luminosité est faible (< 50 lux) seulement entre 7h00 et 23h30

  • Scénario 2 : on éteint la lumière si la lumière est allumée après 23h30 (entre 23h30 et 7h00) ou si la lumière est allumée et si la luminosité est forte (> 100 lux) entre 7h00 et 23h30

  • Déclencheur 1 : Lumiere == 0 ET Luminosite < 50 + Programmation tous les jours à 7h00

  • Déclencheur 2 : Lumiere == 1 ET Luminosite >100 + Programmation tous les jours à 23h30

Si le capteur de luminosité est dans la même pièce que la lampe, il faut rajouter de l’hystérésis sur la luminosité. Sinon, ça risque de de clignoter. Explication, la luminosité est à 80 lux, le scénario allume la lumière. Avec la lumière allumée, la luminosité passe à 110 lux, et hop le scenario éteint de nouveau la lumière. Mais comme la luminosité repasse en dessous des 100 lux, le scénario rallume.

Il faut mettre 2 seuils différents :

  • 1 seuil à < X-Y/2 lux pour allumer
  • 1 seuil à > X+Y/2 lux pour éteindre
    X correspond au seuil de luminosité voulu de 100 lux et Y à la luminosité apportée par la lampe + 5 ou 10 lux de marge

Ou plus simple :

  • 1 seuil à < X lux pour allumer
  • 1 seuil à > X+Y lux pour éteindre
    X correspond à un seuil de luminosité min (par exemple 50 lux) et Y à la luminosité apportée par la lampe + 5 ou 10 lux de marge

Exemple chez moi dans un couloir sombre, en milieu de journée, la luminosité va monter à 40 lux. A 40 lux, j’y vois clair, donc pas besoin d’allumer. De plus, le capteur est à 50 cm de la lampe. Lorsque la lampe s’allume, la luminosité monte de 80 lux. Comment faire ? Et bien j’allume en dessous de 5 lux et j’éteins au-dessus de 90+5 lux. Si un matin, la luminosité est à 20 lux, le scénario va allumer, la luminosité dépasse les 95 lux puis 1 ou 2 secondes après, le scénario va éteindre car c’est finalement trop lumineux (20+80=100>95). La luminosité redescend à 20 lux, mais le scénario ne rallumera plus la lumière ensuite car il considère qu’il fait jour. Il va falloir attendre que la luminosité redescende à 5 lux pour allumer, c’est à dire le soir.

Pour simplifier la maintenance de tout ça, il est possible de gérer la luminosité à part avec un virtuel Clair/Sombre comme ceci
image

Même idée pour les horaires, c’est finalement un simple mode Jour à 7h00 et Nuit à 23h30.
image
Ainsi, c’est moins prise de tête pour gérer l’éclairage en fonction de 3 états binaires : du Mode Jour/Nuit, de la Luminosité Claire/Sombre et de l’État de la lumière. Ça permet de déboguer et surtout simuler les cas plus facilement sans devoir attendre la bonne heure ou la bonne luminosité.

Dernier point à méditer : Que se passe-t-il lorsque la box plante à 4h du mat’ (avant 7h) et que l’on redémarre Jeedom à 9h (après 7h) ? Est-ce tous ces états rentrent dans le bon ordre ? Et si oui au bout de combien de temps après le redémarrage ?

1 « J'aime »

Bonjour,
Pas eu une minute à moi aujourd’hui, il est 22h40, juste vous remercier pour vos réponses. Je regarde ça demain… là dodo :yawning_face:

1 « J'aime »

Bonjour,

Finalement je n’ai pas eu le temps de remettre les doigts dans Jeedom de la semaine.

@loustic03 et @bipbip4149
J’ai repris vos messages, l’idée simple et efficace d’ajouter un bloc éteignant les lumières à 23h31 me plait bien. Voici mon scénario modifié, ais-je bien retranscris votre idée ?

@Domatizer
Merci pour ton message ultra détaillé. Je trouve l’idée et sa mise en œuvre excellente !
Peux-tu ajouter une copie écran du scénario que tu as associé aux 3 virtuels / états binaires, que tu as créé STP ? (si c’est possible bien sur). Je pense m’inspirer de ton travail pour une v2.

Bonjour, si ton déclencheur reste la luminosité, tu peut simplifier ton scénario :
Ajoute une programmation et modifie ton déclencheur pour qu’il s’execute que lorsque la luminosité est en dessous de 50

Puis le scénario :

A 23h30 tes lampes passeront a off.

1 « J'aime »

Bonjour,

Ce n’est pas un bloc SI qu’il faut pour couper, mais un bloc A.
A : 2330
Vos actions de off
Comme cela, ce passage à OFF aura lieu à 2330 au 1er lancement du scénario.

1 « J'aime »

Hello,
Comme le dit @Fabrice il faut un bloc A pour éteindre.
Par contre ton scénario ne va pas forcément fonctionné systématiquement avec ce capteur car il à tendance à remonter l’info lux quand il à envi mais ce mets à jour obligatoirement quand le capteur de présence ce déclenche.
Chez moi j’utilise un capteur sur wemos qui envoie l’info toutes les 10 minutes.

1 « J'aime »

Pour gérer les éclairages, j’ai tout décomposé la logique séquentielle en plein de petits scénarios sinon je trouve que c’est trop compliqué.

Ma règle principale : 1 scénario pour activer un état et 1 scénario pour désactiver cet état car ça peut vite être un cauchemar de vouloir faire tout dans un seul. Les conditions pour désactiver ne sont forcément opposées aux conditions pour activer. Je préfère bien séparer les déclencheurs des 2 scénarios.

Mode Jour/Nuit
image

Le changement Jour/Nuit correspond aux horaires de lever et coucher du soleil.
Remarque, on peut changer à la main le mode pour faire des simulations.

  • Scénario Jour Nuit

Tous les jours à 3h07 du mat’ (le scénario ne lance qu’une fois par nuit)
image

Les horaires de lever et coucher du soleil sont mis à jour. Il se base le plugin heliotrope.
Le scénario programme les changements Jour et Nuit de la journée qui vient.

@DamDam44 c’est plus simple tu mets directement les horaires 7h00 et 23h30 comme déclencheur. Tu peux faire 1 scénario simple

  • tous les jours à 7h00 et à 23h30 et au redémarrage de Jeedom, activation du mode Jour si l’heure est entre 7h et 23h30 et activation du mode Nuit sinon.

Luminosité
image
Remarque, on peut changer à la main le mode pour faire des simulations.

Lumière
image
image
Le widget est tronqué car je fonctionne par options : l’éclairage d’une pièce dépend du mouvement de porte (ouverture), de la présence, du soleil (jour/nuit), de la luminosité (clair/sombre), de mon sommeil (dodo/réveil) et un jour peut-être du volet (ouvert/fermé) :smiley:

Exemple : l’option Luminosite permet d’activer ou désactiver l’allumage en fonction de la luminosité sans « casser » le scénario. Si un capteur est HS, on désactive facilement l’option pour ne plus utiliser l’information de luminosité.

Pour simplifier et mieux correspondre au sujet de cette page, j’ai juste gardé les options Soleil et Luminosite dans les scénarios qui suivent.

  • Scénario Allumer



    Avec les options Soleil et Luminosite activées, on allume seulement si la lumière éteinte et s’il fait nuit ou s’il fait jour mais que la luminosité est faible. Sans l’option Luminosite, on allume si la lumière est éteinte seulement la nuit. Sans l’option Soleil, on allume si la lumière est éteinte jour et nuit (lorsque le scénario est aussi déclenché par du mouvement, par exemple).

  • Scénario Eteindre


    Ici, par exemple, je n’utilise pas le mode Soleil = Jour pour l’extinction des lumières intérieures. En effet, ce n’est pas parce qu’il fait jour dehors, qu’il fait aussi jour dedans. Par exemple, les volets peuvent être fermés au lever du soleil (dans mon cas, Jeedom ne connais pas l’état des volets).

    On éteint seulement si la luminosité est Clair pour être sûr de ne pas se retrouver dans le noir.

Voilà, des petits scénarios simples et efficaces qui ne s’exécutent que le stricte minimum de fois (et non pas à chaque nouvelle valeur de luminosité)

Dans ton cas @DamDam44, il faudra adapter un peu car tu veux allumer si la lumière éteinte en journée (entre 7h et 23h30) mais que la luminosité est faible et éteindre la nuit à 23h30 si la lumière est allumée.

De base, j’allume la lumière que lorsqu’il fait nuit (Option Soleil activée) pour les pièces avec fenêtre et jour et nuit (Option Soleil désactivée) pour les pièces sans fenêtres. Ensuite j’ai rajouté l’option Sommeil pour éviter que dans certaines pièces la lumière ne s’allume toute seule la nuit, généralement, c’est une veilleuse qui prend le relais.

Ça, c’est cool si la luminosité se met à jour avec le capteur de mouvement. En effet, je n’ai pas parlé des problèmes de remontées des valeurs de luminosité. Avec l’œil de Fibaro, ce n’est pas le cas, le souci arrive l’été lorsqu’on se couche avant le soleil. Lorsqu’on ferme les volets, si le changement de luminosité n’est pas suffisamment important, il n’y a pas de remontée de valeur de luminosité. Il faut attendre la prochaine remontée de valeur envoyée à intervalle régulier toutes les heures (je vais devoir diminuer ce temps, mais pour la nuit les rapports trop fréquents sont inutiles). Et durant cette période, la luminosité est Clair (et il fait aussi toujours Jour dehors) donc la lumière ne s’allume pas et on (Madame qui ne veut pas chercher à comprendre ces subtilités) est dans le noir !

Faudra que je fasse une présentation de mon éclairage automatique un de ces jours…

1 « J'aime »

Bonsoir,

Merci pour vos réponses.

Dans un 1er temps je me suis inspiré des informations qui me paraissaient les plus accessibles (pour moi). J’ai, sans honte, repris les éléments du message de @Phpvarious

image
Une question en passant, je ne comprends pas à quoi correspond le chiffre « 30 23*** » ?

J’ai continué de même pour le reste du scénario, et j’ai ajouté un « bloc A » à la fin comme indiqué par @Fabrice (l’heure de 22h41 m’a permis de tester sans attendre 23h30).

Pour l’allumage ça fonctionne parfaitement, dés que la luminosité de l’entrée tombe en-dessous de 50 Lux, les 3 lampes du salon s’allument, nickel :+1:

En revanche, pas d’extinction à l’heure indiqué. J’imagine que mon « bloc A » est correctement composé mais je pense qu’il est mal positionné. Je suis preneur de vos avis.

Ceci déclenche le scénario tous les jours à 23h30.

Tu as bien rajouté la programmation à 23h30 ? image

Avec la programmation à 23h30, tu peux te passer du bloc A 22h41 (heure pour faire le test) puisqu’à 23h30, le scénario va s’exécuter et comme 23h30 > 22h30, ce sont les actions du bloc SINON qui vont êtes lancées pour éteindre.

Attention, plusieurs méthodes ont été données plus haut, il ne faut pas les mélanger.

  • Soit tu programmes le scénario à l’aide d’un déclencheur à 23h30 pour qu’il se déclenche à 23h30 et effectue l’extinction avec la partie SINON du test
  • Soit tu ajoutes un bloc A (23h30) pour que le scénario programme lui-même l’extinction à 23h30 lors de sa première exécution.

Dans le scénario, tu peux garder aussi la condition sur la luminosité < 50 dans le test. Ainsi, le scénario peut être exécuté manuellement n’importe quand, il lancera toujours les bonnes actions.

Remarque, l’extinction ne se fait qu’à 23h30. Si la luminosité remonte au dessus de 50 lux en journée (entre 7h30 et 23h30), il n’y aura pas d’extinction si tu gardes la condition <50 dans le déclencheur. En effet, s’il y a un changement de luminosité < 50 lux à 8h, ça s’allume pour toute la journée jusqu’à 23h30. Je ne sais pas si c’est le comportement voulu.

Bonjour.
Le code que j’ai posté pour ma part fera une extinction que lorsque ton capteur déclenchera le scenario après 22h30. donc si tu veut réellement une extinction a 22h30 pétante :
supprime déjà le BlocA que tu as créer, et ensuite rajoute un déclencheur programmé a 22h30.

Il est possible que ce cron ne s’exécute pas (pas testé) mais je vois qu’il n’est pas au format attendu : « 30 22 * * * » dans le tiens il y a pas d’espaces entre les *. Pour ne pas avoir d’erreur, passe par l’aide intégrée a Jeedom :

Effectivement, Domatizer a raison :
repart sur ce scénario pour résoudre ce problème:


C’est tout simplement que vous avez mis des () dans le bloc A (et ce n’est pas ce que je vous ai conseillé).

A : 2241

@Phpvarious :+1:

J’oubliais aussi que si à 7h30, la luminosité est déjà < 50 (supposons un précédent changement à 6h50), et bien pas de déclenchement non plus du scénario, il faudra attendre le prochain changement de luminosité à 8h par exemple. Donc, il faudrait rajouter en plus une programmation à 7h30.

Autre détail, si le scénario se déclenche à 23h30 pour l’extinction, est-ce que l’heure de 23h30 est comprise entre 7h30 et 23h30 par la fonction time_between ? Si oui, alors il faudrait mettre 23h29 dans le time_between sinon pas d’extinction à 23h30. Et que se passerait-il entre 23h29 et 23h30 ? Ok je sors :laughing:

Encore une réflexion, si la luminosité fait du yoyo autour des 50 lux, ça va s’allumer et s’éteindre. Ceci dépend de la fréquence des rapports de luminosité et/ou du seuil de déclenchement des rapports de luminosité. Est-ce gênant ? Si oui, il faut rajouter de l’hystérésis en créant 2 seuils de luminosité : un seuil bas pour allumer et un seuil haut pour éteindre (voir mes précédents posts plus haut) et/ou augmenter le seuil de déclenchement des rapports de luminosité à 40 lux par exemple.

Bonsoir,
Je rejoins iPapy a ce sujet :

Prend soin de bien placer ton détecteur (luminosité), comprend bien que si il est a distance trop faible de tes éclairages, ceux-ci interfèreront sur la valeur remontée.
Si Lum < 50 → allumage → donc Lux augmente ex: 60 → Extinction …
Ceci va créer une boucle et donc tes lumières vont faire que te s’éteindre et s’allumée.
De plus si j’ai bien compris tu utilise ce même capteur pour faire de la détection a ton entrée ! Allume-tu une lumière sur détection ? si oui, cette lampe aussi va interférer avec ton scénario, car elle sera en visu direct avec le capteur de luminosité.

Mise a part les situations citées ci-dessus, voici une autre solution qui devrait regrouper un peu toute les idées apportées a ce Post :
1er Scénario qu’on va appeler « Luminosité » :

Sur conseil de Domatizer, je suis parti sur un principe d’hystérésis

2ème Scénario qu’on vas appeler Chef :

Pour info ce scénario Active et Lance le scénario « Luminosité » a 7H30.
Il va aussi désactivé et éteindre les lampes a 23h30.


Pour répondre a ta question, non l’heure ne sera pas comprise dedans, pour résumé un time_between fait a peut prêt la même fonction que SI (#time# > 7h30) && (#time# < 23h30).

2 « J'aime »

Bonjour,

Pour être précis c’est : SI (#time# >= 7h30) && (#time# < 23h30). L’heure de début est incluse, l’heure de fin exclue ([start:end[)

2 « J'aime »

Bonjour,

Un petit mot pour vous dire que le sujet reste d’actualité mais que je manque cruellement de temps actuellement pour m’en occuper.

Rapidement, ça fonctionne mais je touche du doigt la réalité de l’hystérésis (mon capteur est pourtant plutôt bien placé = normalement pas pollué par les variation de lumière lié à l’allumage/extinction des lumières).

J’espère pouvoir trouver un peu de temps bientôt pour me remettre dedans. Je vous tiens au courant évidemment.