Question sur postSave

Bonjour ,

j’ai un soucis avec la fonction Post Save :
Il est noté qu’elle s’exécute à la fin de la sauvegarde de l’équipement .( donc équipement mise à jour )
j’utilise cette fonction pour relancer mon demon quand je modifie mon équipement .
Mon démon va lire l’équipement avec un ( foreach (self::byType(‹ var ›) as $var) mais les changements ne sont pas pris en compte . Par contre si je re sauvegarde une deuxième fois la ça marche .
J’ai donc l’impression que les changements au niveau de l’équipement ce font seulement quand je quitte la fonction postsave .
il n’y pas de différence entre postsave et presave est ce normal ?
je suis sur Jeedom V4.05

Bonjour
Es tu sur de toi ? Je m’en sers partout et je viens de retester et vérifier le code aucun soucis c’est bien après le save

Bonjour,

c’est pourtant comme cela que ca fonctionne, jette on oeil au core pour t’en persuader: core\class\eqLogic.class.php

oui c’est bien le phénomène que je rencontre , le démon se relance bien dans la fonction postSave donc il devrait prendre en compte les nouveaux paramètres de l’équipement mais ce n’est pas le cas . J’ai fais plusieurs essais avant de poster ce message mais je ne comprend pas .
il y a peut être une erreur sur mon code quelque part qui génère ce phénomène ?

en regardant de plus près seul les commandes de l’équipement ne sont pas mise à jour .
C’est à dire que sur l’onglet équipement les champs notés se mettent bien à jour ,
Sur l’onglet commande les commandes ne se mettent pas à jour .
commande foreach ($var->getCmd(‹ info ›) as $cmd) qui n’est pas mise à jour en fait

Le postSave de l’équipement a lieu avant la sauvegarde des commandes de l’équipement, tu as un postSave dans la classe commande aussi

ah je pense que ca vient de là , je vais mettre un post save dans la classe commande pour voir

j’ai mis un post save dans la classe monplugincmd extends qui apelle le redémarrage du démon qui est situé dans la class monpluginextends eqlogic et la tous à planté ma VM n’a jamais voulut redémarrer , savez vous pourquoi ? voici un petit exemple de ce que ça donnait .

class monplugin extends eqLogic {
public static function deamon_start(){
etc …}
}
class monpluginCmd extends cmd {
public function postSave() {
monplugin::deamon_start();
}
}

EDIT ___________________________________________________________________________
J’ai remonté une vm refais l’ essais aujourd’hui et ça fonctionne bien , a mon avis j’avais oublié un } ou une ; quelques par et je lançais des threads en boucle jusqu’ a planter la vm .

par contre il me relance autant de fois le démon qu’il y a de commande de créer , va falloir que je fasse un petit bout de code pour relancer si seulement il y a une nouvelle commande info

Je n’ai toujours pas solutionné mon probléme de PostSave ,

Le fait d’avoir mis un post save au niveau des commandes cela me relance autant de fois le démond qu’il y a de commande .
Donc le fonctionnement est le suivant :
Quand je clique sur sauvegarder , le post save s’éxecute sur chaque commande c’est bien ça ?
Moi ce que je souhaite c’est à la fin de la sauvegarde des commandes relancer mon démon pour qu’il prenne en compte les nouvelles valeurs .
Comment puis je procéder ? ( désolé mais c’est mon premier plugin je débute :innocent:)

Je crois sur l’équipement tu as un postAjax a tester peut être

1 « J'aime »

je viens de mettre un postAjax et ça marche merci…

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