Модуль уведомлений
Введение
Модуль уведомлений (алармов, Alarm) предназначен для быстрой настройки отправки СМС и email в случае изменения параметров контроллера или подключённых устройств: показаний подключённого датчика температуры, сработки пожарной сигнализации, обнаружении протечки и т.п.
Предварительная настройка для отправки email
На уровне Linux для отправки email используется утилита sSMTP. Чтобы начать отправлять почту, нужно отредактировать её конфигурационный файл /etc/ssmtp/ssmtp.conf.
Электронные письма будут отправляться с одного из ваших почтовых ящиков, от которого потребуются:
- логин — например,
robot@wirenboard.com, - пароль,
- адрес и порт SMTP сервера. Для ящиков на Gmail это
smtp.gmail.com:587, для Mail.Ru —smtp.mail.ru:465.
Для ящика на сервере Google
Очистите содержимое файла /etc/ssmtp/ssmtp.conf и добавьте туда строки:
mailhub=smtp.gmail.com:587
UseTLS=Yes
UseSTARTTLS=Yes
AuthUser=robot@wirenboard.com
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла
Обязательно оставьте пустую строку в конце файла — после строки с AuthPass=.
Для отправки писем через Google Mail необходимо разрешить отправку писем из менее защищённых приложений и, возможно, создать отдельный пароль.
Для ящика на сервере mail.ru
Очистите содержимое файла /etc/ssmtp/ssmtp.conf и добавьте туда строки:
mailhub=smtp.mail.ru:465
FromLineOverride=YES
UseTLS=Yes
AuthUser=robot@wirenboard.com
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла
В файл /etc/ssmtp/revaliases добавьте строку:
root:robot@wirenboard.com:smtp.mail.ru:465
Для ящика на сервере yandex.ru
Для отправки писем необходимо настроить почту для работы по протоколу SMTP и создать пароль приложения.
Очистите содержимое файла /etc/ssmtp/ssmtp.conf и добавьте туда строки:
mailhub=smtp.yandex.ru:465
FromLineOverride=YES
UseTLS=Yes
#Важно: Логин без домена
AuthUser=robot
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла
В файл /etc/ssmtp/revaliases добавьте строку:
root:robot@yandex.ru:smtp.yandex.ru:465
Проверка настроек
Чтобы проверить, что отправка email заработала, выполните в консоли команду:
echo 'Test message to check sSMTP new configuration' | ssmtp -v ivanov@gmail.com
# вместо ivanov@gmail.com подставьте адрес другого своего ящика (например того, куда собираетесь получать уведомления с контроллера)
Дополнительную информацию можно получить на сайтах askubuntu.com и wiki.archlinux.org.
Предварительная настройка для отправки SMS
Убедитесь, что вы настроили модем вставили SIM-карту и подключили GSM антенну.
Перед настройкой в веб-интерфейсе можете протестировать отправку SMS из консоли.
Для устаревших модемов, не поддерживаемых ModemManager - потребуется его отключение и использование gammu.
Предварительная настройка для отправки в Telegram
Доступно с релиза wb-2507 Для отправки сообщений в Telegram вам понадобится:
- Токен бота — токен можно получить через @BotFather, создав бота;
- Идентификатор чата (ваш id) — можно получить через @getidsbot.
Настройка модуля уведомлений
- Откройте Настройки → Конфигурационные файлы → Модуль уведомлений.
- Добавьте получателей уведомлений:
- нажмите кнопку + Получатель и выберите способ уведомления: Электронная почта, SMS-сообщение или Телеграм бот;
- заполните параметры получателя.
- Настройте проверяемый параметр и условие в разделе Уведомления:
- нажмите + элемент;
- в появившемся разделе в выпадающем списке выберите условие уведомления:
- Значение не равно заданному — уведомление, если значение перестанет равняться заданному.
- Значение меньше минимального — уведомление, если значение станет меньше заданного.
- Значение больше максимального — уведомление, если значение станет больше заданного.
- Значение вне диапазона — уведомление, если значение выйдет из заданного диапазона.
- в Название уведомления введите произвольное название для уведомления;
- в Отслеживаемый параметр введите параметр, за которым нужно следить. Параметр задаётся в виде
Device/Control, где названия Device и Control для каждого параметра можно найти в веб-интерфейсе в разделе Настройки → Каналы MQTT. Например, для датчика 1-Wire, подключённого к внешнему modbus-сенсору WB-MS, эта строка будет выглядеть какwb-ms-thls-v2_101/External Sensor 2; - в Сообщение при активации уведомления введите текст сообщения, которое будет отправлено. В него в произвольном месте можно ввести две фигурные скобки
{}, вместо которых в сообщение будет подставлено новое значение отслеживаемого параметра. - в зависимости от типа уведомления, заполните поля Минимальное значение, Максимальное значение, Заданное значение;
- некоторые дополнительные настройки станут доступны, если нажать Свойства и отметить их.
- Нажмите Записать в самом верху страницы:
- если вы забыли указать какой-то обязательный параметр, кнопка Записать будет неактивна, а рядом с параметром красным будет написана ошибка, которую нужно исправить;
- если всё в порядке, уведомления сразу начнут работать.
Как настроить уведомления с более сложными условиями
Модуль уведомлений предназначен для быстрой настройки простых уведомлений. Если вам нужны более сложные сценарии уведомлений, их можно запрограммировать через движок правил. Чтобы отправить сообщение, из правила нужно вызвать функцию
Notify.sendEmail("to", "subject", "text"); //отправляет почту указанному адресату (to), с указанной темой (subject) и содержимым (text); почтовый адрес, тема и содержимое указываются в кавычках
или
Notify.sendSMS("to", "text"); //отправляет SMS на указанный номер (to) с указанным содержимым (text); номер и текст указываются в кавычках
Доступно с релиза wb-2507 или
Notify.sendTelegramMessage("token", "chatId", "text"); //отправляет сообщение боту с токеном (token), в чат (chatId) и содержимым (text); все параметры указываются в кавычках