Problème rafraichissement fonction toHtml()

Hello,

Je suis entrain de faire un plugins pour la production et consomation solaire de la maison.

Je suis sur la partie visuel et j’ai un problème de raffraichissement,

en effet dans ma class extends eqLogic, j’ai créé la fonction suivante :

  public function toHtml($_version = 'dashboard') {
    $replace = $this->preToHtml($_version);
    if (!is_array($replace)) {
      return $replace;
    }
    $version = jeedom::versionAlias($_version);

    // Liste des commandes à récupérer et remplacer
    $commandsToReplace = array(
      'fronius_pac',
      'home_instant_consomation',
      'fronius_powerreal_p_sum',
      'fronius_day_energy',
      'daily_cumulativeImport',
      'daily_cumulativeExport',
      'daily_autoconsomation'
    );
    $replace["#reverseWay#"] = $replace["#animated_solar#"] = "";

    // Parcourir les commandes à remplacer
    foreach ($commandsToReplace as $commandName) {
      $cmd = $this->getCmd(null, $commandName);
      if (is_object($cmd) && $cmd->getType() == 'info') {
        $commandValue = $cmd->execCmd();

        if ($commandName == "fronius_powerreal_p_sum"){
          if ($commandValue < 0){
            $replace["#reverseWay#"] = "reverse";
            $commandValue = abs($commandValue);
          }          
        }

        if ($commandName == "fronius_pac" && $commandValue > 0){
          $replace["#animated_solar#"] = "animated";
        }

        $w = $this->convertToReadablePower($commandValue);
        $replace["#".$commandName."_unite#"] = $w['unite'];
        $replace["#".$commandName."#"] = $w['value'];

      } else {
        $replace['#' . $commandName . '#'] = 'Valeur indisponible';
      }
    }

    return $this->postToHtml($_version, template_replace($replace, getTemplate('core', $version, 'solar', 'datamanager')));
  }

Cela m’affiche bien le template dans le dossier core>template> desktop ou mobile avec les bonne valeurs lorsque je refresh mon dashboard.
Cependant j’ai une cron qui mets à jours les valeurs toutes les minutes, et mon graphique ne s’actualise pas.

Si je change le nom de la fonction toHtml en toHTML_out pour la désactiver et voir mes valeurs, elles sont bien mises à jour toutes les minutes, j’en déduit donc que j’ai un soucis sur la manière dont j’utilise la fonction toHtml.

Si vous avez des idées je suis preneurs !

Si jamais vous voulez voir à quoi ressemble le plugins en css : https://codepen.io/idoExperiences/pen/vYQMQZN
merci à vous !

1 « J'aime »

Bonjour
C’est normal par défaut jeedom ne met a jour que les widgets des commandes. Toi tu as un widgets d’équipements donc jeedom ne fait rien (sinon il mettrait a jour a chaque mise a jour de valeur de commande ça ferait sapin de Noël) il faut donc que tu appels cette méthode : https://github.com/jeedom/core/blob/alpha/core/class/eqLogic.class.php#L1213

Hello !

Parfait merci beaucoup,

j’ai donc rajouté à ma commande refresh :

public function execute($_options = array()) {
    $eqlogic = $this->getEqLogic();
    switch ($this->getLogicalId()) {
        case 'refresh': 
            log::add('datamanager', 'info', "Mise à jour forcée le " . date("m-d-Y à H:i"));
            $eqlogic->updateFroniusDatamanagerInfos();     
            $eqlogic->refreshWidget();         
    }
}

Et ca fonctionne ! top merci !

Bonjour,
Super, hâte qu’il soit publié
:innocent:

Tu as un onduleur Fronius aussi ? :slight_smile:

oui exacte

Cool, je suis prêt à faire bêta testeur

1 « J'aime »

Hello

coté widget pour l’énergie il y a déjà ça Widget Distribution Energie sauf si tu veux tout refaire :slight_smile:

Ah yes sympa le widget !
Je ne pense pas refaire un trucs aussi complet que ca, avoir les données du Fronius bien ordonnées dans un premier temps ca me va !
Et puis faut bien un jour que je mette la main à la patte pour Jeedom ^^
Merci pour ton retour,

Hello, voici le lien pour bêta tester le plugin et le topic officiel :[Plugin] - Récupération des données de productions solaire d'une installation Fronius

Bonsoir
Merci je vais essayer
Par contre quelqu’un a signalé votre post mais j’ai quand même pu le voir en intégralité

Oui merci, je pense que j’ai postés trop de contenue du coup j’ai été indiqué comme spam ! ca vient d’être débloqué ^^

Hello
Merci pour la mise à disposition de ce plugin.
Par contre, je n’arrive pas à le récupérer sur GitHub

Je crois que je vais attendre qui sorte en bêta sur le market

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