8 980 590-57-10
Ваш город — Эль-Монте?
Заявка

Как настроить уведомления в AbromSoft? Email, VK, Telegram


Уведомления в AbromLogic — это отдельный тип правил, который следит за условием и отправляет сообщение, когда условие срабатывает. Поддерживаются три канала: telegram, vk и email. Одно правило — один канал и один сценарий: температура упала ниже порога, котёл выдал аварию, датчик протечки сработал, наступило заданное время.

В статье разбираем общее устройство правила и настройки каждого канала. Форматирование сообщений с подстановкой значений из датчиков и работу с условиями подробно смотрите в отдельных статьях про синтаксис выражений и MQTT-топики.

Как устроено правило уведомления

У правила есть три обязательные части: условие, шаблон сообщения и получатели.

Условие — это выражение вида «температура меньше 20» или «сработал датчик протечки».

Шаблон сообщения — обычный текст, в который через плейсхолдеры подставляются значения датчиков в момент отправки.

Получатели — список чатов, номеров сообществ или почтовых адресов, куда уйдёт сообщение.

Дополнительно у каждого правила есть два параметра, которые управляют повторами:

  1. Режим отправки. По умолчанию сообщение уходит один раз — в момент, когда условие переходит из ложного в истинное. Пока условие остаётся истинным, повторов нет. Если включить режим повторной отправки, сообщение будет уходить при каждом изменении входных данных, пока условие истинно.
  2. Минимальный интервал между отправками в секундах. Нужен, чтобы канал не спамило: при пороге температуры, который датчик может пересекать раз в минуту, разумно поставить интервал от десяти минут до часа.

Виртуальных устройств правила уведомлений не создают: у них нет переключателя в веб-интерфейсе Wirenboard. Управление — только через файл настроек и через API.

Шаблон сообщения и подстановка значений

В тексте сообщения места для подстановки обозначаются парой фигурных скобок. Рядом с шаблоном перечисляются выражения — по одному на каждый плейсхолдер, в порядке появления. В момент отправки выражения вычисляются, а их значения подставляются в текст.

Типовой пример — сообщение «В зале холодно: 18.5 °C». В шаблоне пишем «В зале холодно: {} °C», а в списке аргументов указываем ссылку на топик датчика температуры гостиной. В момент срабатывания условия правило прочитает текущее значение и подставит его в текст.

Плейсхолдеров может быть несколько — тогда порядок аргументов должен совпадать с порядком скобок в тексте. Для email то же самое работает и в теме письма: аргументы подставляются подряд сначала в тему, затем в тело.

Настройка канала telegram

Для отправки в Telegram нужен бот и список чатов, куда он будет писать. Порядок действий:

  1. Открыть в Telegram диалог с BotFather и создать нового бота командой создания. BotFather выдаст токен — длинную строку с двоеточием. Токен — это ключ доступа к боту, храните его так же, как пароль.
  2. Добавить бота в нужный чат или начать диалог с ним от имени личного аккаунта. Пока бот не написал первое сообщение или его не пригласили в группу, он не сможет ничего отправлять.
  3. Узнать идентификатор чата. Отправьте боту любое сообщение, затем откройте служебный адрес getUpdates с подставленным токеном — в ответе будет числовой идентификатор чата. У личных диалогов он положительный, у групп — отрицательный.

В настройках правила указываем токен бота и список идентификаторов чатов. Одно правило может рассылать в несколько чатов сразу — например, дежурному в личку и в общий чат семьи.

Настройка канала vk

Для ВКонтакте используется бот сообщества. Личные страницы отправлять сообщения от имени бота не могут — сначала нужно создать или взять существующее сообщество.

  1. В управлении сообществом открыть работу с API и создать ключ доступа с правом сообщений сообщества. Ключ — это токен, аналог токена бота Telegram.
  2. Включить в сообществе приём сообщений от пользователей и Long Poll API — без этого бот не сможет писать в диалоги.
  3. Определить peerId получателя. Для личного адресата это его числовой ВК ID из адреса страницы. Для беседы — номер беседы плюс 2000000000. Беседа номер два превращается в peerId 2000000002.

Правило принимает токен сообщества и список peerId. Как и в случае с Telegram, шаблон сообщения и аргументы работают одинаково.

Настройка канала email

Email отправляется через сторонний SMTP-сервер — обычно почтового провайдера, у которого заведён служебный ящик. Нужно четыре параметра: адрес сервера, порт, логин и пароль. Для gmail, yandex, mail.ru и большинства крупных провайдеров обычный пароль от аккаунта не подойдёт — в настройках почты выпускается отдельный пароль приложения.

Провайдер определяет режим шифрования. Есть два варианта:

  • STARTTLS на порту 587 — стандартный современный режим, включён по умолчанию. Подходит для gmail.
  • Прямой SSL на порту 465 — используют yandex и mail.ru. В этом случае STARTTLS выключается, включается SSL.

У правила есть отдельные поля для темы и тела письма — обе строки поддерживают плейсхолдеры. Получателей можно указать несколько, они пойдут в поле «Кому». Если адрес отправителя должен отличаться от логина SMTP, укажите его отдельно — иначе почта уйдёт от того же адреса, под которым логинимся на сервер.

Частые ошибки

Уведомление не приходит вовсе. Проверьте, что бот добавлен в чат или что пользователь начал с ним диалог — служебные каналы не рассылают в незнакомые чаты. Для email убедитесь, что используется пароль приложения, а не пароль от аккаунта.

Уведомление приходит один раз и больше не повторяется. Так и задумано в стандартном режиме: сообщение уходит только в момент перехода условия из ложного в истинное. Если нужен регулярный сигнал, пока условие остаётся истинным, включите режим повторной отправки и обязательно задайте минимальный интервал — иначе канал будет забит.

Канал спамит десятками сообщений в минуту. Значит, включён режим повторной отправки, а интервал равен нулю или слишком маленький. Ставьте интервал соразмерно скорости изменения датчика: для температуры — от десяти минут, для аварий котла — час, для суточной сводки достаточно и десяти секунд.

В сообщении вместо значений видны пустые скобки или мусор. Число выражений в списке аргументов не совпадает с числом плейсхолдеров, либо выражение ссылается на несуществующий топик. Сверьте порядок аргументов с порядком скобок в тексте.


    Еще никто не написал комментариев.

    Написать комментарий

    Данная страница является информационной и не является публичной офертой. Мы не продаем оборудование, но готовы оказать техническую поддержку.