Вот код, но я до сих пор не могу понять, как это сделать, можно отправить только одно сообщение:
if(temperature>25){
//for sending the message to the email
var mailOptions = {
from: 'sender@gmail.com',
to: 'receiver@tssb.com.my',
subject: 'Sending Email using Node.js',
text: 'The device with topic ' + topic + ' was higher than the temperature of 25 which is ' + temperature
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}else if(temperature<19){
var mailOptions = {
from: 'sender@gmail.com',
to: 'receiver@tssb.com.my',
subject: 'Sending Email using Node.js',
text: 'The device with topic ' + topic + ' was smaller than the temperature of 19 which is ' + temperature
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
const from = 'Nexmo';
const to = 'phone number';
const text = 'The device with topic ' + topic + ' was smaller than the temperature of 19 which is ' + temperature;
nexmo.message.sendSms(from, to, text, (error, response) => {
if(error) {
throw error;
} else if(response.messages[0].status != '0') {
console.error(response);
throw 'Nexmo returned back a non-zero status';
} else {
console.log(response);
}
});
}
Ситуация такова, что когда mqtt публикует тему с температурой, превышающей25 он отправит уведомление на адрес электронной почты или номер телефона, но это произошло только один раз, что означает, что в следующий раз температура будет публиковаться в брокере mqtt, если оно больше 25, оно не будет отправлять сообщение снова, пока температура не станет меньше 19, а затемон снова отправит уведомление по электронной почте, и то же самое произошло только один раз.Пожалуйста, помогите, спасибо.