Déclenchement 2 conditions

Bonjour, J’ai vu plusieurs sujets pour déclencher mon scénario avec le coucher du soleil…
Moi j’aurai souhaité, lancer un scénario tous les jours à 19h30 où, si l’heure de coucher du soleil est inférieur à 19h30 à l’heure de coucher du soleil…
Je l’ai écris comme cela

30 19 * * * OU #[Maison][Coucher du soleil]#

Mais cela ne fonctionne pas…

Peux tu mettre une copie d’ecran ? La partie déclenchement programmé et en fonction d’une valeur sont à 2 endroits différents

Bonjour.

Ça, on ne peut pas le faire

  • En revanche, il y a plus simple.

Tous le jours, un scénario se déclenche à 04h00
Et depuis lui, vous faites vos si

Et de toute façon, un ou ça marchera jamais … ça va toujours déclencher le scénario 2 fois.
Il faut récupérer uniquement le minimum des 2 horaires

Ou utiliser une variable booléenne
Tu mets les 2 déclencheurs (19h30, coucher du soleil) en programmé sur ton scénario.
Tu testes cette variable au début.
Si faux, tu la passes.à vrai et tu fais ce que tu as à faire.
Si vrai, tu la passes à faux et tu sors.

Ok donc pour le déclencheur je met

30 4 * * *

Après pour le SI par contre…

1ère condiction si l’heure du coucher est avant 19h30…

Et pour le 2ème si je met à la suite du scénario et je colle la suite? on peut pas mettre un OU qq part?

Tu n’aurais pas une capture avec un scénario tout simple? :roll_eyes:

Je veux bien mais il fait que j’allume mon PC pour l’écrire.
C’est pourtant très simple.
Un scénario à 2 déclencheurs programmés :

  • 19h30
  • coucher du soleil

Le début de ton scénario :
SI variable(toto)
ALORS
variable → toto → 0 ( c’est-à-dire la passer à faux (déjà exécuté))
SINON
variable → toto → 1 (c’est-à-dire la passer à vrai (pas encore exécuté)).
Puis, dans le même SINON, le code que tu veux exécuter.

De la sorte, seul le premier déclencheur de scénario exécute ta séquence, l’autre remet le booléen à faux.
Ne pas oublier d’initialiser la variable une 1ère fois à faux avant le tout premier la lancement du scénario afin qu’elle ait une valeur cohérente.

Ou simplement désactiver le scénario après l’exécution et le réactiver le matin ainsi pas besoin de variable ni de tester s’il a déjà été exécuté.

Salut,
question bête :
On peut mettre en déclencheur une heure contenue dans une variable?

J’aurai dis programmation d’un bloc A dans un scénario en amont.

Hello
Voila ce que j’ai :

$Heure = $scenario->getData('Heure_Coucher');
if ($Heure <= 1930) { $Heure = 1930; }
$scenario->setData('H_Scenario_Volets',$Heure); # Scénario

et je programme un A variable(H_Scenario_Volets)

Exact, mais dans ce cas il lui faut un scénario d’initialisation journalière s’il n’en a pas.

A tester.
Pourquoi pas, tant qu’il n’y a pas de calcul.

Pareil pour réinitialiser la variable non ?

Non, pas nécessairement.
Le même scénario fait changer l’état de la variable pour s’exécuter une fois sur deux.
Il suffit d’initialiser cette variable au tout début à false et ensuite ça roule.
Il n’en demeure pas moins que la solution de désactiver/réactiver le scénario est aussi une bonne solution, surtout s’il a un scénario d’initialisation journalière. J’utilise cette méthode également.

Merci pour vos différentes réponses…

J’ai crée un scénario qui se lance à 4h pour la gestion de mes volets roulants déjà… Il s’ouvre et se ferme en fonction du lever et du coucher du soleil


J’avoue que je sèche à chaque fois quand il faut gérer des variables…
Hormis recopier « bêtement » ce que je trouve sur le forum…

Voici un scénario possible :

Une fois créé, tu lances une exécution manuelle (le bouton en haut). Ca va te créer la variable Toto (si tu sais faire, tu peux la créer manuellement en faisant Outils->Variables).
Justement, tu fais Outils->Variables, tu repères la variable Toto ou tout autre nom que tu auras choisi.
Tu l’initialises à 0 sans oublier d’enregistrer la valeur de la variable par la coche sur la ligne.
Tu peux vérifier que la valeur est bien enregistrée en sortie de l’outil et y rentrer à nouveau.
Une fois ça fait, il n’y a plus qu’à attendre, c’est fini.

1 « J'aime »

My 2 cents :

A 3h30, ca lance le scénario :

Si l’heure du coucher calculé (+45 minutes, sinon c’est vraiment tot en hiver) est > à 21h45, on ferme à 21h45, sinon, on ferme à l’heure du coucher du soleil.
Les actions sur les volets sont gérés dans 2 autres scénario (fermer tout ou ouvrir tout)

Si ca peut aider…

 Nom du scénario : Fermeture des volets avec le soleil
- Objet parent : Volets
- Mode du scénario : schedule
    - Programmation : 30 3 * * *

Fermeture automatique des volets 45 minutes après l'heure du coucher du soleil OU à 21h45, au 1er des 2 termes échus

    
    SI time_op(#[Paramétrage][Ephémérides][coucher_soleil]#,+45) < 2145
    ALORS
         
        A time_op(#[Paramétrage][Ephémérides][coucher_soleil]#,+45)
        FAIRE
         (scenario) start de [Volets][Volets][Fermer tous les volets]
    SINON
         
        A 2145
        FAIRE
         (scenario) start de [Volets][Volets][Fermer tous les volets]

Salut,

Tu peux encore optimiser en virant le bloc SI et en éliminant les répétitions

        A min(time_op(#[Paramétrage][Ephémérides][coucher_soleil]#,+45),2145)
        FAIRE
         (scenario) start de [Volets][Volets][Fermer tous les volets]
1 « J'aime »

Bon impec… Merci pour les infos…
Je vais tester et je reviens vers vous.