diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 478555ad..f85b4aa1 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -6218,20 +6218,25 @@ async function processIotData(hw_Id, data) { if (tankHeight <= 0) { const now = moment().tz('Asia/Kolkata'); - if (existingTank.slave_status === "working") { + if ( + existingTank.slave_status !== "signal_lost1" && + existingTank.slave_status !== "not_working" + ) { // First time signal is lost existingTank.slave_status = "signal_lost1"; - existingTank.slave_signal_lost_time = now.format('DD-MMM-YYYY - HH:mm:ss'); - await existingTank.save(); - console.log(now.format('DD-MMM-YYYY - HH:mm:ss'),"in signal lost") - console.log(`⚠️ Signal lost for tank [${tankhardwareId}] at ${existingTank.slave_signal_lost_time}`); + if (!existingTank.slave_signal_lost_time) { + existingTank.slave_signal_lost_time = now.format('DD-MMM-YYYY - HH:mm:ss'); + console.log(`⚠️ Signal lost for tank [${tankhardwareId}] at ${existingTank.slave_signal_lost_time}`); + } + + await existingTank.save(); } else if (existingTank.slave_status === "signal_lost1") { const lostTime = moment(existingTank.slave_signal_lost_time, 'DD-MMM-YYYY - HH:mm:ss'); const minutesElapsed = now.diff(lostTime, 'minutes'); - console.log(now.format('DD-MMM-YYYY - HH:mm:ss'),"in comparing signal lost") + console.log(`⏳ ${minutesElapsed} min since signal lost for tank [${tankhardwareId}]`); + if (minutesElapsed >= 15) { - console.log(now.format('DD-MMM-YYYY - HH:mm:ss'),"in not_working") existingTank.slave_status = "not_working"; existingTank.slave_disconnected_time = now.format('DD-MMM-YYYY - HH:mm:ss'); await existingTank.save(); @@ -6255,10 +6260,7 @@ async function processIotData(hw_Id, data) { } console.log(`❌ Slave marked as not_working for tank [${tankhardwareId}] at ${existingTank.slave_disconnected_time}`); - } else { - console.log(`⏳ Slave still in signal_lost for tank [${tankhardwareId}], waiting for 15 mins.`); } - } else { console.log(`⏩ Slave already marked as ${existingTank.slave_status} for tank [${tankhardwareId}], skipping update.`); }