Utilisation de l'heure dans un scénario

Bonjour,

Je cherche à faire un calcul dans un scénario et je ne réussi pas…
Mon but : calculer le temps ou le ciel était dégagé depuis le début de la journée. Pour cela j’utilise le plugin météo qui me donne le code de condition 800 lorsque le ciel est dégagé.
J’ai d’une part la fonction durationBetween(#[Ma maison][Meteo][Numéro condition]#,800,[lever du soleil],Now) qui me permet de connaitre le nombre de minutes où le ciel était dégagé entre une heure donné et maintenant
Et d’autre part l’information [Ma maison][Meteo][Lever du soleil] qui me permet de connaitre l’heure de lever du soleil
Ce qui me pose problème c’est que la fonction durationBetween attends une heure au format Y-m-d H:i:s alors que le plugin météo donne l’heure de lever du soleil au format 712 (pour 7h12 comme habituellement sur Jeedom).
Je ne trouve pas de fonction de conversion du style convertdate(#date#, #time#)

Quelqu’un aurait-il une idée ?
Merci d’avance

Salut,

Tu dois pourvoir t’en sortir avec :

Peut être une conversion en timestamp

Le timestamp facilite les calculs addition soustractions de temps …

1 « J'aime »

L’idée est bonne mais je ne vois pas comment transformer mon heure qui ressemble à 712 ou 7h12 en 7:12:00

Là, je ne vois pas du tout comment m’y prendre…

1 « J'aime »

je ne peut que te renvoyer sur les fonctions :
date gmdate et ses differents formats

date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));

Un peut de recherche dans ce forum et tu devrais trouver.

2 « J'aime »

J’ai deux heures de décalages avec date ou gmdate…
gmdate(« d m Y H:i:s », mktime(6, 14, 0, 7, 1, 2020)) me donne « 01 07 2020 04:14:00 »…

1 « J'aime »

au temps pour moi, avec date, ca marche

C’est pour ça que je t’avait indiquer les 2 l’un travail en UTC l’autre en local GMT+2 pour nous avec l’heure d’été …

ceci dit, ca ne marche pas mieux, car l’expression ne passe pas…

1 « J'aime »

converti tes dates/heures en timestamp
puis fait des calcul avec
puis reconverti ton résultat en H m s …

(regarde ce que te renvoi chaque expression dans le testeur …)
le format de la derniere ne corespond pa a ce qu’attend durationbetween …

La fonction durationBetween ne prends pas les timestamp…

Ben oui change le format donc.
si par exemple ca attend 757
au lieu de H:i:s …
donne lui Hi

Capture d’écran du 2020-07-01 18-04-11

Je crois que tu ne comprends pas… j’ai réussi à avoir le bon format pour la fonction durationBetween. Mais c’est l’interprétation de l’expression par le moteur d’expression de jeedom qui ne semble pas fonctionner si je met une sous expression (cf 4 posts plus haut). J’ai essayé avec une variable et le résultat est le même… Par contre, si je met en dur « 01 07 2020 06:14:00 », là ça fonctionne, mais ce n’est pas ce que je veux…

1 « J'aime »

Montre moi ce que renvois chaque éléments de ton expression pris 1 par 1 dans le testeur ?

image
image

Tu a activé l’historique de ta commande ?

Bonjour,
L’expression est trop compliquée pour Jeedom.
Faites vos calculs en php dans un bloc code au début du scénario et définissez une variable avec le résultat du calcul.
Dans la suite du scénario, n’utilisez que cette variable

j’aimerai bien, c’est d’ailleurs comme ca que j’ai calculé ma variable. Mais jeedom refuse l’utilisation de cette variable justement…
Et je n’arrive pas à utiliser la fonction durationBetween dans le bloc code PHP

Mettre le résultat de durationBetween dans une variable ne fonctionne pas ?

oui
blabla ← ça c’est pour avoir assez de caractères por etre autoriser à poster ma reponse…

1 « J'aime »