Plus de prise en compte de la PAPP (ni des données)

Salut,

J’ai eu à plusieurs reprise en reboot violent de Proxmox et donc un arrêt de ma VM Jeedom.
J’ai récupéré un backup et monté ça sur une autre machine.

Pour l’heure le comportement de la puissance est étrange et je ne comprends pas pourquoi.

La dernière données, par exemple pour l’équipement 58 du réseau :

Dans la configuration de l’équipement il y a bien une valeur différente :

Et l’historique de la commande montre bien une évolution :

J’ai fais un mariadb-check et l’ensemble des tables est OK

La configuration :

Une petite idée de ce qu’il se passe ?

J’ai voulu ajouter des logs mais il y a trop de caractères pour quelques petites lignes pourtant :slight_smile:

Version : 2024-01-12 01:11:38

Comme ça, je ne vois pas trop d’où peux venir le soucis.
Peux-tu m’ouvrir un accès que je jette un coup d’oeil

Salut,

Bon alors ce matin ça a l’air mieux … je comprends pas trop le phénomène.

Le graphique ressemble à nouveau à quelque chose de normal

Et les données dans la tables arrivent à priori normalement :

Je m’aperçois par contre que ce n’est pas enregistré à chaque minute alors que je m’étais mis ça en tête. Toutefois en regardant il y a quelques jours (avant mes soucis de Proxmox), j’avais aussi des petits sauts dans l’enregistrement des valeurs.

C’est dû à quoi ? C’est un comportement normal ? Ou Jeedom qui rame et le daemon prend plus d’une minute donc ne traite pas ?

Les performances me semble plutôt dans les clous :

Chez moi, je suis pareil, enregistrement toutes les 1 min 30 environ. Tu as beaucoup d’équipements dans Suivi Conso?

J’ai :
12 ELEC
3 PROD
1 EAU

Tu n’as pas grand chose. Et effectivement le démon est normalement exécuté toutes les minutes. J’avoue que je n’ai jamais trop creusé les écarts entre les remontées. Il va falloir que je regarde. De mon coté, j’ai beaucoup d’équipement, mais je pensais que c’était plus rapide quand on en avait peu

Oki, bon c’est pas grave si c’est comme ça aussi chez toi.

J’ai pas trouvé de trace dans les logs pour essayer d’avoir des informations sur les heures où le plugin s’occupe des équipements pour enregistrer les valeurs. Ça aurait peut être permis de mieux voir si l’un prend plus de temps que les autres et occasionne le décalage

Du coup je viens de mettre des mouchards pour analyser

1 « J'aime »

Donc le fonctionnement:

  • Le démon lance la mise à jour de tous les équipements existants
  • Ensuite il attend 60s
  • Il recommence un cycle de maj + attente et ainsi de suite

Tu peux réduire le temps d’attente en modifiant dans le moteur de tache le délai d’attente

Ok, et tu as pu repérer si un équipement en particulier prenait un peu trop de temps pour que ce soit réalisé rapidement ? Finalement là on est sur 30-90 secondes de traitements d’après ce que je vois dans la table.

Non, le traitement de chaque équipement prend maximum 2 à 3s. Et j’en ai 38

Tient voilà le fichier conso_class.php à remplacer pour avoir des logs en mode débug sur les temps de traitement. (Enlever l’extension .txt) dans conso/core/class
conso.class.php.txt (60,8 Ko)
Il faut relancer le démon pour prendre en compte les modifs

OK fait et je trouve que j’ai pas beaucoup d’équipement, je ne vois pas mon équipement 58
(conso réseau) par exemple :

[2024-01-18 17:22:18]DEBUG :  ===Equipement dans boucle  : 132=====
[2024-01-18 17:22:20]DEBUG :  ===Equipement dans boucle  : 59=====
[2024-01-18 17:22:22]DEBUG :  ===Equipement dans boucle  : 139=====
[2024-01-18 17:22:22]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705594942  rec_date : 2024-01-18 rec_time :17:22:22 papp : -1 Nouvelle index : 237551.5 Ancien index237552

[2024-01-18 17:23:22]DEBUG :  ===Lancement d une série de maj =====
[2024-01-18 17:23:22]DEBUG :  ===Equipement dans boucle  : 132=====
[2024-01-18 17:23:24]DEBUG :  ===Equipement dans boucle  : 59=====
[2024-01-18 17:23:26]DEBUG :  ===Equipement dans boucle  : 139=====
[2024-01-18 17:23:26]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705595006  rec_date : 2024-01-18 rec_time :17:23:26 papp : -1 Nouvelle index : 237551.5 Ancien index237552

[2024-01-18 17:24:26]DEBUG :  ===Lancement d une série de maj =====
[2024-01-18 17:24:26]DEBUG :  ===Equipement dans boucle  : 132=====
[2024-01-18 17:24:30]DEBUG :  ===Equipement dans boucle  : 139=====
[2024-01-18 17:24:30]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705595070  rec_date : 2024-01-18 rec_time :17:24:30 papp : -1 Nouvelle index : 237551.5 Ancien index237552

En regardant à nouveau mes graphs, le soucis est de retour, arrêt des données à 12:02 (ou 12:07 ?)
image

J’ai filtré les logs sur l’histoire de la valeur non enregistrée et voilà ce que je vois :

...
[2024-01-18 07:59:58]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705561198  rec_date : 2024-01-18 rec_time :07:59:58 papp : -1 Nouvelle index : 237546.5 Ancien index237547
[2024-01-18 08:01:02]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705561262  rec_date : 2024-01-18 rec_time :08:01:02 papp : -1 Nouvelle index : 237546.5 Ancien index237547
[2024-01-18 12:08:26]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705576106  rec_date : 2024-01-18 rec_time :12:08:26 papp : -1 Nouvelle index : 237551.5 Ancien index237552
[2024-01-18 12:09:30]DEBUG :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705576170  rec_date : 2024-01-18 rec_time :12:09:30 papp : -1 Nouvelle index : 237551.5 Ancien index237552
....

Entre 08:01 et 12:09, plus de message de ce type et c’est justement l’intervalle de temps pendant lequel les données ont bien été prises en compte.
On dirait que le plugin s’arrête sur cet évènement et ne continue pas sur les autres équipements.

Une idée ?

En creusant un poil sur ce soucis de l’équipement 139, c’est ma conso d’eau chaude.
L’index est actuellement de 237551.5 et il a visiblement enregistré un nombre arrondi le coup d’avant 237552. C’est surement pour ça que ça déconne …
Edit : Bon j’ai mis un round(…) dans la commande de l’equipement suivi-conso, ça devrait débloquer la situation

Tu sais à quoi sert cette ligne "sleep(2);//!!!!obligatoire !!!! sur la ligne 729 parce que du coup c’est pour ça que ça prend pas mal de temps (même si la fonction est sacrément compliquée en première lecture). C’est toi qui l’avait mis ou Mickeys ?

C’est Mickeys. mais je trouve que ça cadence le truc. Pour mois c’est pas gênant. En fait Le return dans le cas d’un index inférieur est mal venu.
Je viens de faire un correctif.
conso.class.php.txt (60,8 Ko)

1 « J'aime »

J’ai mis à jour merci. J’ai viré le round, mais je me pense que je ferais mieux de le laisser. C’est juste bizarre que je me sois rendu comp6du soucis que maintenant

C’est une modif que j’ai fait dans la dernière version. C’est pour cela. Elle n’était pas tout à fait au point :confused:

Est-ce que c’est l’histoire de l’enregistrement du nombre à virgule dont tu parles ?

Si on arrive avec une valeur de 10,5 et qu’il est enregistré avec une valeur à 11, sans évolution de cet index, la valeur sera inférieur à ce qui est dans la base lors de traitement suivant et un message apparaîtra (maintenant il n’y aura toutefois plus de soucis pour le traitement des autres équipements).

Tu crois pouvoir y faire un truc coup ?

Je parle du contrôle « Valeur non enregistrée car index inférieur au précédent ». Avant il n’y était pas et l’enregistrement de valeurs des autres équipements continuait

Bon, ben j’ai eu le même soucis, un peu comme prévu depuis hier soir et donc j’ai aucune donnée, ni de puissance, ni de consommation depuis cette nuit :

[2024-01-18 23:00:24][DEBUG] :  ===Lancement d une série de maj =====
[2024-01-18 23:00:24][DEBUG] :  ===Equipement dans boucle  : 132=====
[2024-01-18 23:00:26][DEBUG] :  ===Equipement dans boucle  : 59=====
[2024-01-18 23:00:28][DEBUG] :  ===Equipement dans boucle  : 139=====
[2024-01-18 23:00:28][DEBUG] :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705615228  rec_date : 2024-01-18 rec_time :23:00:28 papp : -1 Nouvelle index : 237577.5 Ancien index237578
[2024-01-18 23:01:28][DEBUG] :  ===Lancement d une série de maj =====
[2024-01-18 23:01:28][DEBUG] :  ===Equipement dans boucle  : 132=====
[2024-01-18 23:01:30][DEBUG] :  ===Equipement dans boucle  : 59=====
[2024-01-18 23:01:32][DEBUG] :  ===Equipement dans boucle  : 139=====
[2024-01-18 23:01:32][DEBUG] :  --- Valeur non enregistrée car index inférieur au précédent ->eq_id : 139   timestamp : 1705615292  rec_date : 2024-01-18 rec_time :23:01:32 papp : -1 Nouvelle index : 237577.5 Ancien index237578

Je vais remettre mon round() sur le nombre d’impulsion totale, je pense qu’il y a un truc qui a changé là dessus quand même depuis les dernières versions, et le dernier fichier que tu as mis ici n’a pas l’air de régler le soucis.

round(#[Maison][Pilotage ECS - Informations MQTT][Index eau chaude new]#/0.2,0)