Fix: toggle reset ke OFF jika data tidak fresh (>30 detik)
This commit is contained in:
parent
0d16601ec5
commit
ed2afaf941
|
|
@ -131,27 +131,51 @@ export default function ControlPanel() {
|
|||
const isDataFresh = dataAge < 30000 // Data dianggap segar jika < 30 detik
|
||||
|
||||
setCurrentTemp(result.data.suhu)
|
||||
setIsPowerOn(result.data.heater) // Heater + Fan In status
|
||||
|
||||
// Jika data fresh, update dari backend. Jika tidak, set ke false (default OFF)
|
||||
if (isDataFresh) {
|
||||
const heaterStatus = result.data.heater === true || result.data.heater === 'true'
|
||||
setIsPowerOn(heaterStatus)
|
||||
|
||||
// Exhaust
|
||||
if (result.data.exhaust !== undefined) {
|
||||
const exhaustStatus = result.data.exhaust === true || result.data.exhaust === 'true'
|
||||
setIsExhaustOn(exhaustStatus)
|
||||
}
|
||||
} else {
|
||||
// Data sudah lama, set toggle ke OFF untuk keamanan
|
||||
setIsPowerOn(false)
|
||||
setIsExhaustOn(false)
|
||||
}
|
||||
|
||||
console.log('Data dari backend:', {
|
||||
heater: result.data.heater,
|
||||
fan: result.data.fan,
|
||||
dataAge: `${Math.floor(dataAge / 1000)}s`,
|
||||
isDataFresh: isDataFresh,
|
||||
toggleStatus: isDataFresh ? result.data.heater : false
|
||||
})
|
||||
|
||||
if (result.data.setpoint) {
|
||||
setTargetTemp(result.data.setpoint)
|
||||
}
|
||||
// Jika backend mengembalikan status exhaust
|
||||
if (result.data.exhaust !== undefined) {
|
||||
setIsExhaustOn(result.data.exhaust)
|
||||
}
|
||||
|
||||
// Set hasData hanya jika data segar
|
||||
setHasData(isDataFresh)
|
||||
setLastDataTime(new Date(result.data.createdAt))
|
||||
setError(null)
|
||||
} else {
|
||||
// Tidak ada data
|
||||
// Tidak ada data - reset semua ke default
|
||||
setHasData(false)
|
||||
setLastDataTime(null)
|
||||
setIsPowerOn(false)
|
||||
setIsExhaustOn(false)
|
||||
}
|
||||
} catch (err) {
|
||||
setError('Gagal memuat data sensor')
|
||||
setHasData(false)
|
||||
setIsPowerOn(false)
|
||||
setIsExhaustOn(false)
|
||||
console.error('Error fetching latest data:', err)
|
||||
} finally {
|
||||
setLoading(false)
|
||||
|
|
|
|||
Loading…
Reference in New Issue