Syntaxe scénario

Bonjour,
Je revois d’anciens scénarios de mon installation et suis confronté à ce souci.

Mon scénario fonctionne bien dans la version simple

Qd je rajoute cette condition sur l’heure de la journée,
#[Entrée][Presence Entrée][Présence 23-0500]# == 1 && #time# > #time([Environement][Prévision Météo][Coucher du soleil])#

J’ai ce message d’erreur dans les logs

Je n’arrive pas à trouver la solution, avez vous une idée

Bonjour,

En effet, cette expression n’est pas bonne. Tu veux dire quoi ? Que le temps actuel est supérieur à l’heure du coucher du soleil ?

Si tu regardes ce que contient la commande #[Environement][Prévision Météo][Coucher du soleil]#, tu devrais voir qu’elle contient un format de type heureminute. Donc il suffit de comparer #time# à cette commande : #time# > #[Environement][Prévision Météo][Coucher du soleil]#

Merci, effectivement, je veux que si il est 19H00 (1900) alors la lumière s’allume si le coucher est à 18h45 (1845). J’avais débuté avec ta syntaxe mais le message est le même. Le fait d’ajouter cette condition, donne le message d’erreur

Bonjour,

Il faut utiliser la fonction time_op.

Exemple :
#time#>time_op(#sunset#,-40)

Ce qui veut dire : si l’heure actuelle est supérieure à l’heure du coucher de soleil - 40 minutes, alors…
Dans votre cas, je pense que vous pouvez remplacer #sunset# par #[Environement][Prévision Météo][Coucher du soleil]# (bien que les fonctions sunset et sunrise étant intégrés à Jeedom, c’est dommage de ne pas les utiliser…).

1 « J'aime »

Ce serait bien que tu envoies une capture d’écran de ceci aves les logs du scénario parce qu’il est certains que ça doit fonctionner. Donc tu avais du te tromper quelque part dans la syntaxe que tu pensais être la bonne.

1 « J'aime »

Il faudrait aussi montrer ton scénario pour voir la syntaxe et donc ce que tu as fait sinon ça ne sert à rien

Bonjour,
Voici la condition que j’utilise pour vérifier que l’instant présent est avant le lever (ou plus exactement l’aube civile) + 10 mn… pour enclencher un lever des volets :

  • #time#<time_op(#[Maison Extérieur][Home Héliotrope][Aube Civile]#,+10)

Espérant que ça puisse vous être utile, je vous souhaite une agréable fin de journée

C’est ce que je disais un peu plus haut… :wink:

Mais visiblement, ça ne doit pas être ça… :confused:

Merci, bien utile effectivement

Pour le moment il voulait basiquement que quand il rentre et qu’il est plus que l’heure du coucher du soleil, les lumières s’allument.

Il pourra bien sûr utiliser time_op si finalement il veut que ça se passe un peu avant ou un peu après le couche du soleil …
Il pourra en effet utiliser #sunset#

Mais là déjà il maintient qu’il a une erreur quand il utilise la condition SI #[Entrée][Presence Entrée][Présence 23-0500]# == 1 && #time# > #[Environement][Prévision Météo][Coucher du soleil]# alors bon … moi je veux bien mais j’aimerais déjà qu’il nous fasse une capture de son scénario avec cette condition et avec les logs associés qu’on puisse vraiment voir que « ça ne fonctionne pas » :wink:

1 « J'aime »

Oui, j’avais bien compris, encore faudrait-il savoir à quoi ressemble cette information #[Environement][Prévision Météo][Coucher du soleil]#, et si son format est compatible pour un traitement direct avec #time#, ce qui n’est pas forcément évident.
Sinon, pas d’autre moyen que de passer par un time_op… (et si l’argument n’est pas précisé, ou égale à 0, du coup c’est l’heure exacte précisée qui est prise en compte).

Après, oui, ça manque un peu d’infos et de retours pour fournir une aide précise…

1 « J'aime »

Merci, je vais remettre toutes les captures d’écran pour essayer d’avoir une vision claire

voilà le scénario

voilà le cas ou il n’y a qu’une condition à examiner


le log est correct, lancement manuel, condition fausse, pas d’éclairage, OK

Voilà ensuite le cas ou je rajoute la condition de moment dans la journée.

c’est dans ce cas, où dans les logs, j’ai ce message : « la dernière exécution du scénario ne s’est pas lancée »

En espérant cette fois ci avoir été plus clair sur le souci

Salut,

Et du coup tu as quelque chose dans le log scenario_execution ?

Ce n’est pas les logs du scénario en lui même mais un log présent depuis le menu analyse > logs

Et ça serait bien de voir la page santé de ton jeedom aussi depuis analyse > santé

Et tu as essayé de mettre le tag #sunset# dans le testeur d’expression ?

image

Bonjour,

Hum… Il y a quelque chose qui ne va pas en effet…

Déjà, ceci dans le déclencheur :

Tel quel, à CHAQUE changement d’état (0 ou 1), ce scénario sera déclenché, ce qui est inutile puisqu’il s’agit d’allumer une ou deux ampoules que s’il y a une détection (donc à 1).
Alors autant faire directement #[Entrée][Presence Entrée][Présence 23-0500]# == 1 dans le déclencheur. Le test se fera ainsi avant même l’exécution du scénario, et cela économise un test dans le SI initial puisque forcément, si le scénario démarre, c’est que #[Entrée][Presence Entrée][Présence 23-0500]# == 1.
Il faut donc supprimer ensuite dans le test SI initial la condition #[Entrée][Presence Entrée][Présence 23-0500]# == 1

Soit :

Du coup on se retrouve avec plus qu’un seul test à faire.

Mais ce qui m’interpelle quand même, et qui est bizarre puisque rien ne me semble anormal dans ce scénario on ne peut plus simple, c’est qu’avec une double condition dans le SI on ait en retour:

Du coup se serait intéressant de voir ce que dit le log scénario_execution comme suggéré par @Aurel , et qui se trouve ici :
Menu Analyse, Log :

image

Ce serait possible aussi d’avoir les logs dans le bon format ?
Comme ceci par exemple :

------------------------------------
[2026-02-04 16:15:15][SCENARIO] Lancement du scénario en mode synchrone
[2026-02-04 16:15:15][SCENARIO] -- Début : . Tags : {"#trigger#":"z2mCmd","#trigger_name#":"[Cuisine][Détecteur présence][Présence]","#trigger_id#":9130,"#trigger_message#":"Scénario exécuté automatiquement sur événement venant de : [Cuisine][Détecteur présence][Présence] (1)","#trigger_value#":1}
[2026-02-04 16:15:15][SCENARIO] - Exécution du sous-élément de type [condition] : if (variable(Présence)==1) ET ((#[Cuisine][Détecteur présence][illumination]# == "dim" ) OU (#time#<time_op(#sunrise#,40) OU #time#>time_op(#sunset#,-40)))
[2026-02-04 16:15:15][SCENARIO] Evaluation de la condition : [(1==1) ET (("bright" == "dim" ) OU (1615<826 OU 1615>1713))] = Faux
[2026-02-04 16:15:15][SCENARIO] - Exécution du sous-élément de type [action] : else
[2026-02-04 16:15:15][SCENARIO] Fin correcte du scénario
------------------------------------

Là au moins il y aura toutes les informations (la fin de la ligne est tronquée sur les images…).
Pour ce faire :

  • ouvrir le fichier ‹ log › du scénario,
  • effectuer un CTRL-C de la portion intéressante,
  • dans le message sur le forum, cliquer sur la roue dentée, puis </> Texte préformaté,

image

  • et coller le log entre les balises.
    image
1 « J'aime »

0878|Failed to stop ntp.service: Unit ntp.service not loaded.
0879|Failed to start ntp.service: Unit ntp.service not found.
0880|Failed to stop ntp.service: Unit ntp.service not loaded.
0881|Failed to start ntp.service: Unit ntp.service not found.