formatTime 00h48 renvoie 04h8

Hello,

petit soucis avec formatTime dans un scénario :

execution de :

formatTime(time_op(#time#, #[Virtuel][vTimer][infoTimer]#) )

#time# = 00h18 (à l’heure du lancement du scénario)
et #[Virtuel][vTimer][infoTimer]# = 30 (info/numerique)

en résultat je m’attends donc à avoir 00h48, sauf que j’obtiens dans les logs du scénario 04h8

[2022-02-24 00:18:39][SCENARIO] - Exécution du sous-élément de type [action] : action
[2022-02-24 00:18:39][SCENARIO] Mise à jour du tag #nextStop# => 04h8

si je passe par le testeur d’expression, c’est tout bon
image

une idée de ce qui pourrait ne pas aller !?

Jeedom 4.2.12

Bonjour.

En ajoutant le ,+ cela n’est pas mieux ?

Difficile a tester puisque le testeur d expression me renvoie egalement la bonne info, faut que je réattende minuit passé :sweat_smile:

Apres dans la log on voit que l incrément se fait correctement puisqu il passe de 18 a 48

Bonjour,
Je ne sais pas d’où vient votre #time# mais son format n’est pas bon. h en trop
La doc du tag #time#:
image
time_op autorise le : pas le h

A droite le code, à gauche le résultat:

Bonjour,
Si tu remplace ta commande #time# par l’heure actuelle, et que tu lance le scénario ? pas besoin d’attendre :slight_smile: (ou je n’ai pas compris, possible aussi)
Thierry

le ‹ h › vient de formatTime :slight_smile:

j’indiquais juste la vraie info qu’on puisse lire.
je n’instancie pas #time#, j’utilise celui fourni par le core

tu remarqueras que ton 2nd résultat 00h-1, n’est pas celui que j’obtiens 04h8

c’est ce que fait le core tout seul :slight_smile:

si je relance le scenario now, tout est OK.

[2022-02-24 09:03:35][SCENARIO] -- Start : Scenario lance manuellement.
[2022-02-24 09:03:35][SCENARIO] - Exécution du sous-élément de type [action] : action
[2022-02-24 09:03:35][SCENARIO] Mise à jour du tag #nextStop# => 9h33
[2022-02-24 09:03:35][SCENARIO] Fin correcte du scénario

« besoin d’attendre » car j’ai plutot l’impression que l’erreur est sur minuit …

C’est son formatTime qui met en forme le résultat non ? :wink:

Je mettrai un plus et supprimerai l’espace entre les 2 parenthèses à la fin

formatTime(time_op(#time#, +#[Virtuel][vTimer][infoTimer]#))

Je viens de faire quelques tests dans le testeur d’expressions je vous laisse voir :
image

image

image

image

3 « J'aime »

rooo la blague !!!
good job man ! :+1:

je vais rajouter une petit tag bug sur le sujet quand meme hein … pcq là on est quand même en plein dedans :sweat_smile:

1 « J'aime »

Je pense que c’est encore un coup de l’interpréteur symphony mais je peux me tromper.

Faut être aussi strict qu’en Python :innocent: :joy: :exploding_head:

Non, l’énoncé était faux.
tomitomas écrivait que #time# valait 00h18

Oui, tu as raison.
Tu avais écrit:

echo scenarioExpression::formatTime(scenarioExpression::time_op('018',30).' ');

et non justement … j’ai écrit
echo scenarioExpression::formatTime(scenarioExpression::time_op('018',30) );
qui pour moi est bien bien différent de
echo scenarioExpression::formatTime(scenarioExpression::time_op('018',30).' ');

Désolé, je ne comprends pas.
Pour avoir 04h8, tu as écrit dans ton scénario l’équivalent de :

echo scenarioExpression::formatTime(scenarioExpression::time_op('018',30).' ');

Ah non, ce n est pas ce que j ai ecrit.

C est peut etre ce qui a ete interprété (a tord!) par le core/symphony, mais ca n est clairement pas ce que j ai ecrit.

Je pourrais meme decider d ecrire en bloc code

scenarioExpression::formatTime(
           scenarioExpression::time_op(
                       '018',
                       30
            ) 
);

Est ce que tous les espaces que j ai mis pour que le code soit plus lisible doivent etre pris en compte dans l evaluation global des fonctions ?

La reponse est simplement non.

C est pareil avec la façon dont j ai ecrit mon scenario initialement

Salut,

On en parlait déjà ici:

et ici Espaces dans les paramètres des fonctions scenario

et il y a un PR en attente ici (que je n’ai pas testé): Update scenarioExpression.class.php by alligatore · Pull Request #1970 · jeedom/core · GitHub

du coup je pense qu’on peut fermer celui-ci et rassembler les avis/commentaires sur le 2ème post que j’ai cité

1 « J'aime »

merci pour les liens
je n’avais pas fait une recherche sur toutes les fonctions « time » et n’avait initialement pas forcément pensé à un probleme d’espace, alors que j’avais pourtant vu & lu le 2nd.

ca me va !

la suite là Espaces dans les paramètres des fonctions scenario du coup !

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.