Как отправить предупреждающее сообщение один раз, только когда температура устройства была больше 25 или меньше 19 с использованием узла js - PullRequest
0 голосов
/ 23 мая 2018

Вот код, но я до сих пор не могу понять, как это сделать, можно отправить только одно сообщение:

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, а затемон снова отправит уведомление по электронной почте, и то же самое произошло только один раз.Пожалуйста, помогите, спасибо.

...