Additionner heures

Bonjour, je voudrai additionner des heures a l’heure actuelle.
alors j’ai fait cela:

time_op(#time# , time(#ma valeur#) il faut que la valeur soit en minute sauf que je récupère une valeur comme ceci 20h30 et que je met sous le format 2030. Il pense que c’est 2030 minutes.

J’ai essayé de l’écrire comme ceci aussi:
time(#time# )+ time(#[ma valeur]#) sauf que si ma valeur finale est plus grande que 24h00 j’ai une valeur sous le format 2532 par exemple au lieu de 0132 (01h32)

Que pensez vous que je puisse faire?

merci

Salut,

Je ne sais pas comment tu transformes ton 20h30 en 2030 mais si j’imagine que c’est en bloc code il ne reste pas grand chose à faire pour le transformer en minutes histoire de pouvoir utiliser time_op(#time#, tag(x))

x = heures*60+minutes;
x = 20*60+30;

bonjour, merci pour la réponse , oula je maitrise par trop les bloc code.
Alors j’avais fait un virtuel heure sans le H
str_replace(« h »,"",#[ma valeur]#)
Après si je peux le faire avec un bloc code je veux bien un peu d’aide stp

bonsoir,
Une petite recherche
https://www.google.com/search?client=firefox-b-e&q=jeedom+timestamp
les sujets sont nombreux et ont déjà trouvé des solutions
et aussi dans la doc
https://doc.jeedom.com/fr_FR/core/3.3/scenario#Les%20fonctions%20de%20calcul

sans oublier les nombreuses fonctions php date et time …

Je suis pas sur le PC, c’est pas simple depuis le téléphone mais si tu ne trouves pas avec le lien d’Olive je te montrerai demain.

Tu peux regarder le site suivant pour savoir comment récupérer le résultat d’une commande (20h30) puis il faudra utiliser la fonction explode pour séparer heure et minutes avant de faire le calcul et enfin remonter ces variables PHP dans des tags du scénario.

1 « J'aime »

Salut,

Voilà en utilisant le bloc code ce que je te propose (avec commentaire pour comprendre) :

$myDuree = $scenario->getData(duree); // Récupération de la variable duree dans $myDuree
$tab = explode("h", $myDuree); // Séparation autour du h et disposition dans un tableau

$myHeure = $tab[0]; // Récupération du 1er champs du tableau dans $myHeure
$myMinute = $tab[1]; // Récupération du 2eme champs du tableau dans $myMinute

$myDureetoMinutes = $myHeure*60+$myMinute; // Calcul pour transformer en minutes

$tags['#myDureetoMinutes#'] = $myDureetoMinutes; // Place la valeur en minutes dans un tableau tags 
$scenario->setTags($tags); // Transmet le tableau tags à Jeedom afin de le récupérer dans le scénario après le bloc codes

Une fois ce bloc code fini tu pourras faire l’opération prévu avec le time_op dans ton scénario pour continuer de l’exploiter (avec un A j’imagine).

time_op(#time# , tag(myDureetoMinutes))

Si c’est pour enlever le h
tu peut aussi utiliser
$heuresansh = str_replace("h","",$heureavech);
une fois au format jeedom tu fait tes calculs

Je ne vois pas bien comment ? Tu fais quoi comme calcul avec 2030 à la place de 20h30 pour que ça donne des minutes ? Je dois surement avoir oublié une fonction ?

J’ai même pas réfléchi il y a tellement de choses possible avec jeedom
moi pour ce genre de truc
je repasse en seconde avec un timestamp
j’ajoute le nb de secondes voulues
puis je ré-affiche au format désiré.

:grinning: je touche au but par contre j’ai une erreur

[2021-11-07 11:01:15][SCENARIO] Réponse 2h00
[2021-11-07 11:01:15][SCENARIO] Log : reponse recu ==> 2h00
[2021-11-07 11:01:15][SCENARIO] Exécution d’un bloc élément : 293
[2021-11-07 11:01:15][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-11-07 11:01:15][SCENARIO] Exécution d’un bloc code
[2021-11-07 11:01:15][SCENARIO] syntax error, unexpected ‹ $myHeure › (T_VARIABLE)
[2021-11-07 11:01:15][SCENARIO] Exécution d’un bloc élément : 290
[2021-11-07 11:01:15][SCENARIO] Exécution du sous-élément de type [condition] : at
[2021-11-07 11:01:15][SCENARIO] Evaluation de la condition : [1101] = 1101
[2021-11-07 11:01:15][SCENARIO] Tâche : 290 programmée à : 2021-11-08 11:01:00
[2021-11-07 11:01:15][SCENARIO] Fin correcte du scénario

J’ai oublié un ; à la fin juste après la parenthèse

$myDureetoMinutes = $myHeure*60+$myMinute

Là aussi je crois.

Merci je viens de voir en corrigeant mon post, c’était trop tôt avant 9h pour un dimanche :crazy_face:

syntax error, unexpected ‹ -> › (T_OBJECT_OPERATOR)?

[2021-11-07 11:14:29][SCENARIO] Réponse 1h30
[2021-11-07 11:14:29][SCENARIO] Log : reponse recu ==> 1h30
[2021-11-07 11:14:29][SCENARIO] Exécution d’un bloc élément : 293
[2021-11-07 11:14:29][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-11-07 11:14:29][SCENARIO] Exécution d’un bloc code
[2021-11-07 11:14:29][SCENARIO] syntax error, unexpected ‹ -> › (T_OBJECT_OPERATOR)
[2021-11-07 11:14:29][SCENARIO] Exécution d’un bloc élément : 290
[2021-11-07 11:14:29][SCENARIO] Exécution du sous-élément de type [condition] : at
[2021-11-07 11:14:29][SCENARIO] Evaluation de la condition : [1114] = 1114
[2021-11-07 11:14:29][SCENARIO] Tâche : 290 programmée à : 2021-11-08 11:14:00
[2021-11-07 11:14:29][SCENARIO] Fin correcte du scénario

Pff désolé… Faut commenter une partie de la dernière ligne

scenario->setTags($tags); // Transmet le tableau tags à Jeedom afin de le récupérer dans le scénario après le bloc codes

je l’ai vu en même temps que ta réponse et c’est plutôt:

$scenario->setTags($tags); // Transmet le tableau tags à Jeedom afin de le récupérer dans le scénario après le bloc codes

Le principe c’est :
Ligne de commande qui fini par un ;
// Qui sert à commenter pour que ce ne soit pas interprété par le moteur mais que l’on puisse nous savoir à quoi ça sert

oui c’est le « $ » qui manquait au bout de la ligne aussi

1 « J'aime »

Va boire un :coffee:
:rofl:

Bonne idée !!!