diff --git a/VERSION b/VERSION index de28578..91c74a5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.7.6 +1.7.7 diff --git a/changelog.json b/changelog.json index 5331832..73a50f0 100644 --- a/changelog.json +++ b/changelog.json @@ -1,5 +1,20 @@ { "versions": [ + { + "version": "1.7.7", + "date": "2026-05-12", + "changes": { + "features": [], + "improvements": [], + "fixes": [ + "Page database (Informations sur la base): la colonne 'Plus récente' affichait 'not connected' a cause d'un tri lexicographique mixant des chaines 'not connected' et des dates ISO. Les requetes MIN/MAX excluent maintenant 'not connected'." + ], + "compatibility": [ + "Aucun impact sur les donnees: les lignes 'not connected' restent en base, elles sont juste ignorees pour le calcul des bornes temporelles affichees" + ] + }, + "notes": "Effet de bord du bug RTC corrige en v1.7.4: les capteurs deployes avec un rtc_save_to_db.service inactif ont accumule des lignes avec timestamp='not connected'. En tri ASCII, 'n' > '2' donc MAX(timestamp) renvoyait 'not connected' au lieu de la vraie date la plus recente." + }, { "version": "1.7.6", "date": "2026-05-12", diff --git a/html/launcher.php b/html/launcher.php index 1682a28..141abe3 100755 --- a/html/launcher.php +++ b/html/launcher.php @@ -675,8 +675,11 @@ if ($type == "db_table_stats") { $oldest = null; $newest = null; if ($count > 0) { - $oldestResult = $db->query("SELECT MIN(timestamp) as ts FROM $tableName")->fetch(); - $newestResult = $db->query("SELECT MAX(timestamp) as ts FROM $tableName")->fetch(); + // Exclude 'not connected' rows: these are sensor readings collected + // while the RTC service was down. They are lexicographically > real + // timestamps so they corrupt MAX() (and MIN() too, less obviously). + $oldestResult = $db->query("SELECT MIN(timestamp) as ts FROM $tableName WHERE timestamp != 'not connected'")->fetch(); + $newestResult = $db->query("SELECT MAX(timestamp) as ts FROM $tableName WHERE timestamp != 'not connected'")->fetch(); $oldest = $oldestResult['ts']; $newest = $newestResult['ts']; }