Bonjour,
Je suis à la recherche de la méthode pour calculer la différence entre 2 temps, le temps médian.
L’idée est de connaitre la différence entre le coucher et le lever du soleil pour en connaitre le milieu.
Je voudrai gérer la luminosité d’une lampe grâce à ça. Plus je me rapproche de ce milieu plus l’intensité sera faible, plus je m’en éloigne, plus l’intensité sera forte.
Le coucher et le lever sont au format 730 pour 7h30.
J’ai commencé à faire ça à l’aide du forum
time_diff(time_op(#[Jardin][XXX][Coucher du soleil]#),time_op(#[Jardin][XXX][Lever du soleil]#),m)/2
ce qui me donne par exemple 437.5
Je tente un formatTime, mais j’ai un retour très bizarre
Mise à jour du tag #Temps_median# => 437.5
Mise à jour du tag #Temps_format# => Tehmp
Mon idée d’après c’est d’ajouter ce temps au coucher du soleil ce qui me donnerait le « milieu ».
Auriez-vous fait ça également ?
Sauriez-vous me guider ?
J’ai également regarde ce scénario, mais cela ne semble pas fonctionner quand minuit est entre les 2 heures.
Ainsi, avec heure 1 = 21h01 et heure 2 = 6h26
La moyenne est : 13h43
Désolé je réponds pas à ta question directement mais si tu veux avoir l’heure du zénith du soleil, tu peux l’avoir via la fonction php date_sun_info.
Je m’en sers pour maintenir un éphéméride calculé sur mon jeedom pour ne pas dépendre d’un plugin pour avoir ces infos.
Exemple :
// Step 1
$scenario->setLog('Récupération de la latitude et longitude à partir des paramètres de Jeedom');
$latitude = config::bykey('info::latitude');
$longitude = config::bykey('info::longitude');
$scenario->setLog('Récupération du calendrier solaire du jour');
$sun_info = date_sun_info(time(), $latitude, $longitude);
$leverSoleil = $sun_info['sunrise'];
$coucherSoleil = $sun_info['sunset'];
$zenithSoleil = $sun_info['transit'];
Ben justement perso je ferais le calcul de la différence entre l’heure actuelle et l’heure du delta du zénith : plus elle est faible plus tu baisse ton éclairage, plus elle est élevée plus tu l’augmente
// Step 1
$scenario->setLog('Récupération de la latitude et longitude à partir des paramètres de Jeedom');
$latitude = config::bykey('info::latitude');
$longitude = config::bykey('info::longitude');
$scenario->setLog('Récupération du calendrier solaire du jour');
$sun_info = date_sun_info(time(), $latitude, $longitude);
$leverSoleil = $sun_info['sunrise'];
$coucherSoleil = $sun_info['sunset'];
$zenithSoleil = $sun_info['transit'];
$scenario->setLog('Lever du soleil :'.$leverSoleil. ' Coucher du soleil :'.$coucherSoleil. ' Zenith :' .$zenithSoleil);
$heureznithSoleil = date('Hi', $zenithSoleil+43200);
$scenario->setLog($heureznithSoleil);
Bonjour bonjour,
Désolé pour le délai de réponse…
J’ai bien avancé et j’ai fait ce bloc code qui me calcul le Nadir (Point du ciel à la verticale de l’observateur, vers le bas (opposé à zénith).).
Ainsi je peux générer une luminosité en fonction de l’heure actuelle et de l’heure Nadir.
// Récupération des informations
$scenario->setLog('Récupération de la latitude et longitude à partir des paramètres de Jeedom');
$latitude = config::bykey('info::latitude');
$longitude = config::bykey('info::longitude');
$scenario->setLog('Récupération du calendrier solaire du jour');
$sun_info = date_sun_info(time(), $latitude, $longitude);
$leverSoleil = $sun_info['sunrise'];
$coucherSoleil = $sun_info['sunset'];
$zenithSoleil = $sun_info['transit'];
$heureNadir = $zenithSoleil+43200;
$today = time();
//Affichage des heures et calcul de Nadir
$scenario->setLog('Coucher du soleil:'.$coucherSoleil.' Lever du soleil:'.$leverSoleil. ' Zenith:' .$zenithSoleil. ' Nadir:' .$heureNadir);
$diff = $heureNadir - $today;
$scenario->setLog('Diff :'.$diff);
$scenario->setLog('Diff2 :'.date('H:i:s', $diff));
$coucherSoleil = date('Y-m-d H:i:s', $coucherSoleil);
$leverSoleil = date('Y-m-d H:i:s', $leverSoleil);
$zenithSoleil = date('Y-m-d H:i:s', $zenithSoleil);
$heureNadir = date('Y-m-d H:i:s', $heureNadir);
$scenario->setLog('Coucher du soleil:'.$coucherSoleil. ' Lever du soleil:'.$leverSoleil. ' Zenith:' .$zenithSoleil. ' Nadir:'.$heureNadir);
$today = date('Y-m-d H:i:s', time());
$scenario->setLog($today);
$scenario->setLog($diff);
//calcul luminosité, si 6h eentre l'heure actuelle et Nadir alors 254
$luminosite = round($diff * 0.01411111111);
$scenario->setLog($luminosite);
$tags['#luminosite#'] = $luminosite;