diff --git a/html/assets/js/selftest.js b/html/assets/js/selftest.js
index 2454a5c..1080104 100644
--- a/html/assets/js/selftest.js
+++ b/html/assets/js/selftest.js
@@ -246,7 +246,7 @@ async function selfTestSequence() {
addSelfTestLog(`Device ID: ${selfTestReport.deviceId}`);
addSelfTestLog(`Device Name: ${selfTestReport.deviceName}`);
addSelfTestLog(`Modem Version: ${selfTestReport.modemVersion}`);
- addSelfTestLog(`System Time (RTC): ${selfTestReport.systemTime}`);
+ addSelfTestLog(`RTC Time: ${selfTestReport.systemTime}`);
addSelfTestLog(`Browser Time: ${new Date().toLocaleString()}`);
addSelfTestLog(`GPS: ${selfTestReport.latitude}, ${selfTestReport.longitude}`);
addSelfTestLog('────────────────────────────────────────────────────────');
@@ -449,16 +449,19 @@ async function selfTestSequence() {
updateTestStatus(sensor.id, 'Failed', 'RTC module not connected', 'bg-danger');
testsFailed++;
} else if (rtcResult.rtc_module_time) {
- const timeDiff = rtcResult.time_difference_seconds;
- if (typeof timeDiff === 'number' && Math.abs(timeDiff) <= 60) {
- updateTestStatus(sensor.id, 'Passed', `${rtcResult.rtc_module_time} (sync OK, diff: ${timeDiff}s)`, 'bg-success');
+ // Compare RTC with browser time (more reliable than system time)
+ const rtcDate = new Date(rtcResult.rtc_module_time + ' UTC');
+ const browserDate = new Date();
+ const timeDiff = Math.abs(Math.round((browserDate - rtcDate) / 1000));
+
+ if (timeDiff <= 60) {
+ updateTestStatus(sensor.id, 'Passed', `${rtcResult.rtc_module_time} (sync OK vs navigateur, ecart: ${timeDiff}s)`, 'bg-success');
testsPassed++;
- } else if (typeof timeDiff === 'number') {
- updateTestStatus(sensor.id, 'Warning', `${rtcResult.rtc_module_time} (out of sync: ${timeDiff}s)`, 'bg-warning');
- testsFailed++;
} else {
- updateTestStatus(sensor.id, 'Passed', `${rtcResult.rtc_module_time}`, 'bg-success');
- testsPassed++;
+ const minutes = Math.floor(timeDiff / 60);
+ const label = minutes > 0 ? `${minutes}min ${timeDiff % 60}s` : `${timeDiff}s`;
+ updateTestStatus(sensor.id, 'Warning', `${rtcResult.rtc_module_time} (desync vs navigateur: ${label})`, 'bg-warning');
+ testsFailed++;
}
} else {
updateTestStatus(sensor.id, 'Warning', 'Unexpected response', 'bg-warning');