|
|
@ -6218,20 +6218,25 @@ async function processIotData(hw_Id, data) {
|
|
|
|
if (tankHeight <= 0) {
|
|
|
|
if (tankHeight <= 0) {
|
|
|
|
const now = moment().tz('Asia/Kolkata');
|
|
|
|
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
|
|
|
|
// First time signal is lost
|
|
|
|
existingTank.slave_status = "signal_lost1";
|
|
|
|
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") {
|
|
|
|
} else if (existingTank.slave_status === "signal_lost1") {
|
|
|
|
const lostTime = moment(existingTank.slave_signal_lost_time, 'DD-MMM-YYYY - HH:mm:ss');
|
|
|
|
const lostTime = moment(existingTank.slave_signal_lost_time, 'DD-MMM-YYYY - HH:mm:ss');
|
|
|
|
const minutesElapsed = now.diff(lostTime, 'minutes');
|
|
|
|
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) {
|
|
|
|
if (minutesElapsed >= 15) {
|
|
|
|
console.log(now.format('DD-MMM-YYYY - HH:mm:ss'),"in not_working")
|
|
|
|
|
|
|
|
existingTank.slave_status = "not_working";
|
|
|
|
existingTank.slave_status = "not_working";
|
|
|
|
existingTank.slave_disconnected_time = now.format('DD-MMM-YYYY - HH:mm:ss');
|
|
|
|
existingTank.slave_disconnected_time = now.format('DD-MMM-YYYY - HH:mm:ss');
|
|
|
|
await existingTank.save();
|
|
|
|
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}`);
|
|
|
|
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 {
|
|
|
|
} else {
|
|
|
|
console.log(`⏩ Slave already marked as ${existingTank.slave_status} for tank [${tankhardwareId}], skipping update.`);
|
|
|
|
console.log(`⏩ Slave already marked as ${existingTank.slave_status} for tank [${tankhardwareId}], skipping update.`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|