Модуль уведомлений
Это черновик страницы. Последняя правка сделана 20.05.2026 пользователем Victor.fedorov.
Введение
Модуль уведомлений (алармов, 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
Для отправки сообщений в Telegram вам понадобится:
- Токен бота — токен можно получить через @BotFather, создав бота;
- Идентификатор чата (ваш id) — можно получить через @getidsbot.
Предварительная настройка для отправки в ВКонтакте
Доступно в релизе testing Сообщения отправляются от имени сообщества ВКонтакте через метод API messages.send. Для отправки вам понадобится:
- Токен сообщества — получите его в самом сообществе: Управление → Работа с API → Создать ключ доступа, отметив право доступа
Сообщения сообщества(messages). Как правило, такой токен начинается сvk1.a.; - Идентификатор получателя (Peer ID):
- для личного сообщения — числовой ID пользователя ВКонтакте;
- для беседы —
2000000000плюс ID беседы.
Сообщество может писать только тем, кто разрешил ему отправку сообщений.
Предварительная настройка для отправки в MAX
Доступно в релизе testing Сообщения отправляются ботом мессенджера MAX через MAX Bot API. Для отправки вам понадобится:
- Токен доступа бота — создайте бота через
@MasterBotв самом мессенджере MAX и получите токен; - Идентификатор чата — числовой
chat_idиз MAX Bot API. Чтобы его узнать, отправьте боту любое сообщение и заберитеchat_idчерез методgetUpdates.
Сейчас создавать и администрировать чат-ботов могут только верифицированные юридические лица и индивидуальные предприниматели (ИП). Обычные физические лица не могут официально зарегистрировать бота для личного пользования.
Предварительная настройка для отправки в Matrix
Доступно в релизе testing
Сообщения отправляются ботом в комнату Matrix через Client-Server API методом PUT /_matrix/client/v3/rooms/{roomId}/send/m.room.message/{txnId}. Для отправки вам понадобится:
- URL домашнего сервера — например,
https://matrix.orgдля публичного сервера или адрес вашего self-hosted сервера; - Токен доступа бота — см. раздел «Получение access_token» ниже;
- Идентификатор комнаты — внутренний ID вида
!abcdef:matrix.org(не публичный alias#room:server; ID видно в настройках комнаты в клиенте Element: Room info → Settings → Advanced → Internal room ID).
Перед использованием бот должен быть приглашён в нужную комнату и принять приглашение.
Получение access_token
Сначала заведите отдельный аккаунт-бот на нужном homeserver-е. На публичном matrix.org регистрация делается через клиент Element. На self-hosted Synapse — через утилиту register_new_matrix_user на сервере.
Дальше есть два способа достать токен.
Способ 1. Через curl (программный, удобен для скриптов и автоматизации):
curl -X POST -H "Content-Type: application/json" \
-d '{
"type": "m.login.password",
"identifier": {"type": "m.id.user", "user": "wb-bot"},
"password": "PASSWORD_OF_BOT_ACCOUNT",
"initial_device_display_name": "wb-rules notifier"
}' \
https://matrix.org/_matrix/client/v3/login
В ответе придёт JSON вида:
{
"user_id": "@wb-bot:matrix.org",
"access_token": "syt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"device_id": "ABCDEFGHIJ",
"home_server": "matrix.org"
}
Значение access_token из ответа и есть искомый токен — его нужно скопировать в поле Токен доступа в настройках получателя.
Способ 2. Через клиент Element (без командной строки):
- В Element войдите под аккаунтом-ботом.
- Откройте Настройки (Settings) → Помощь и информация (Help & About).
- В самом низу страницы нажмите Access Token — токен раскроется.
В обоих случаях токен живёт до явного logout, поэтому достаточно получить его один раз и сохранить.
Не делайте logout под бот-аккаунтом в Element после получения токена — иначе токен будет отозван, и контроллер начнёт получать ошибки 401 Unknown token при отправке. Если такое случилось — получите новый токен по этой же инструкции.
Предварительная настройка для отправки в WeChat Work
Доступно в релизе testing
WeChat Work — это корпоративный мессенджер Tencent, отдельный продукт. Это не обычный WeChat, которым пользуются частные лица в Китае: у обычного WeChat нет публичного API для отправки сообщений, и этот тип получателей не позволяет туда писать. WeChat Work требует регистрации организации с подтверждением юридического лица, аккаунты в нём заводятся для сотрудников.
Сообщение из модуля уведомлений придёт в групповой чат внутри организации WeChat Work, где создан бот. Отправка возможна только в такие групповые чаты, не в личные сообщения и не пользователям обычного WeChat.
Используется официальный webhook API групповых ботов.
Для отправки вам понадобится:
- Ключ бота (
key) — создайте бота в нужном групповом чате WeChat Work: в чате нажмите кнопку Add Group Robot (добавить бота) и скопируйте значение параметра?key=...из выданного сервисом URL вебхука.
Никаких дополнительных учётных данных не требуется — один ключ заменяет и токен, и идентификатор чата одновременно.
Ограничения на стороне сервиса: до 20 сообщений в минуту от одного бота, длина текста не более 2048 байт (UTF-8).
Предварительная настройка для отправки через произвольный webhook
Доступно в релизе testing Если уведомление нужно отправлять в сервис, для которого нет отдельной кнопки в интерфейсе, используйте универсальный тип Произвольный HTTP-webhook. Контроллер сделает HTTP-запрос на указанный URL с заголовками и телом по заданному шаблону.
Этого одного типа достаточно для большинства зарубежных мессенджеров и push-сервисов, у которых есть «incoming webhook» или простой Bot API без бизнес-верификации: Discord, Slack, Mattermost, Rocket.Chat, Zulip, Microsoft Teams, ntfy.sh, Pushover, Pushbullet, Gotify и любые внутренние корпоративные API.
Ничего настраивать на стороне контроллера предварительно не нужно — достаточно знать URL вебхука и формат, который ожидает принимающая сторона.
В поле Шаблон тела запроса можно в произвольном месте использовать {} — вместо этой подстроки будет подставлен текст уведомления.
Настройка модуля уведомлений
- Откройте Настройки → Конфигурационные файлы → Модуль уведомлений.
- Добавьте получателей уведомлений:
- нажмите кнопку + Получатель и выберите способ уведомления: Электронная почта, SMS-сообщение, Телеграм бот, Сообщение от группы ВКонтакте, Бот мессенджера MAX, Matrix-бот, Бот группы WeChat Work или Произвольный HTTP-webhook;
- заполните параметры получателя.
- Настройте проверяемый параметр и условие в разделе Уведомления:
- нажмите + элемент;
- в появившемся разделе в выпадающем списке выберите условие уведомления:
- Значение не равно заданному — уведомление, если значение перестанет равняться заданному.
- Значение меньше минимального — уведомление, если значение станет меньше заданного.
- Значение больше максимального — уведомление, если значение станет больше заданного.
- Значение вне диапазона — уведомление, если значение выйдет из заданного диапазона.
- в Название уведомления введите произвольное название для уведомления;
- в Отслеживаемый параметр введите параметр, за которым нужно следить. Параметр задаётся в виде
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); номер и текст указываются в кавычках
или
Notify.sendTelegramMessage("token", "chatId", "text"); //отправляет сообщение боту с токеном (token), в чат (chatId) и содержимым (text); все параметры указываются в кавычках
Доступно в релизе testing или
Notify.sendWebhook({url: "https://example.com/hook", method: "POST", contentType: "application/json", headers: {Authorization: "Bearer xxx"}, body: {text: "сообщение"}}); //отправляет произвольный HTTP-запрос; параметры передаются объектом со свойствами url (обязательное), method, contentType, headers, body. body может быть строкой либо объектом — объект сериализуется в JSON.