[PARTAGE] bloc code avec tag lever zenith coucher et pleins de petits trucs

Pas de script cette fois-ci tout est dans un scenario.

un tag en entrée pour donner votre position.
un bloc code qui génère des tag en sortie.
il y a plus qu’a utiliser les tags dans le scenario, soit pour déclencher des blocs A, soit utiliser les valeurs.

il est nécessaire d’utiliser un déclencheur si vous utilisez des blocs A
exemple pour mettre a jour a 3h00 chaque jour :

La première choses à faire dans le scenario est de définir la position latitude,longitude.


puis ajouter le bloc code suivant.

Bloc code format texte
$tags = $scenario->getTags();// recuperation des tag du scenario
$position = $tags['#position#'];// recuperation du tag position 
$latlon = explode(",", $position); // mise en tableau latitude $latlon[0] ,longitude $latlon[1]
$jour0=time(); // recuperation jour courrant
$jourm1=time()-(24*60*60); // recuperation J-1
// utilisation de la commande date_sun_info https://www.php.net/manual/fr/function.date-sun-info.php
$sun_info = date_sun_info($jour0,$latlon[0],$latlon[1]);
$veille   = date_sun_info($jourm1,$latlon[0],$latlon[1]);
$jour = $sun_info["sunset"]-$sun_info["sunrise"]; // calcul duree du jour
$nuit = 24*60*60-($sun_info["sunset"]-$sun_info["sunrise"]);// calcul duree de la nuit
// creation des TAG pour la suite du scenario
$tags = $scenario->getTags(); // mise a jours des tag pour la suite du scenario
$tags['#lever#']   = date("H:i:s",$sun_info['sunrise']);// lever du soleil du jour
$tags['#leverjm1#'] = date("H:i:s",  $veille['sunrise']);// lever du soleil du jour -1
$tags['#diflever#'] = $sun_info['sunrise'] - ($veille['sunrise']+(24*60*60)) ; // difference lever entre j et j-1
$tags['#coucher#']    = date("H:i:s",$sun_info['sunset']);//coucher du soleil du jour
$tags['#coucherjm1#'] = date("H:i:s",  $veille['sunset']);//coucher du soleil jour -1
$tags['#difcoucher#'] = $sun_info['sunset'] - ($veille['sunset']+(24*60*60)) ;// difference coucher entre j et j-1
$tags['#zenith#']    = date("H:i:s",$sun_info['transit']);// zenith du jour
$tags['#zenithjm1#'] = date("H:i:s",  $veille['transit']);// zenith jour -1
$tags['#difzenith#'] = $sun_info['transit'] - ($veille['transit']+(24*60*60)) ;// difference zenith entre j et j-1
$tags['#difjjm1#'] = ($sun_info['sunset'] - ($veille['sunset']+(24*60*60))) - ($sun_info['sunrise'] - ($veille['sunrise']+(24*60*60))); // difference temps du jour et jour -1
$tags['#tempsjour#'] = gmdate("H:i:s",$jour); // temps du jour
$tags['#tempsnuit#'] = gmdate("H:i:s",$nuit); // temps de la nuit

//---------------TAG utilisable  pour des blocs A
$tags['#Alever#']         = date("Gi",$sun_info['sunrise']);                    //Lever du soleil
$tags['#Azenith#']        = date("Gi",$sun_info['transit']);                    //soleil au zenith
$tags['#Acoucher#']       = date("Gi",$sun_info['sunset']);                     //coucher du soleil
$tags['#Acivild#']        = date("Gi",$sun_info['civil_twilight_begin']);       //lever civil
$tags['#Acicilf#']        = date("Gi",$sun_info['civil_twilight_end']);         //coucher civil
$tags['#Anautiqued#']     = date("Gi",$sun_info['nautical_twilight_begin']);    //lever nautique
$tags['#Anautiquef#']     = date("Gi",$sun_info['nautical_twilight_end']);      //coucher nautique
$tags['#Aastronomiqued#'] = date("Gi",$sun_info['astronomical_twilight_begin']);//lever astronomique
$tags['#Aastronomiquef#'] = date("Gi",$sun_info['astronomical_twilight_end']);  //coucher astronomique
$scenario->setTags($tags); // ecriture des TAG 

Ne vous reste plus qu’a écrire la suite :
voila un exemple de bloc action pour afficher tout ce qui est possible

Partie message au format texte
#lever# lever du soleil du jour
#leverjm1# lever du soleil du jour -1
#diflever# difference lever entre j et j-1

#coucher# coucher du soleil du jour
#coucherjm1# coucher du soleil jour -1
#difcoucher# difference coucher entre j et j-1

#zenith# zenith du jour
#zenithjm1# zenith jour -1
#difzenith# difference zenith entre j et j-1

#difjjm1# difference temps du jour et jour -1

#tempsjour# temps du jour
#tempsnuit# temps de la nuit


--------- TAG POUR A SCENARIO ------
#Alever# Lever du soleil
#Azenith# soleil au zenith
#Acoucher# coucher du soleil
#Acivild# lever civil
#Acicilf# coucher civil
#Anautiqued# lever nautique
#Anautiquef# coucher nautique
#Aastronomiqued# lever astronomique
#Aastronomiquef# coucher astronomique
Résultat
------------------------------------------------------------------------
08:42:29 lever du soleil du jour
08:42:18 lever du soleil du jour -1
11 difference lever entre j et j-1

17:00:57 coucher du soleil du jour
17:00:09 coucher du soleil jour -1
48 difference coucher entre j et j-1

12:51:43 zenith du jour
12:51:14 zenith jour -1
29 difference zenith entre j et j-1

37 difference temps du jour et jour -1

08:18:28 temps du jour
15:41:32 temps de la nuit


--------- TAG POUR A SCENARIO ------
842 Lever du soleil
1251 soleil au zenith
1700 coucher du soleil
805 lever civil
1737 coucher civil
725 lever nautique
1818 coucher nautique
647 lever astronomique
1856 coucher astronomique
------------------------------------------------------------------------

Exemples avec des blocs A

Les petits plus sont les TAG difxxxx qui donne les variations en secondes entre un jour et la veille.

Amusez-vous bien.

@olive

8 « J'aime »

Salut @olive,
Tu lâches pas l’affaire !!
Propre !!!
:+1:

Tout dans un même scenario c’est quand même mieux que des scripts avec paramètres.
On peut aussi faire des events pour aller mettre a jour des virtuels.

1 « J'aime »