Trigger, un déclenchement par jour

Hello,

Dans un soucis d’optimisation, je souhaite ajuster au plus fin les conditions de déclenchement des scénarios (éviter les taches de fond multiples, les temps d’attente trop long ou les déclenchements inutiles).

Je suis bloqué sur ce scénario matinal:

  • quand je passe devant un capteur de présence, j’ouvre un volet et j’allume une lumière (ça c’est bon)
  • Je souhaite que ce scénario ne s’exécute qu’une fois par jour (inutile de le déclencher à chaque mouvement détecté)

Je configure l’heure de réveil dans jeedom, et j’ai créé mon scénario avec un bloc « wait » qui attends un mouvement pour ouvrir mon volet et allumer ma lumière.
Le problème vient du trigger : je voudrais que le scénario se déclenche à l’heure de réveil configurée.

J’ai essayé le mode provoqué avec le paramètre suivant, sans succès; je ne dois pas être loin, probablement une syntaxe particulière ?:

#[Maison][Reveil][Heure Reveil]# == #time#

Une autre piste serait de déclencher le scénario sur détection de mouvement, mais une seule fois par jour.

Des pistes ?

Salut,

Evite le bloc wait ici, justement si tu veux limiter les ressources…
Au pire cela sera bien plus efficace de lancer 100 fois ton scénatio avec un premier test qui l’arrete que de laisser un wait pendant 2h…

Sinon pour solution: a l’heure du réveil tu acives le scénario et quand il a été executé, il s’auto-désactive.
Et le trigger de ton scénario c’est ton capteur de mouvement.

Tel que c’est écrit ton déclencheur va lancer ton scénario à tout moment.
Tu lui demandes de le lancer à l’heure actuelle.
Si tu veux que ça marche, tu dois figer une heure de test de ton déclencheur

Non, il va se déclencher uniquement à l’heure ou [Heure de réveil] est modifiée.
Et si cette heure correspond à l’heure actuelle, alors il s’exécutera.

Juste, je ne voyais qu’une partie sur l’écran de mon smartphone.

J’y ai pensé, du coup je dois faire 2 scénarios.
L’idée était de tout faire en un seul (je suis pointilleux je sais :roll_eyes:)

Je pige pas pourquoi le trigger #[Maison][Reveil][Heure Reveil]# == #time# ne déclenche pas. Peut-on intégrer ce genre de tag dans les déclencheurs ? (#time# == 1628 ne donne rien non plus par exemple)

Comment le test de trigger est géré ? Sur évènement seulement ? le changement d’heure peut-il être considéré comme un évènnement ?

Plein de questions…

Edit :

Je retombe sur le même problème, je dois faire un scénario qui attends l’heure de réveil pour se déclencher…

/Edit

Je ne comprends pas un truc.
Si tu veux déclencher à ton heure de réveil, pourquoi ne mets-tu pas un déclencheur programmé à cette heure précisément ?

Pour moi Mips t’a donné la solution.
Un scénario que j’appelle Master qui active les autres scénario au petit matin.

Et ton scénario qui se désactive après avoir fait ce que tu veux…

1 « J'aime »

Je plussoie.
D’autant plus que ce « master » peut faire tout un tas d’actions d’initialisations journalières.

1 « J'aime »

bonjour j’ai le même scénario qui m’ouvre mon volet 1 fois dans la journée
assis toi :grinning:
voici l’événement
volet roulant avec 3 état
0 ouvert
1 fermée

(#[Cuisine][Motion Sensor Cuisine][Présence]# == 1 or #[Maison][Detecteur][WC]# == 1) and #[Volet Roulant][VR Cuisine][etat]# == 1 and #time#>0630 and min(#[Volet Roulant][VR Cuisine][etat]#,today) !=0 and #time#<variable(HeureCoucher)

pour la petite histoire c’est un volet rfxcom donc se scénario va lancé le scenario volet up (une boucle m’evitant de la reproduire dans différent scenario) que j’utilise des que je veux ouvrir se volet (widget compris) l’intérêt de la petite histoire c’est que le 1er scénario s’arrête avant le 2eme donc pour différente action (avec ou sans évaluation) ça va plus vite
6h31mn27 declenchement du scenario (idem arret)
6h31mn27 lancement du scenario2
6h31mn54 fin

avec organisation on s’y retrouve facilement

C’est l’idée en effet.
J’utilise cette méthode depuis longtemps et j’en suis content.
Je n’imagine pas non plus continuer de laisser des scénarios tourner alors qu’ils n’ont pas d’utilité.

Eh bien simplement parce-que l’heure de réveil change régulièrement, d’où l’idée de lier l’heure configurée avec le déclenchement du scénario.

Je suis en train de tester les triggers, et je ne comprend pas tout :

#[Maison][Reveil][Heure Reveil]#<=#time# && #[Chambre Parents][Chambre Parents Ampoule][Etat Luminosité]# != 0
====> quand les 2 conditions passent à « true », le scénario démarre correctement

#[Maison][Reveil][Heure Reveil]#<=#time#
====> quand la condition passe à « true », le scénario ne démarre pas

car l’heure n’est pas un déclencheur
il doit être impérativement une condition au déclencheur

time ne déclenche pas
lux chambre oui (lors de la remonté d’info)
lux + time = oui
si tu change l’heure du réveil + lux = oui

il faut dans toutes la lignes d’évaluation ( and, or) un événement qui déclenche

1 « J'aime »

Merci du tuyau, c’est bon à savoir.

J’avais écrit y’a un moment un bout de code permettant de modifier un déclencheur programmation d’un scénario (utilisé pour éteindre/allumer mon chauffage à un jour/heure précise à la demande).

Tu peux le ré-utiliser et l’adapter, pour pouvoir modifier chaque jour le trigger programmé de ton scenario.

$tags = $scenario->getTags();
$jour = $tags["#tagjour#"];
$mois = $tags["#tagmois#"];
$mois = str_replace(
    ['janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre'],
    ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'], $mois);
$heure = $tags["#tagheure#"];
$mode = $tags["#mode#"];

$fullDate=DateTime::createfromformat("j m H*i", $jour." ".$mois." ".$heure);

$scenario->setlog($fullDate->format('i H d m w Y'));
$o=scenario::byId(58);
$o->setSchedule($fullDate->format('i H d m w Y'));
$o->save();

A inclure dans une balise CODE d’un scenario. Le scenario prend en paramètre trois tags (« tagjour », « tagmois » et « tagheure »). Il transforme d’abord en numéro le « tag mois » donnée en toutes lettres, puis créer un objet date, récupère le scenario sur lequel on veut modifier le déclencheur, et le modifie. J’imagine que t’as compris le truc.

Avec ce bout de code, cela te permet de changer chaque jour le trigger programmation de ton scénario pour qu’il ne s’exécute qu’une seule fois. Mais ça fait assez usine à gaz pour pas grand chose…

1 « J'aime »

Merci pour les infos, je teste avec ton bout de code Dreaky :+1:

Bonjour,
j’ai lu et essayé de comprendre, mais je m’y perds…
J’ai un capteur de niveau qui me mesure la hauteur du sel de mon adoucisseur.
Je souhaite que lorsque cela est inférieur à 68, le scénario se déclenche et m’envoie un mail.
Jusque là, ça marche. Saus que je souhaiterai que ce mail ne soit envoyé qu’une fois par jour …Car là, pas le temps de remplir le sel qu)il se déclenche tout le temps…

Salut,

Si tu as un SI dans le scénario tu peux cocher les 2 flèches circulaires en début de ligne pour empêcher l’action de s’exécuter à nouveau si la condition est identique

Salut,

effectivement, en testant vite fait 9a à l’air de fonctionner.

Merci à toi…Rapide et efficace !!!