@ -1565,14 +1565,14 @@ admin.initializeApp({
// });
eventEmitter . on ( 'motorStart' , async ( fcmTokens , timestamp , motorId , waterLevel , blockName , tankName , startTime , motorOnType , stopCriteria ) => {
const message = ` Water supply from '${ blockName } ' to ' ${ tankName } ' started at ${ startTime } by ' ${ motorOnType } ' mode and will stop after ${ stopCriteria } . Current Water Level: ${ waterLevel } Ltrs. ` ;
const message = ` MotorId '${ motorId } ' Water supply from '${ blockName } ' to ' ${ tankName } ' started at ${ startTime } by ' ${ motorOnType } ' mode and will stop after ${ stopCriteria } . Current Water Level: ${ waterLevel } Ltrs. ` ;
await sendNotification ( fcmTokens , 'Motor Started' , message ) ;
} ) ;
// Emit motor stop event with motorId
eventEmitter . on ( 'motorStop' , async ( fcmTokens , timestamp , motorId , waterLevel , blockName , tankName , stopTime , motorOnType ) => {
const message = ` Water supply from '${ blockName } ' to ' ${ tankName } ' stopped at ${ stopTime } by ' ${ motorOnType } ' mode. Current Water Level: ${ waterLevel } Ltrs. ` ;
const message = ` MotorId '${ motorId } ' Water supply from '${ blockName } ' to ' ${ tankName } ' stopped at ${ stopTime } by ' ${ motorOnType } ' mode. Current Water Level: ${ waterLevel } Ltrs. ` ;
await sendNotification ( fcmTokens , 'Motor Stopped' , message ) ;
} ) ;
@ -2027,50 +2027,50 @@ exports.motorAction = async (req, reply) => {
const currentWaterLevel = parseInt ( receiverTank . waterlevel , 10 ) ;
const waterLevelThresholds = { low : 30 , veryLow : 20 , criticallyLow : 10 } ;
// Check if the water level is below any of the thresholds
if ( currentWaterLevel < waterLevelThresholds . criticallyLow ) {
if ( ! receiverTank . notificationSentCritical ) {
eventEmitter . emit ( 'sendCriticalLowWaterNotification' , fcmToken , receiverTank ) ;
await Tank . updateOne ( { customerId , tankName : receiverTank . tankName } , { $set : { notificationSentCritical : true } } ) ;
}
} else if ( currentWaterLevel < waterLevelThresholds . veryLow ) {
if ( ! receiverTank . notificationSentVeryLow ) {
eventEmitter . emit ( 'sendVeryLowWaterNotification' , fcmToken , receiverTank ) ;
await Tank . updateOne ( { customerId , tankName : receiverTank . tankName } , { $set : { notificationSentVeryLow : true } } ) ;
}
} else if ( currentWaterLevel < waterLevelThresholds . low ) {
if ( ! receiverTank . notificationSentLow ) {
eventEmitter . emit ( 'sendLowWaterNotification' , fcmToken , receiverTank ) ;
await Tank . updateOne ( { customerId , tankName : receiverTank . tankName } , { $set : { notificationSentLow : true } } ) ;
}
}
// // Check if the water level is below any of the thresholds
// if (currentWaterLevel < waterLevelThresholds.criticallyLow) {
// if (!receiverTank.notificationSentCritical) {
// eventEmitter.emit('sendCriticalLowWaterNotification', fcmToken, receiverTank);
// await Tank.updateOne({ customerId, tankName: receiverTank.tankName }, { $set: { notificationSentCritical: true } });
// }
// } else if (currentWaterLevel < waterLevelThresholds.veryLow) {
// if (!receiverTank.notificationSentVeryLow) {
// eventEmitter.emit('sendVeryLowWaterNotification', fcmToken, receiverTank);
// await Tank.updateOne({ customerId, tankName: receiverTank.tankName }, { $set: { notificationSentVeryLow: true } });
// }
// } else if (currentWaterLevel < waterLevelThresholds.low) {
// if (!receiverTank.notificationSentLow) {
// eventEmitter.emit('sendLowWaterNotification', fcmToken, receiverTank);
// await Tank.updateOne({ customerId, tankName: receiverTank.tankName }, { $set: { notificationSentLow: true } });
// }
// }
// Check for critical high water level
if ( currentWaterLevel >= criticalHighWaterThreshold ) {
if ( ! receiverTank . notificationSentCriticalHigh ) {
eventEmitter . emit ( 'sendCriticalHighWaterNotification' , fcmToken , receiverTank ) ;
await Tank . updateOne ( { customerId , tankName : receiverTank . tankName } , { $set : { notificationSentCriticalHigh : true } } ) ;
}
}
// Check for very high water level
else if ( currentWaterLevel >= veryHighWaterThreshold ) {
if ( ! receiverTank . notificationSentVeryHigh ) {
eventEmitter . emit ( 'sendVeryHighWaterNotification' , fcmToken , receiverTank ) ;
await Tank . updateOne ( { customerId , tankName : receiverTank . tankName } , { $set : { notificationSentVeryHigh : true } } ) ;
}
}
// Check for high water level
else if ( currentWaterLevel >= highWaterThreshold ) {
if ( ! receiverTank . notificationSentHigh ) {
eventEmitter . emit ( 'sendHighWaterNotification' , fcmToken , receiverTank ) ;
await Tank . updateOne ( { customerId , tankName : receiverTank . tankName } , { $set : { notificationSentHigh : true } } ) ;
}
}
// if (currentWaterLevel >= criticalHighWaterThreshold) {
// if (!receiverTank.notificationSentCriticalHigh) {
// eventEmitter.emit('sendCriticalHighWaterNotification', fcmToken, receiverTank);
// await Tank.updateOne({ customerId, tankName: receiverTank.tankName }, { $set: { notificationSentCriticalHigh: true } });
// }
// }
// // Check for very high water level
// else if (currentWaterLevel >= veryHighWaterThreshold) {
// if (!receiverTank.notificationSentVeryHigh) {
// eventEmitter.emit('sendVeryHighWaterNotification', fcmToken, receiverTank);
// await Tank.updateOne({ customerId, tankName: receiverTank.tankName }, { $set: { notificationSentVeryHigh: true } });
// }
// }
// // Check for high water level
// else if (currentWaterLevel >= highWaterThreshold) {
// if (!receiverTank.notificationSentHigh) {
// eventEmitter.emit('sendHighWaterNotification', fcmToken, receiverTank);
// await Tank.updateOne({ customerId, tankName: receiverTank.tankName }, { $set: { notificationSentHigh: true } });
// }
// }
// Determine the motor stop status based on the action
let motorStopStatus ;
const blockName = req . body . from || "Unknown Block" ; // Provide a fallback if `from` is missing
const tankName = req . body . to || "Unknown Tank" ; // Provide a fallback if `to` is missing
const stopTime = req . body . stopTime || new Date ( ) . toISOString ( ) ;
const motorOnType = req . body . motor _on _type || " manual ";
const motorOnType = req . body . motor _on _type || " application ";
if ( action === "start" ) {
motorStopStatus = "2" ;