Скрипт отправки на почту присылает не полностью

Добрый день,
есть такой скрипт, если ставлю “when: cron(“0/30 * * * *”),” и при этом вебстраница скриптов открыта, то присылаются показания счетчика (total_power, active_energy1, active_energy2). Если это происходит по cron приходят пустые данные. Не могу понять в чем причина.

var email = ""; 
var date_to_send = 1; // first day of month, when send statistic 
var total_power = dev["milur105_255"]["Total active energy"];
var active_energy1 = dev["milur105_255"]["Active energy 1"];
var active_energy2 = dev["milur105_255"]["Active energy 2"];
var cron_conf = "* * 1 * *"; // только 1 числа каждого месяца
var date = new Date(); // получаем дату
var day = date.getDate(); // получаем день

defineRule("Send_email_el_power", { //
	when: cron("@monthly"),
  	//when: cron("0/30 * * * *"),
  	//when: cron(cron_conf),
    then: function () { //выполняй следующие действия
      	email_text = "Показания счетчика на {}.{}. Текущие показания общего расхода по тарифам {} кВт,\n по 1 тарифу {} кВт,\n по 2 тарифу {} кВт.".format(day, (date.getMonth()+1), total_power, active_energy1, active_energy2);
      	Notify.sendEmail(email, "Месячный отчет по электричеству" ,email_text);
      	log("Send email to " + email + " with power consumption.");
      	log(email_text)
  }
});  

Попробуйте переменные с показаниями счетчика перенести внутрь функции, которая отправляет емейл

1 лайк

сейчас вы переменнным присваиваете текущее значение канала в начале скрипта. Оно остаётся одним и тем же во время выполнения программы.

ОК, я понял, но почему в одном случае приходит, в другом нет?