KLF200 Dashboard Panel : Call to a member function getId() on null

Bonsoir @Lunarok,

Il semblerait qu’il y ait un soucis avec le panel Dashboard pour le plugin KLF200.

J’ai le message d’erreur suivant lors du chargement de la page :

Call to a member function getId() on null

Celà semble être lié à la commande position qui n’existe pas pour l’équipement global avec l’Id 99. La commande n’est pas initialisée pour l’équipement 99 :

if ($eqLogic->getConfiguration('id') != '99') {
        $cmd_position = $eqLogic->getCmd(null, 'position');
        $position_value = $cmd_position->execCmd(null, 2);
      } else {
        $position_value = 0;
      }

mais elle est quand même utilisée dans la suite de la page.

$cmd_position->getId()

Merci.

Merci de fournir le log http error
Je me sers tous les jours de ce panel sans erreur de mon côté

Il n’y a pas d’erreur dans le http error.

J’ai seulement deux équipements

Screenshot from 2020-05-23 10-31-24
dont le « All Roller Shutter » qui a l’id 99 (l’autre a l’id 0):

Screenshot from 2020-05-23 10-33-00

et qui n’a pas de commande de position :


Si je remplace

echo '<td><center><span class="label label-info positiontext'.$id.'" style="font-size : 0.8em;cursor:default">' . $position_value . '</span></br></br>
      <div class="position'.$cmd_position->getId().'" style="width: 80px;" value="'.$position_value.'" ></div></center></br>';

par

if ($eqLogic->getConfiguration('id') != '99') {
        echo '<td><center><span class="label label-info positiontext'.$id.'" style="font-size : 0.8em;cursor:default">' . $position_value . '</span></br></br>
      <div class="position'.$cmd_position->getId().'" style="width: 80px;" value="'.$position_value.'" ></div></center></br>';
      }

et

echo '<script>
      $(".position'.$cmd_position->getId().'").slider({
        min: 0,
        max: 100,
        range: "min",
        value: ("' . $position_value . '" == "") ? 0 : parseInt("' . $position_value . '")
      });
      $(".position'.$cmd_position->getId().'").on("slidestop", function (event,ui) {
        jeedom.cmd.execute({id: "'.$cmd_position_slider->getId().'", value: {slider: ui.value}});
      });
      $(".cmd[data-cmd_id=' . $cmd_open->getId() . '] .action").off().on("click", function () {
          jeedom.cmd.execute({id: ' . $cmd_open->getId() . ', notify: false});
      });
      $(".cmd[data-cmd_id=' . $cmd_close->getId() . '] .action").off().on("click", function () {
          jeedom.cmd.execute({id: ' . $cmd_close->getId() . ', notify: false});
      });
      $(".cmd[data-cmd_id=' . $cmd_stop->getId() . '] .action").off().on("click", function () {
          jeedom.cmd.execute({id: ' . $cmd_stop->getId() . ', notify: false});
      });
      </script>';

par

      echo '<script>';
      if ($eqLogic->getConfiguration('id') != '99') {
        echo '
        $(".position'.$cmd_position->getId().'").slider({
          min: 0,
          max: 100,
          range: "min",
          value: ("' . $position_value . '" == "") ? 0 : parseInt("' . $position_value . '")
        });
        $(".position'.$cmd_position->getId().'").on("slidestop", function (event,ui) {
          jeedom.cmd.execute({id: "'.$cmd_position_slider->getId().'", value: {slider: ui.value}});
        });';
      }
      echo '
        $(".cmd[data-cmd_id=' . $cmd_open->getId() . '] .action").off().on("click", function () {
            jeedom.cmd.execute({id: ' . $cmd_open->getId() . ', notify: false});
        });
        $(".cmd[data-cmd_id=' . $cmd_close->getId() . '] .action").off().on("click", function () {
            jeedom.cmd.execute({id: ' . $cmd_close->getId() . ', notify: false});
        });
        $(".cmd[data-cmd_id=' . $cmd_stop->getId() . '] .action").off().on("click", function () {
            jeedom.cmd.execute({id: ' . $cmd_stop->getId() . ', notify: false});
        });
        </script>';

Je n’ai plus le soucis.

Sauf que là tu empeches d’utiliser le slider pour les commandes globales.
J’ai fait une modif sur mon git (demain en beta), ou j’utilise $cmd_position_slider->getId()
Comme ca, l’id positionID est bien unique et permet de garder le slider utilisable

Bonjour,

En effet, j’y étais peut être allé un peu fort.

C’est tout bon avec la nouvelle version en Beta.

Merci.

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