Probleme scénario avec script

Bonjour,
je souhaite recupérer l’information si jour ferié à j+1 pour l’utiliser dans un scénario.
j’ai trouvé ce script mais aucune idée de comment l’intégrer dans jeedom et dans le scénario ? merci pour votre aide

<?php	
/**
	* Cette fonction retourne un tableau de timestamp correspondant
	* aux jours fériés en France pour une année donnée.
	*/
	function isNotWorkable($date)
	{
 
	  	if ($date === null)
	  	{
	    	$date = time();
	  	}
 
	 	$date = strtotime(date('m/d/Y',$date));
 
	 	$year = date('Y',$date);
 
		$easterDate  = easter_date($year);
		$easterDay   = date('j', $easterDate);
		$easterMonth = date('n', $easterDate);
		$easterYear   = date('Y', $easterDate);
 
		$holidays = array(
	    // Dates fixes
	    mktime(0, 0, 0, 1,  1,  $year),  // 1er janvier
	    mktime(0, 0, 0, 5,  1,  $year),  // Fête du travail
	    mktime(0, 0, 0, 5,  8,  $year),  // Victoire des alliés
	    mktime(0, 0, 0, 7,  14, $year),  // Fête nationale
	    mktime(0, 0, 0, 8,  15, $year),  // Assomption
	    mktime(0, 0, 0, 11, 1,  $year),  // Toussaint
	    mktime(0, 0, 0, 11, 11, $year),  // Armistice
	    mktime(0, 0, 0, 12, 25, $year),  // Noel

	    // Dates variables
	    mktime(0, 0, 0, $easterMonth, $easterDay + 1,  $easterYear), // Pâques
	    mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear), // Ascension
	    mktime(0, 0, 0, $easterMonth, $easterDay + 50, $easterYear), // Pentecôte
		);
 
  	return in_array($date, $holidays);
	}

	//on teste si le lendemain est férié
    if(isNotWorkable(time() + 86400 )){ // on ajoute donc 24h
	echo '1'; // renvoie 1 si jour férié le lendemain
    }else{
	echo '0'; // renvoie 0 si jour non férié
    }

?>```

Bonsoir,

La doc du plugin étant en erreur 404 ce soir, je vous propose ce lien
https://community.jeedom.com/t/partage-previsions-nombres-dheures-de-soleil-sur-7-jours-script-python3/27389
un tuto avec un script Python réalisé par @olive.

je viens de réaliser sa manipe pour votre code ça fonctionne bien pour le moment il me retourne 0 normal !

Attention cependant dans le tuto à cette étape

Renseignez le nom du script soupe dans l’exemple (ne mettez surtout pas d’extension)
Pourquoi, l’explication ici : …

Mettez bien l’extension (nomdevotrecodephp.php) ça doit être différent pour Python, j’ai prévu de tester la manipe mais je n’ai pas encore eu le temps. :grimacing:

Bonne soirée

2 « J'aime »

Salut @laguinch

Sinon le plugin info du jour donne aussi le nombre de jour qui nous sépare du prochain jour férié


Donc si ça retourne 1, c’est que demain est férié

2 « J'aime »

Oui c’est juste pour le python3 qui si l’on met .py n’execute que du python2

1 « J'aime »

Merci,
Je découvre doucement le plugin mais je voulais prendre le temps de monté un rpi pour les tests.
Mais je lirais la doc promis :innocent:
bien qu’avec le tuto j’ai réalisé mon premier script mais en php, il doit vraiment être bien fait :shushing_face:

1 « J'aime »

Bonsoir, c’est pour l’instant cette info que j’utilise mais je voulais tester avec le script pour m’affranchir du plugin et en plus ca me permet de connaitre la methode avec les scripts.
Merci

Bonsoir,
merci génial j’ai compris et ça fonctionne :blush:

Bonsoir @olive,
a priori on peut directement utiliser le code dans le scenario sans passer par le plugin script , juste comment recuperer l’info dans la condition si (en lieu et place de #[Maison][Jour ferié j+1][JFJ1]# != 1) cf photo et par la meme occasion y a t il une autre possibilité pour declencher le message de la 2eme condition si 24H après. merci

je suis pas certain que ce soit ta question …
en admettant que tu veuille récupérer plusieurs infos dans ton code pour les exploitées dans ton scénario

// $output0 ... recupération n°1
// $output1 ... récupération n°2 
//........................................
$tag1['#msg1#'] = $output0;
$tag1['#msg2#'] = $output1;
$scenario->setTags($tag1);
$scenario->setTags($tag2);

voila maintenant dans ton scénario tu peut exploiter #msg1# et #msg2#
(sans faire faire echo qui ne sera pas exploitable…)

ça te va ?

PS: je suis ni fan de scénario et php n’est pas mon langage préféré …

1 « J'aime »

je souhaite récupérer l’info 1 si jour férié et l’info 0 si non férié.
Et je suis newbee en programmation quelque soit le language donc ou dois je rajouter ton code ?
En lieu et place de { // on ajoute donc 24h echo '1'; // renvoie 1 si jour férié le lendemain }else{ echo '0'; // renvoie 0 si jour non férié }

remplace echo '1' par $output0 ='1';

remplace echo '0' par $output0 ='0;
puis ajoute en fin de code $tag1['#msg1#'] = $output0; $scenario->setTags($tag1);

Tu pourra ensuite dans ton scénario utiliser #msg1#

2 « J'aime »

Un grand merci Olive pour tout ces renseignements, et en effet je me suis posé la question aujourd’hui !

Bonsoir au moment de sauvegarder j’ai une erreur:

c’est surement ton return qui est fait pour retourner un élément du reste du block que l’on ne vois pas …

Essaye en virant cette dernière ligne

et pas de balise php non plus au début

Personnellement je vois ça comme une usine à gaz… un bloc PHP dans un scénario pour déclarer une fonction qui renvois un tag c’est loin d’être le plus facile pour débuter… C’est sûr ça aborde toutes les notions…

En enlevant les balises ca à l’air de fonctionner ??
voici le log

------------------------------------
[2020-05-13 21:00:45][SCENARIO] Start : Scenario lance manuellement.
[2020-05-13 21:00:45][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-05-13 21:00:45][SCENARIO] Exécution d'un bloc code
[2020-05-13 21:00:45][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-05-13 21:00:45][SCENARIO] Evaluation de la condition : [0 = 0 et 0 = 1] = Faux
[2020-05-13 21:00:45][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-05-13 21:00:45][SCENARIO] Exécution d'un bloc élément : 106
[2020-05-13 21:00:45][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-05-13 21:00:45][SCENARIO] Evaluation de la condition : [0 = 0 et 0 = 0] = Vrai
[2020-05-13 21:00:45][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-05-13 21:00:45][SCENARIO] Exécution de la commande [Maison][Telegram][Yann - XXXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Sortir Poubelle Bleu"}
[2020-05-13 21:00:46][SCENARIO] Fin correcte du scénario

1 « J'aime »

Ben oui on est déjà en php dans un block

c’est que tu a récupéré qui lui est fait pour avaoir uns extention PHP et servit sur un serveur php … :wink:

1 « J'aime »

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