diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 06872083..d118c8d4 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -1572,18 +1572,18 @@ eventEmitter.on('sendCriticalHighWaterNotification', async (fcmTokens, tankInfo, // }); -// eventEmitter.on('sendThresholdTimeNotification', async (customerId, fcmTokens, thresholdTime, hw_Id, tankName, blockName) => { -// try { -// const message = -// `🛢️ Tank Name: '${tankName}'\n` + -// `🏢 Block Name: '${blockName}'\n` + -// `Motor Stopped as it completed ${thresholdTime} minutes.`; -// await sendNotification(hw_Id, customerId, fcmTokens, 'Motor Alert', message); -// console.log("Threshold time notification sent successfully."); -// } catch (error) { -// console.error("Error sending threshold time notification:", error); -// } -// }); +eventEmitter.on('sendThresholdTimeNotification', async (customerId, fcmTokens, thresholdTime, hw_Id, tankName, blockName) => { + try { + const message = + `🛢️ Tank Name: '${tankName}'\n` + + `🏢 Block Name: '${blockName}'\n` + + `Motor Stopped as it completed ${thresholdTime} minutes.`; + await sendNotification(hw_Id, customerId, fcmTokens, 'Motor Alert', message); + console.log("Threshold time notification sent successfully."); + } catch (error) { + console.error("Error sending threshold time notification:", error); + } +}); // eventEmitter.on( // 'sendMotorStartNotification', @@ -2343,8 +2343,13 @@ cron.schedule("* * * * *", async () => { // } // }; + + + exports.publishMotorStopStatus = async (motor_id, motor_stop_status) => { + console.log("entered publish",motor_id,motor_stop_status) const deviceTopic = `water/operation/${motor_id}`; // Target specific IoT + console.log(deviceTopic,"deviceTopic") const payload = { topic: 'operation', object: { @@ -3057,7 +3062,7 @@ exports.motorAction = async (req, reply) => { receiverInitialwaterlevel: parseInt(receiverTank.waterlevel, 10) }); await newMotorData.save(); - + console.log("entered time",motorId,motorStopStatus) // Update the tank connections with start time and threshold time for await (const tank of Tank.find({ "connections.inputConnections.motor_id": motorId })) { this.publishMotorStopStatus(motorId, motorStopStatus); @@ -3104,29 +3109,29 @@ exports.motorAction = async (req, reply) => { const notificationKey = `${customerId}_${motorId}_threshold`; // Check if the notification has already been sent - // if (!notificationTracker.get(notificationKey)) { - // console.log("Sending threshold time notification..."); + if (!notificationTracker.get(notificationKey)) { + console.log("Sending threshold time notification..."); - // eventEmitter.emit( - // "sendThresholdTimeNotification", - // customerId, - // fcmToken, - // manual_threshold_time, - // motorId, - // tankName, - // blockName - // ); - - // // Mark notification as sent - // notificationTracker.set(notificationKey, true); - - // // Optionally, reset the flag after some time (e.g., 24 hours) - // setTimeout(() => { - // notificationTracker.delete(notificationKey); - // }, 24 * 60 * 60 * 1000); // Reset after 24 hours - // } else { - // console.log("Notification already sent, skipping..."); - // } + eventEmitter.emit( + "sendThresholdTimeNotification", + customerId, + fcmToken, + manual_threshold_time, + motorId, + tankName, + blockName + ); + + // Mark notification as sent + notificationTracker.set(notificationKey, true); + + // Optionally, reset the flag after some time (e.g., 24 hours) + setTimeout(() => { + notificationTracker.delete(notificationKey); + }, 24 * 60 * 60 * 1000); // Reset after 24 hours + } else { + console.log("Notification already sent, skipping..."); + } const currentTime = moment().tz('Asia/Kolkata').format('DD-MMM-YYYY - HH:mm'); await Tank.updateOne(