Problème pour l'extraction de l'historique d'une commande lors d'un regroupement

Bonjour à tous, je vous sollicite pour avoir vos lumières et savoir si ce que je rencontre est un bug dans jeedom ou bien une erreur de ma part.

Voici ma page santé, jeedom 4.5 installé sous une machine virtuelle VirtualBox en debian 12

Mon souci se situe dans l’extraction de l’historique d’une commande. Dans mon nouveau plugin jeeHistoGraph je souhaite récupérer la valeur max d’une commande pour toutes les journées de la semaine (c’est un exemple). La commande que j’ai testée est celle qui contient le relevé de l’index de mon compteur et c’est donc une valeur qui ne fait que s’incrémenter au fil de la journée, elle contient une valeur par heure. Lorsque je suis dans l’historique de jeedom et que je demande le max de la journée j’obtiens par exemple pour le 18/12/25= 10 061 181

Je constate dans la base de donnée que la datetime correspondant à 10 061 181 est le 19/12/25 à 0:00:00 ce qui est logique si on considère que la première valeur d’une journée est la dernière de la précédente

Je constate que dans history.php la value pour extraire la valeur max de la journée est « high::day » <option value="high::day">{{Maximum par jour}}</option>

Lorsque dans mon plugin je code :

                $histo = $cmd->getHistory($startTime, isset($endTime) ? $endTime : null, $jeeApprox, true);
                log::add(__CLASS__, 'debug', " recherche histo: startTime: {$startTime}, endTime: " . (isset($endTime) ? $endTime : null) . ", jeeApprox: {$jeeApprox}, true");
                log::add(__CLASS__, 'debug', "histo 1 " . print_r($histo, true));

J’obtiens dans les logs:

0071|[2025-12-20 09:23:29] DEBUG   recherche histo: startTime: 2025-12-15 00:00:00, endTime: 2025-12-20 09:23:29, jeeApprox: high::day, true
0072|[2025-12-20 09:23:29] DEBUG  histo 1 Array
0073|(
0074|[0] => history Object
0075|(
0076|[cmd_id:protected] => 643
0077|[value:protected] => 9998819.00
0078|[datetime:protected] => 2025-12-15
0079|[_changed:protected] =>
0080|[_tableName:protected] => history
0081|)
0082|[1] => history Object
0083|(
0084|[cmd_id:protected] => 643
0085|[value:protected] => 9973048.00
0086|[datetime:protected] => 2025-12-15
0087|[_changed:protected] =>
0088|[_tableName:protected] => history
0089|)
0090|[2] => history Object
0091|(
0092|[cmd_id:protected] => 643
0093|[value:protected] => 10014481.00
0094|[datetime:protected] => 2025-12-16
0095|[_changed:protected] =>
0096|[_tableName:protected] => history
0097|)
0098|[3] => history Object
0099|(
0100|[cmd_id:protected] => 643
0101|[value:protected] => 10047176.00
0102|[datetime:protected] => 2025-12-17
0103|[_changed:protected] =>
0104|[_tableName:protected] => history
0105|)
0106|[4] => history Object
0107|(
0108|[cmd_id:protected] => 643
0109|[value:protected] => 10061181.00
0110|[datetime:protected] => 2025-12-18
0111|[_changed:protected] =>
0112|[_tableName:protected] => history
0113|)
0114|[5] => history Object
0115|(
0116|[cmd_id:protected] => 643
0117|[value:protected] => 10081610.00
0118|[datetime:protected] => 2025-12-19
0119|[_changed:protected] =>
0120|[_tableName:protected] => history
0121|)
0122|[6] => history Object
0123|(
0124|[cmd_id:protected] => 643
0125|[value:protected] => 10087668.00
0126|[datetime:protected] => 2025-12-20
0127|[_changed:protected] =>
0128|[_tableName:protected] => history
0129|)
0130|)

Je constate que le 15/12/25 apparait 2 fois, la première fois avec la valeur correspondant au datetime: 2025-12-16 00:00:00 => pour moi c’est ok mais la deuxième fois c’est la valeur correspondant au datetime: 2025-12-15 00:00:00 => pourquoi? Ensuite toutes les valeurs qui sont récupérée correspondent à la date indiquée dans le champs datetime mais à 00:00:00 donc la première valeur de la journée et non pas la dernière qui est la max.

Extrait de la base de donnée:

 modifier	643	2025-12-14 00:00:00	9942352
 modifier	643	2025-12-15 00:00:00	9973048
 modifier	643	2025-12-16 00:00:00	9998819
 modifier	643	2025-12-17 00:00:00	10014481
 modifier	643	2025-12-18 00:00:00	10047176
 modifier	643	2025-12-19 00:00:00	10061181
 modifier	643	2025-12-20 00:00:00	10081610

Je ne comprends pas que l’historique de jeedom avec high::day soit ok et que je n’obtienne pas le même résultat… Est ce qu’il y a un post traitement? J’utilise mal la fonction gethistory?

J’espère avoir été clair et merci pour vos lumières qui sont toujours éclairantes :wink:

Je précise que même si je mets false à la dernière option de gethistory le résultat est le même:

0140|[2025-12-20 09:36:00] DEBUG   recherche histo: startTime: 2025-12-15 00:00:00, endTime: 2025-12-20 09:36:00, jeeApprox: high::day, false
0141|[2025-12-20 09:36:00] DEBUG  histo 1 Array
0142|(
0143|[0] => history Object
0144|(
0145|[cmd_id:protected] => 643
0146|[value:protected] => 9973048.00
0147|[datetime:protected] => 2025-12-15
0148|[_changed:protected] =>
0149|[_tableName:protected] => history
0150|)
0151|[1] => history Object
0152|(
0153|[cmd_id:protected] => 643
0154|[value:protected] => 9998819.00
0155|[datetime:protected] => 2025-12-15
0156|[_changed:protected] =>
0157|[_tableName:protected] => history
0158|)
0159|[2] => history Object
0160|(
0161|[cmd_id:protected] => 643
0162|[value:protected] => 10014481.00
0163|[datetime:protected] => 2025-12-16
0164|[_changed:protected] =>
0165|[_tableName:protected] => history
0166|)
0167|[3] => history Object
0168|(
0169|[cmd_id:protected] => 643
0170|[value:protected] => 10047176.00
0171|[datetime:protected] => 2025-12-17
0172|[_changed:protected] =>
0173|[_tableName:protected] => history
0174|)
0175|[4] => history Object
0176|(
0177|[cmd_id:protected] => 643
0178|[value:protected] => 10061181.00
0179|[datetime:protected] => 2025-12-18
0180|[_changed:protected] =>
0181|[_tableName:protected] => history
0182|)
0183|[5] => history Object
0184|(
0185|[cmd_id:protected] => 643
0186|[value:protected] => 10081610.00
0187|[datetime:protected] => 2025-12-19
0188|[_changed:protected] =>
0189|[_tableName:protected] => history
0190|)
0191|[6] => history Object
0192|(
0193|[cmd_id:protected] => 643
0194|[value:protected] => 10087668.00
0195|[datetime:protected] => 2025-12-20
0196|[_changed:protected] =>
0197|[_tableName:protected] => history
0198|)
0199|)

Argh je me suis croisé les yeux depuis plusieurs heures sur cette sdqfgsfghsfgbnf de commande entre 10061181 et 10081610. Désolé.

Encore désolé

Il reste tout de même la 2 ème valeur du 15-12-2025 qui est celle de ce jour à 00:00:00 et je pense qu’elle devrait être en premier

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