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 ![]()
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|)

