Bug de valeur sur commande info

salut j’ai un peti bug incompréhensible depuis quelque temps

dans jeedom la valeur est affiché a 0

alors que dans ma bdd la valeur est a 100 :

quand cette valeur change tout est ok puis au bout d un moment elle revient a 0 sur jeedom alors que sur la bdd est est toujours a 100

Version : 4.1.20
Source : default
Branche : beta
Système : rpi4

j’ai l’impression que le problème vient de Mise à jour par : #[Salle de Bain][Capteur Température Hygrométrie SdB][Température]# qui correspond a ma commande #100# .

mais je comprend pas d’où vient cette valeur « Mise a jour par »!!

merci a vous !!!

Hello
Bien vu :face_with_monocle: Fallait le trouver ça…
J’ai aussi des « mise a jour par » qui n’ont rien à voir sur mes équipements Jeedore…

En y regardant de plus près, tout mes équipements Jeedore ont le même « mise à jour par » : #[Maison][Meteo][Condition +1]# dont l’id n’est autre que #100# :thinking:
Pas d’incohérence de valeur à 1ere vue (aucun de mes équipements Jeedore n’est visible, je ne passe que par des virtuels…) mais je vais tacher de le tracer.
Amha, quand la valeur du #100# change, tous ces « enfants » récupèrent cette valeur d’où la désynchro avec les infos brutes « au bout d’un moment »…
Pour ma part le #100# est une info string et non numeric, c’est ce qui doit bloquer la mise a jour des « enfants »…
Il serait bon de le corriger mais comment et ou :grey_question:

je pense que le probleme ce trouve ici

if(property_exists($endpoint, "linked_to")){
            $links[$cmd->getId()] = $endpoint->linked_to;
        }
        log::add ('jeedore','debug',"Saved command ".$endpoint->name." for id :".$endpoint->id );
    }
    foreach($links as $id => $logicalId)
    {
        $info = jeedoreCmd::byLogicalId($logicalId, 'info')[0];
        $action = jeedoreCmd::byId($id);
        if(!is_object($info) || !is_object($action)){
            continue;
        }
        
        $action->setValue($info->getId());
        $action->save();
        log::add ('jeedore','debug','Command linked' );
    }
}

bon vue qu’on a pas de nouvelle du dev depuis 1 ans va falloir se débrouiller par nous même !!!

bon après quelques tests je pense avoir trouvé
(je ne suis pas codeur donc ca peut engendrer d’autres problèmes mais chez moi ca fonctionne )

modif vers la ligne 120 du callback.php:

 
        foreach ($cmds as $cmd){
            $conf = $cmd->getConfiguration('conf');
            if(isset($endpoint->validity))
            {
                $cmd->setConfiguration('validity', $endpoint->validity);
            }
            //$cmd->setValue($endpoint->value);
          	 log::add ('jeedore','debug',"Info received from : ".$cmd->getEqLogic()->getName()." Id ".$endpoint->cmd." command ".$endpoint->value);

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.