Voilà un petit scenario pour mettre à jour l’icone de la phase de la lune, sans devoir multiplier les images sous condition
Pour ne pas multiplier les images, j’arrondis la phase de la lune (en %) pour ne traiter que 30 images (1/jour)
require_once dirname(__FILE__) . '/../../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';
// mise à jour de l'icone de la phase de la lune
$tags=$scenario->getTags(); // récupération des tag du scénario
$phaseCmd=$tags['#phaseCmd#'];
$widgetId=$tags['#widgetId#'];
// calcul de la phase par multiple de 5%
$phasePercent = cmd::byString('#'.$phaseCmd.'#')->execCmd() ;
$phaseCalc = round($phasePercent*30,0) ;
$scenario->setLog('Phase :'.$phasePercent.' -> '.$phaseCalc.' -> '.$phaseCalc.'.png');
// mise à jour de l'image
$icoFilename = $phaseCalc.'.png' ;
$widgetKey='image';
$widgetValue= array('source' => 'user', 'name' => $icoFilename, 'shadow' => false);
JeedomConnectWidget::updateConfig($widgetId,$widgetKey,$widgetValue);
Les variables sont intégrées dans des tags (afin que ceux qui ont des difficultés avec les blocs code n’aient pas à y toucher), donc 2 tags :
-
phaseCmd : commande dans laquelle ont retrouve la valeur de la phase (en pourcent, entre 0 et 1, pour la phase via le plugin meteo france) - IL NE FAUT PAS METTRE LES # aux extrémités de la commande
-
widgetId : l’Id du widget JC à mettre à jour
(attention à la typo des tags, elle doit être rigoureusement identique avec ce qu’il y a dans le bloc code)
Mettre en déclencheur la commande info de la phase
Reste à importer les images dans JC. les images doivent se nommer 0.png, 1.png, 2.png, …
Les images fournies par @mld.sebastien, merci à lui ! :
lune.zip.txt (354,2 Ko)
Et enfin, création d’un widget de type générique texte avec comme statut la commande decrivant textuellement la phase (ex : lune gibeuse croissante), libre à vous ensuite d(afficher ou non le libellé de la phase.
(Astuce : à la création du widget, bien mettre une image par defaut -n’importe quoi comme image- pour initialiser le champ)
… Enjoy