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