Souci avec templateWidget

bonjour,

je suis entrain de tenter de porter un plugin vers la V4.4. j’ai installé un docker avec jeedom 4.4 beta et mes plugins en 4.3.2 (qui marchent je le précise).

Dans ce plugin j’ai une fonction templateWidget qui permet de définir des modèles de widget simples. voilà le début de la fonction pour illustration :

 public static function templateWidget(){
    $return = array('action' => array('string' => array()), 'info' => array('string' => array()));
    $return['action']['other']['mylock'] = array(
      'template' => 'tmplicon',
      'replace' => array(
        '#_icon_on_#' => '<i class=\'icon_green icon jeedom-lock-ouvert\'></i>',
        '#_icon_off_#' => '<i class=\'icon_red icon jeedom-lock-ferme\'></i>'
      )
    );
    $return['info']['string']['mypellets'] = array(
      'template' => 'tmplmultistate',
      'test' => array(
        array('operation' => '#value# == 0','state_light' => 'Arrêt','state_dark' => 'Arrêt'),
        array('operation' => '#value# >= 1 && #value# <= 9','state_light' => '#value#','state_dark' => '#value#'),
        array('operation' => '#value# == 10 && #value# <= 5','state_light' => 'extinction','state_dark' => 'extinction'),
        array('operation' => '#value# == 255','state_light' => 'Allumage', 'state_dark' => 'Allumage')
      )
    );

Dans les menus, les templates apparaissent bien :

Dans le code pour créer les commandes, j’attribue les widget custom sur les commandes comme suit en passant « jee4heat::mypellet » comme argument $Template:

      if ($IsHistorized!=null) $Command->setIsHistorized(strval($IsHistorized));
      if ($Template != null) {
        $Command->setTemplate('dashboard', $Template);
        $Command->setTemplate('mobile', $Template);
      }
      if ($unite != null && $SubType == 'numeric')
        $Command->setUnite($unite);

Sur Jeedom 4.3.2 ça passe sans souci, sur 4.4 il ne change pas le widget et attribue Tile par défaut à la place.

une idée de ce qui ne marche pas dans mon système ?

Salut,

Le code sur ton repo jee4heat est bien à jour ? Car je ne vois à aucun moment l’envoi du template jee4heat::mypellets via ta fonction addCommand. Du coup j’en déduis qu’il applique la valeur par défaut dans le postSave :

      if ($item['name'] != '' && $item['logicalId'] != '') {
        $Equipement->AddCommand(
          $item['name'],
          'jee4heat_' . $item['logicalId'],
          $item['type'],
          $item['subtype'],
          'tile',
          ...............

merci pour ta réponse,

j’ai pas les yeux en face des trous, en effet je passe la valeur en dur au lieu de la variable pour les infos, et je me suis trompé dans l’ordre des arguments pour les commandes :upside_down_face: :face_in_clouds:

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