Уведомления по EMail с Меркурия 236

Здравствуйте! Появилась такого рода задача нужна два раза в месяц передавать на Email заказчику данные с счетчика электроэнергии .В начале месяца и в конце.Я настроил модуль оповещения но убей не могу понять как написать скрипт чтобы показания отправлялись. Счетчик привязан к wb6 через rs485.Подскажите пожалуйста как написать скрипт очень надо. Не могу сдать заказчику.

Добрый день. Посмотрите Примеры правил — Wiren Board и пример работы с cron Необходим разработчик для реализации проекта на Wiren Board - #21 от пользователя BrainRoot

cron-правила — это отдельный тип правил, которые задаются так:

defineRule(“crontest_hourly”, {
when: cron(“@hourly”),
then: function () {
log(“@hourly rule fired”);
}
});

Вместо @hourly здесь можно задать любое выражение, допустимое в стандартном crontab, например, 00 00 20 * * (секунды минуты часы, выполнять правило каждый день в 20:00). Помимо стандартных выражений допускается использование ряда расширений, см. описание формата выражений используемой cron-библиотеки.

А что вписать в function что бы отправлялось email? И что выбрать в настройках сообщения чтобы при изменении параметра отправлялось ил и cron будет это игнорировать?

Чтобы отправить сообщение, из правила нужно вызвать функцию

Notify.sendEmail("to", "subject", "text"); //отправляет почту указанному адресату (to), с указанной темой (subject) и содержимым (text); почтовый адрес, тема и содержимое указываются в кавычках

То есть получится примерно так:

defineRule('crontest_hourly', {
  when: cron('@hourly'),
  then: function () {
    log('@hourly rule fired');
    Notify.sendEmail('12345@mail.ru', 'Subject of the letter', 'Text inside the letter');
  }
});

При этом нужно сделать настройки для отправки почты, описанные в документации:
https://wirenboard.com/wiki/Notification_module#Настройка_модуля_уведомлений

Не ругайте сильно я так понял что правилом выше я отправляю email по расписания а как в сообщении отправить показателя со счетчика?

Вместо строки 'Text inside the letter' просто подставьте значения (переменные), которые хотите передать.

‘mercury200.02_39170457/Power consumption tariff 1’ Здравствуйте в таком формате подставлять или как то по другому.Цифра в сообщение не подставляется.Отправляю командой через терминал

Не понял, честно говоря.

"Вместо строки 'Text inside the letter' просто подставьте значения (переменные), которые хотите передать."Видимо и я вас не правильно понял. Подставляю значенин переменной которую хочу увидеть в сообщении

Как выглядит строка после подстановки?
Выведите ее в лог чтобы убедиться.

Отправляю из терминала сообщение.echo ‘T1 mercury200.02_39170457/Power consumption tariff 1’ | ssmtp -v .................@yandex.ru приходит на почту следующие T1 mercury200.02_39170457/Power consumption tariff 1 а хотелось бы увидеть здесь показатели переменной /devices/mercury200.02_39170457/controls/Power consumption tariff 1

Так, а где тут переменная? Точнее - вы отправляете строкой название контрола, никак его не разрешая.
Если echo - то предполагаю bash, то есть должно выглядеть так.
Переменной POWERVAL нужно предварительно задать значение, прочитав его из топика, например.

echo ‘Power consumption ’$POWERVAL | ssmtp -v XXX@yandex.ru

А как это сделать помогите я не программист я только учусь. Не совсем понял вы этотуде сделали в строке ниже или это как то нужно по-другому сделать

Если основываться на на вот этом

то как и писал следует предварительно получить, так, например с выводом:

POWERVAL=`mosquitto_sub -t "/devices/T1 mercury200.02_39170457/Power consumption tariff 1" -C 1`
echo $POWERVAL

То есть в результате:

POWERVAL=`mosquitto_sub -t "/devices/T1 mercury200.02_39170457/Power consumption tariff 1" -C 1`
echo ‘Power consumption ’$POWERVAL | ssmtp -v XXX@yandex.ru

Это если и планируете использовать bash.

[quote=“Explorerol, post:6, topic:13562”]

defineRule('crontest_hourly', {
  when: cron('@hourly'),
  then: function () {
    log('@hourly rule fired');
    Notify.sendEmail('12345@mail.ru', 'Subject of the letter', 'Text inside the letter');
  }
});
А как в правило добавить переменную POWERVAL чтобы ее отправлять каждый месяц 1-ого числа

Не уверен что понимаю вопрос верно… Вы показываете отправку писем из bash. В правилах значения топиков получаются так: GitHub - wirenboard/wb-rules: Rule engine for Wiren Board

Из терминала отправлял для теста. Можете подсказать как правильно написать скрипт чтобы отправлялось сообщение с показаниями счетчика

Но коллега выше уже дал готовый?

Да.Я понял .Только не понял куда подставлять перемменую. И как ее описать