Consommation mémoire

Tags: #<Tag:0x00007f3857bad2b8>

Bonjour,

J’ai un problème de consommation mémoire du plugin.
Le htop me montre plein de threads non fermé au bout de 8 heures de fonctionnement et continu à augmenté. Le cron_id 174 correspond au cronjob du plugin SPA Balboa.

J’utilise un NAS DS218+ avec VM pour mon jeedom et a la dernière version stable du plugin.

J’ai essayé de gérer moi même l’utilise de la mémoire du plugin mais sans résultat.
Pour info, mon point d’accès wifi est relativement loin et j’ai souvent des échecs de tentatives de connexion au spa.

Merci pour votre aide.

David

htop spa
cronjob174
histo mémoire jeedom vm
notifjeedom spa

Merci pour les info je vais revoir ma copie

N’hésite pas à me demander des infos ou si tu as besoin d’accéder à mon installation.

Pour le moment je me bats avec mon serveur qui a une kermel Panic.

Ouch!
Ca sent le RAZ ça !

Et bah même ça il veut pas
Je me bat avec les disques qui ne veulent pas effacer leur partition.
Bref ça va m’énerver un moment

Bonjour,

Merci pour les 2 dernières mises à jour. Je n’ai plus de fuite mémoire et les ordres et informations sont bien envoyé à partir du dashboard.
Je remarque 2 petites problèmes :

  • quand je suis dans le mode range « low », le bouton pour augmenter la température de consigne ne fonctionne pas. Par exemple, je suis à 35°C, je veux augmenter à 36°C, ce n’est pas possible chez moi.
  • L’historique de température de consigne affiche d’autres valeurs que celle réellement (voir screenshot). Alors que l’affichage est correct dans le dashboard.

image

Merci pour tout ce travail effectué ! J’ai acheté mon jacuzzi en fonction de la possibilité de le domotiser ou non et ton plugin m’a permis cela.

A tu les log lors du changement de temperature
Je ne comprend pas pourquoi il refuserai d’augementé de 1°C

Peux tu confirmer que la valeur historisé est le double de la valeur demandé?

Hello,

En augmentant ma consigne en range low, je n’ai rien dans les logs qui apparait.
Par contre, je viens de faire plusieurs tests et je me suis aperçu que le range low permet une température entre 10 et 26°C et le range high entre 26 et 40°C. Avec l’application, les seuils sont différents (low : 10-37°C, high:26.5-40). Est-ce normal de ne pas avoir les mêmes seuils ?

Pour l’historisation de la température, les valeurs vont entre des valeurs correctes (34 à 36°) à des valeurs incorrectes ( 46.88, 58.75, 66.25, 81.25, 42.33, 58.25, 40.63). Ses valeurs incorrectes reviennent dans le temps comme tu as pu le voir sur ma dernière copie d’écran. Ce ne sont pas des valeurs doublées par rapport à la réalité. En l’état, la température du jacuzzi n’est pas exploitable pour s’en servir dans des scénarios.

C’est peut etre un erreur faut que je fasse une recherche

La je ne comprend par trop c’est pas le plugin qui enregistre mais le core
Est ce que la valeur affiché est bonne?

J’ai jeté un oeil sur le code.

Dans balboa.class.php, function updateConsigneRange, les valeurs pour le range low et high sont décrites comme cela :
image

Ca serait pas mal que ça corresponde à celle de l’appli.

La je ne comprend par trop c’est pas le plugin qui enregistre mais le core
Est ce que la valeur affiché est bonne?

Oui, la valeur affichée est bonne. En regardant les logs, RX n’envoi jamais une mauvaise valeure, mise à part le 0xff quand la pompe de circulation n’est pas enclenchée mais que tu ne prends jamais. Après si c’est un problème dans le core, ça dépasse mes compétences.

En tout cas, mes autres historiques n’ont pas ce problème de valeurs incorrectes.

Ca pourrait être dans cette fonction le problème de l’historique… Je ne comprends pas ce qu’elle fait exactement.

public function setCaracterisation($TempActuel) {
                $TemperatureEauCmd=$this->getCmd(null,'temperature');
                if(is_object($TemperatureEauCmd)){
                        $LastTemperatureEau = $TemperatureEauCmd->execCmd();
                        $LastTemperatureEauCollectDate=DateTime::createFromFormat("Y-m-d H:i:s", $TemperatureEauCmd->getValueDate());
                        if($LastTemperatureEauCollectDate !== false){
                                $DeltaTime= time() - $LastTemperatureEauCollectDate->getTimestamp();
                                if($DeltaTime > 0){
                                        $DeltaTemp = ($LastTemperatureEau - $TempActuel) / $DeltaTime;// delta de temperature par seconde
                                        if($DeltaTemp > 0 ){
                                                $cache = cache::byKey('balboa::Caracterisation::'.$this->getId());
                                                $Caracterisation = json_decode($cache->getValue('[]'), true);
                                                if($DeltaTemp < $Caracterisation[round($TempActuel)] * 0.95 || $DeltaTemp > $Caracterisation[round($TempActuel)] * 1.05){
                                                        $Caracterisation[round($TempActuel)] = ($DeltaTemp + $Caracterisation[round($TempActuel)]) /2;
                                                        cache::set('balboa::Caracterisation::'.$this->getId(), json_encode($Caracterisation), 0);
                                                        log::add('balboa', 'debug', $this->getHumanName() . '[Caracterisation] '.json_encode($Caracterisation));
                                                }
                                        }
                                }
                        }
                }
        }

Pour la range j’ai fait la modification elle sera dans une version future
Je ne sais plus pourquoi j’ai mis une caracterisation de la chute d’eau, il me semble que c’est pour estimé le temps de chauffe et anticipé.
En aucun cas on met a jours une commande ici donc pas d’historique non plus

Edit

Le sujet du poste ne correspond plus au probleme
Peux tu ouvrir un poste par probleme

Merci pour la modif de la température max du range low.

J’ouvre un autre sujet.

Si plus de soucis de consommation de mémoire peux tu ferme le sujet