diff --git a/src/shared/services/mqttSubscriber.ts b/src/shared/services/mqttSubscriber.ts index aec5de4..e0c1f87 100644 --- a/src/shared/services/mqttSubscriber.ts +++ b/src/shared/services/mqttSubscriber.ts @@ -92,12 +92,14 @@ function parseDeviceTime(value: unknown) { return new Date().toISOString(); } + // QF100 firmware sends NTP-local WIB time (UTC+7) in YYYYMMDDHHMMSS. + // Store timestamps in UTC so heartbeat age and last-seen calculations stay correct. const parsed = new Date( Date.UTC( Number(match[1]), Number(match[2]) - 1, Number(match[3]), - Number(match[4]), + Number(match[4]) - 7, Number(match[5]), Number(match[6]) )