Changement du SubType d'une commande dans un plugin

Salut,

Est-ce qu’il y aurait du changement dans la partie création / mise à jour des commandes ?
Je veux changer 2 commandes infos/numeric en info/string mais rien à faire

  public function postSave() {
    ....
    ....
    $info = $this->getCmd(null, 'besttimestart_request');
    if (!is_object($info)) {
      $info = new solcastCmd();
      $info->setName(__('Durée de fonctionnement pour retour heure de démarrage', __FILE__));
      $info->setIsVisible(1);
    }
    $info->setLogicalId('besttimestart_request');
    $info->setEqLogic_id($this->getId());
    $info->setType('info');
    $info->setSubType('string');
    $info->setConfiguration('repeatEventManagement', 'always');
    $info->save();
    log::add(__CLASS__, 'debug', 'MAJ besttimestart_request');

    $info = $this->getCmd(null, 'besttimestart');
    if (!is_object($info)) {
      $info = new solcastCmd();
      $info->setName(__('Heure de démarrage en fonction de la durée demandée', __FILE__));
      $info->setIsVisible(1);
    }
    $info->setLogicalId('besttimestart');
    $info->setEqLogic_id($this->getId());
    $info->setType('info');
    $info->setSubType('string');
    $info->save();
    log::add(__CLASS__, 'debug', 'MAJ besttimestart');
    ....
    ....

Après la sauvegarde de l’équipement, ça reste numeric :
image

Dans les logs du plugin je vois bien les 2 lignes qui montrent le passage par la fonction postSave() :

[2024-06-09 10:58:30] DEBUG  : MAJ besttimestart_request
[2024-06-09 10:58:30] DEBUG  : MAJ besttimestart

Jeedom bêta 4.4.7 mis à jour ce matin (mais évidemment je ne sais pas si c’est depuis cette version)

Salut,

et tu fais un save depuis l’interface?
« problème » connu :wink:

car dans ce cas jeedom fait:

  • le save de l’eqlogic
  • dans ton postSave tu modifies tes commandes
  • ensuite jeedom lance le save de chaque commande selon ce qui est reçu du call ajax => ca rétabli ton info/numeric puisque c’est ce qui est reçu dans le payload

pour les migrations, tu dois le faire lors de l’update plugin.

Ah … bha oui, je savais bien que j’étais pas en forme ce matin :face_exhaling: :face_with_thermometer:

J’ai bien une boucle de $eqLogic->save(); dans function solcast_update() donc ça fera le job lors de l’update.

Merci Mips :slight_smile:

1 « J'aime »

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