Correction du cron par défaut et correction du décalage des 24 prochaines heures

Salut,

Je souhaitais remonter des problèmes rencontrés sur le plugin #plugin-meteofull (avec les corrections envisagées à valider :slight_smile: )

  1. Valeur du cron

Depuis un équipement, on propose la valeur 9 * * * * par défaut or dans le code, c’est la valeur 5 * * * * qui est utilisée par défaut.

Il faudrait donc modifier un des deux. Actuellement, on a :

  • meteofull.class.php
          if ($configCron == 'custom') {
            $autorefresh = $eqlogic->getConfiguration('autorefresh');
          } else {
            $autorefresh = '5 * * * *';
          }
  • MeteoFull.php

          <select class="form-control eqLogicAttr" data-l1key="configuration" data-l2key="cron">
          	<option value="byDefault">{{Par défaut (9 * * * *)}}</option>
              <option value="custom">{{Personnalisé}}</option>
      	</select>
    
  1. Décalage des valeurs pour l’onglet "24 prochaines heures" (Erreur de calcul de l’heure de référence)

L’heure de référence appliquée actuellement est l’heure de météo actuelle, c’est-à-dire la prochaine heure fixe). Pour calculer l’heure h+1, h+2, …, il faudrait plutôt se baser sur l’heure courante.

Ex :

  • cron d’actualisation des données par défaut à la 5ème minute de chaque heure, lancement du cron à 20h05 par exemple.
    => On récupère depuis le de prévision météo une heure de météo actuelle à 21h
    => On en déduit donc h+1 à 22h, h+2 à 22h, ..

On s’attendrait donc plutôt à actualiser les infos avec h+1 à 21h, h+2 à 22h, ..

Pour cela, dans MeteoFull.class.php, il faudrait remplacer la ligne suivante

  `$heureActuelle = ((int)str_replace(':', '', $datajson['meteo_actuelle']['heure'])) / 100;`

par

  `$heureActuelle = date('H');`

Attention, l’actualisation de ces données est dépendante de la définition du cron de l’équipement :

  • si le cron est prévu chaque heure à la 5ème minute, la valeur de la commande sera décalé de 20h à 20h05 par exemple. Ce sera encore plus visible si on demande une actualisation toutes les 6h par exemple (pendant 6h, chaque valeur restera identique et ne sera pas rafraichie à chaque changement d’heure)

:warning: Sachant qu’on a déjà ces données présentes dans le plugin à partir de la dernière réactualisation des données, il faudrait donc aussi gérer une réactualisation des données de l’onglet "24 prochaines heures" à chaque heure fixe depuis la méthode cron (au niveau de if ($autorefresh != '') {, ne pas tenir compte de la valeur du cron et lancer l’actualisation de cet onglet si on est à une heure fixe)
EDIT : sans doute faire l’actualisation des commandes de cet onglet dans la méthode cronHourly()

Merci.

3 « J'aime »