Bhaskar 7 months ago
commit 5bb68828cb

@ -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(

Loading…
Cancel
Save