Notification module: различия между версиями

Материал из Wiren Board
(Дописал,Ю добавил ссылки)
 
(не показано 10 промежуточных версий 5 участников)
Строка 1: Строка 1:
<languages/>
<translate>
{{DISPLAYTITLE:Модуль уведомлений}}
{{DISPLAYTITLE:Модуль уведомлений}}
[[File:web-alarm.png|400px|thumb|right|Настройка модуля уведомлений]]
[[File:web-alarm.png|400px|thumb|right|Настройка модуля уведомлений]]
Модуль уведомлений (алармов, Alarm) предназначен для быстрой настройки отправки СМС и email в случае изменения параметров контроллера или подключённых устройств (например, показаний подключённого датчика температуры).
Модуль уведомлений (алармов, Alarm) предназначен для быстрой настройки отправки СМС и email в случае изменения параметров контроллера или подключённых устройств: показаний подключённого датчика температуры, сработки пожарной сигнализации, обнаружении протечки и т.п.
==Предварительная настройка для отправки email== <!--T:1-->
==Предварительная настройка для отправки email==  
На уровне Linux для отправки email используется утилита [https://linux.die.net/man/8/ssmtp sSMTP]. Чтобы начать отправлять почту, нужно [[Просмотр файлов контроллера с компьютера | отредактировать]] её конфигурационный файл ''/etc/ssmtp/ssmtp.conf''.
На уровне Linux для отправки email используется утилита [https://linux.die.net/man/8/ssmtp sSMTP]. Чтобы начать отправлять почту, нужно [[Просмотр файлов контроллера с компьютера | отредактировать]] её конфигурационный файл <code>/etc/ssmtp/ssmtp.conf</code>.


<!--T:2-->
Электронные письма будут отправляться с одного из ваших почтовых ящиков, от которого потребуются:
Электронные письма будут отправляться с одного из ваших почтовых ящиков, от которого потребуются:
*логин (например, ''robot@contactless.ru''),
*логин например, <code>robot@wirenboard.com</code>,
*пароль,
*пароль,
*адрес и порт SMTP сервера (для ящиков на Gmail это ''smtp.gmail.com:587'', для Mail.Ru - ''smtp.mail.ru:465'').
*адрес и порт SMTP сервера. Для ящиков на Gmail это <code>smtp.gmail.com:587</code>, для Mail.Ru — <code>smtp.mail.ru:465</code>.


==Для ящика на сервере Google== <!--T:2-->
==Для ящика на сервере Google==  


Очистите содержимое ''/etc/ssmtp/ssmtp.conf'' и внесите туда такие строки, заменив данные своими:
Очистите содержимое файла <code>/etc/ssmtp/ssmtp.conf</code> и добавьте туда строки:
<syntaxhighlight lang="linux-config">
<syntaxhighlight lang="linux-config">
mailhub=smtp.gmail.com:587
mailhub=smtp.gmail.com:587
UseTLS=Yes
UseTLS=Yes
UseSTARTTLS=Yes
UseSTARTTLS=Yes
AuthUser=robot@contactless.ru
AuthUser=robot@wirenboard.com
AuthPass=qwerty12345
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла
</syntaxhighlight>
</syntaxhighlight>


#обязательно оставьте пустую строку в конце файла (после строки с "AuthPass=")
Обязательно оставьте пустую строку в конце файла после строки с <code>AuthPass=</code>.
#Для отправки писем через Google Mail необходимо разрешить отправку писем от недоверенных приложений для вашего Google-аккаунта
==Для ящика на сервере mail.ru== <!--T:2-->


''/etc/ssmtp/ssmtp.conf''
Для отправки писем через Google Mail необходимо [https://support.google.com/accounts/answer/6010255 разрешить отправку писем из менее защищённых приложений] и, возможно, [https://support.google.com/accounts/answer/185833 создать отдельный пароль].
 
==Для ящика на сервере mail.ru==
 
Очистите содержимое файла <code>/etc/ssmtp/ssmtp.conf</code> и добавьте туда строки:
<syntaxhighlight lang="linux-config">
<syntaxhighlight lang="linux-config">
mailhub=smtp.mail.ru:465
mailhub=smtp.mail.ru:465
FromLineOverride=YES
FromLineOverride=YES
UseTLS=Yes
UseTLS=Yes
AuthUser=robot@contactless.ru
AuthUser=robot@wirenboard.com
AuthPass=qwerty12345
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла
</syntaxhighlight>
</syntaxhighlight>


''/etc/ssmtp/revaliases'' добавьте строку
В файл <code>/etc/ssmtp/revaliases</code> добавьте строку:
<syntaxhighlight lang="linux-config">
<syntaxhighlight lang="linux-config">
root:robot@contactless.ru:smtp.mail.ru:465
root:robot@wirenboard.com:smtp.mail.ru:465
</syntaxhighlight>
</syntaxhighlight>


==Проверка настроек== <!--T:3-->
==Для ящика на сервере yandex.ru==  
Чтобы проверить, что отправка email заработала, выполните в [[Консоль | консоли]] команду:
 
Очистите содержимое файла <code>/etc/ssmtp/ssmtp.conf</code> и добавьте туда строки:
<syntaxhighlight lang="linux-config">
mailhub=smtp.yandex.ru:465
FromLineOverride=YES
UseTLS=Yes
#Важно: Логин без домена
AuthUser=robot
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла
 
</syntaxhighlight>
 
В файл <code>/etc/ssmtp/revaliases</code> добавьте строку:
<syntaxhighlight lang="linux-config">
root:robot@wirenboard.com:smtp.yandex.ru:465
</syntaxhighlight>
 
==Проверка настроек==
Чтобы проверить, что отправка email заработала, выполните в [[SSH | консоли]] команду:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
echo 'Test message to check sSMTP new configuration' | ssmtp -v ivanov@gmail.com
echo 'Test message to check sSMTP new configuration' | ssmtp -v ivanov@gmail.com
# вместо ivanov@gmail.com подставьте адрес другого своего ящика (например того, куда собираетесь получать уведомления с контроллера)
# вместо ivanov@gmail.com подставьте адрес другого своего ящика (например того, куда собираетесь получать уведомления с контроллера)
</syntaxhighlight>
</syntaxhighlight>
В случае дополнительных вопросов смотрите [http://askubuntu.com/questions/185070/why-i-get-hostname-name-or-service-not-known-error] и [https://wiki.archlinux.org/index.php/SSMTP].
Дополнительную информацию можно получить на сайтах [http://askubuntu.com/questions/185070/why-i-get-hostname-name-or-service-not-known-error askubuntu.com] и [https://wiki.archlinux.org/index.php/SSMTP wiki.archlinux.org].
 
==Предварительная настройка для отправки SMS==
Убедитесь, что вы [[GSM/GPRS |настроили модем]] вставили SIM-карту и подключили GSM антенну.


==Предварительная настройка для отправки SMS== <!--T:4-->
Перед настройкой в веб-интерфейсе можете протестировать [[GSM/GPRS#.D0.A0.D0.B0.D0.B1.D0.BE.D1.82.D0.B0_.D1.81_sms_.D0.B8_ussd| отправку SMS]] из консоли.
Убедитесь, что вы [[GSM/GPRS |настроили модем]] вставили SIM-карту и подключили GSM антенну.</br>
Можно протестировать [[GSM/GPRS#.D0.A0.D0.B0.D0.B1.D0.BE.D1.82.D0.B0_.D1.81_sms_.D0.B8_ussd| отправку SMS]] предварительно из консоли.


==Настройка модуля уведомлений==
==Настройка модуля уведомлений==
#Зайдите на страницу ''Configs - Alarm Configuraion'' веб-интерфейса.
 
#Добавьте получателей уведомлений в разделе ''Recipients'':
#Зайдите на страницу '''Settings''' → '''Configs''' → '''Alarm Configuraion''' веб-интерфейса.
#*нажмите кнопку ''+ Recipient'';
#Добавьте получателей уведомлений в разделе '''Recipients''':
#*выберите тип (''E-mail'' или ''SMS'');
#*нажмите кнопку '''+ Recipient''';
#*В выпадающем списке ''Recipient N'' выберите один из типов: ''E-mail recipient'' или ''SMS recipient'';
#*введите почтовый адрес или номер телефона. Для email можно также указать тему письма.
#*введите почтовый адрес или номер телефона. Для email можно также указать тему письма.
#Настройте проверяемый параметр и условие в разделе ''Alarms'':
#Настройте проверяемый параметр и условие в разделе '''Alarms''':
#*нажмите кнопку ''+ Item'';
#*нажмите кнопку '''+ Item''';
#*в появившемся разделе в выпадающем списке выберите один из четырёх типов уведомлений:
#*в появившемся разделе в выпадающем списке выберите один из четырёх типов уведомлений:
#*#''Expected Value Alarm'' - уведомление, если значение перестанет равняться заданному.
#*#Expected Value Alarm уведомление, если значение перестанет равняться заданному.
#*#''Minimum Value Alarm'' - уведомление, если значение станет меньше заданного.
#*#Minimum Value Alarm уведомление, если значение станет меньше заданного.
#*#''Maximum Value Alarm'' - уведомление, если значение станет больше заданного.
#*#Maximum Value Alarm уведомление, если значение станет больше заданного.
#*#''Minimum&Maximum Value Alarm'' - уведомление, если значение выйдет из заданного диапазона.
#*#Minimum&Maximum Value Alarm уведомление, если значение выйдет из заданного диапазона.
#*в ''Alarm name'' введите произвольное название для уведомления;
#*в '''Alarm name''' введите произвольное название для уведомления;
#*в ''Cell'' введите параметр, за которым нужно следить. Параметр задаётся в виде ''Device/Control'', где названия Device и Control для каждого параметра можно найти на странице ''Settings'' веб-интерфейса в таблице ''MQTT Channels''. Например, для датчика 1-Wire, подключённого к внешнему Modbus сенсору WB-MS, эта строка будет выглядеть как ''wb-ms-thls-v2_101/External Sensor 2'';
#*в '''Cell''' введите параметр, за которым нужно следить. Параметр задаётся в виде <code>Device/Control</code>, где названия ''Device'' и ''Control'' для каждого параметра можно найти в веб-интерфейсе в разделе '''Settings''' → '''MQTT Channels'''. Например, для датчика 1-Wire, подключённого к внешнему modbus-сенсору WB-MS, эта строка будет выглядеть как <code>wb-ms-thls-v2_101/External Sensor 2</code>;
#*в ''Alarm activation message'' введите текст сообщения, которое будет отправлено. В него в произвольном месте можно ввести две фигурные скобки ''{}'', вместо которых в сообщение будет подставлено новое значение параметра, за которым производится слежение.
#*в '''Alarm activation message''' введите текст сообщения, которое будет отправлено. В него в произвольном месте можно ввести две фигурные скобки <code>{}</code>, вместо которых в сообщение будет подставлено новое значение отслеживаемого параметра.
#*в зависимости от типа уведомления, заполните поля ''Minimum Value'', ''Maximum Value'', ''Expected Value'';
#*в зависимости от типа уведомления, заполните поля '''Minimum Value''', '''Maximum Value''', '''Expected Value''';
#*некоторые дополнительные настройки станут доступны, если нажать на кнопку ''Properties'' и отметить их.
#*некоторые дополнительные настройки станут доступны, если нажать на кнопку '''Properties''' и отметить их.
#Нажмите ''Save'' в самом верху страницы:
#Нажмите '''Save''' в самом верху страницы:
#*если вы забыли указать какой-то обязательный параметр, кнопка ''Save'' будет неактивна, а рядом с параметром красным будет написана ошибка, которую нужно исправить;
#*если вы забыли указать какой-то обязательный параметр, кнопка ''Save'' будет неактивна, а рядом с параметром красным будет написана ошибка, которую нужно исправить;
#*если всё в порядке, уведомления начнут работать.
#*если всё в порядке, уведомления сразу начнут работать.


==Как настроить уведомления с более сложными условиями== <!--T:5-->
==Как настроить уведомления с более сложными условиями==  
Модуль уведомлений предназначен для быстрой настройки простых уведомлений. Если вам нужны более сложные сценарии уведомлений, их можно запрограммировать через [[Движок правил wb-rules | движок правил]]. Чтобы отправить сообщение, из правила нужно вызвать функцию
Модуль уведомлений предназначен для быстрой настройки простых уведомлений. Если вам нужны более сложные сценарии уведомлений, их можно запрограммировать через [[Движок правил wb-rules | движок правил]]. Чтобы отправить сообщение, из правила нужно вызвать функцию
<syntaxhighlight lang="ecmascript">
<syntaxhighlight lang="ecmascript">
Notify.sendEmail(to, subject, text); //отправляет почту указанному адресату (to), с указанной темой (subject) и содержимым (text)
Notify.sendEmail("to", "subject", "text"); //отправляет почту указанному адресату (to), с указанной темой (subject) и содержимым (text); почтовый адрес, тема и содержимое указываются в кавычках
</syntaxhighlight>
</syntaxhighlight>
или
или
<syntaxhighlight lang="ecmascript">
<syntaxhighlight lang="ecmascript">
Notify.sendSMS(to, text); //отправляет SMS на указанный номер (to) с указанным содержимым (text)
Notify.sendSMS("to", "text"); //отправляет SMS на указанный номер (to) с указанным содержимым (text); номер и текст указываются в кавычках
</syntaxhighlight>
</syntaxhighlight>
</translate>

Текущая версия на 14:05, 5 апреля 2024

Настройка модуля уведомлений

Модуль уведомлений (алармов, 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

Очистите содержимое файла /etc/ssmtp/ssmtp.conf и добавьте туда строки:

mailhub=smtp.yandex.ru:465
FromLineOverride=YES
UseTLS=Yes
#Важно: Логин без домена
AuthUser=robot
AuthPass=qwerty12345
# Не забудьте добавить пустую пустую строку в конце файла

В файл /etc/ssmtp/revaliases добавьте строку:

root:robot@wirenboard.com: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 из консоли.

Настройка модуля уведомлений

  1. Зайдите на страницу SettingsConfigsAlarm Configuraion веб-интерфейса.
  2. Добавьте получателей уведомлений в разделе Recipients:
    • нажмите кнопку + Recipient;
    • В выпадающем списке Recipient N выберите один из типов: E-mail recipient или SMS recipient;
    • введите почтовый адрес или номер телефона. Для email можно также указать тему письма.
  3. Настройте проверяемый параметр и условие в разделе Alarms:
    • нажмите кнопку + Item;
    • в появившемся разделе в выпадающем списке выберите один из четырёх типов уведомлений:
      1. Expected Value Alarm — уведомление, если значение перестанет равняться заданному.
      2. Minimum Value Alarm — уведомление, если значение станет меньше заданного.
      3. Maximum Value Alarm — уведомление, если значение станет больше заданного.
      4. Minimum&Maximum Value Alarm — уведомление, если значение выйдет из заданного диапазона.
    • в Alarm name введите произвольное название для уведомления;
    • в Cell введите параметр, за которым нужно следить. Параметр задаётся в виде Device/Control, где названия Device и Control для каждого параметра можно найти в веб-интерфейсе в разделе SettingsMQTT Channels. Например, для датчика 1-Wire, подключённого к внешнему modbus-сенсору WB-MS, эта строка будет выглядеть как wb-ms-thls-v2_101/External Sensor 2;
    • в Alarm activation message введите текст сообщения, которое будет отправлено. В него в произвольном месте можно ввести две фигурные скобки {}, вместо которых в сообщение будет подставлено новое значение отслеживаемого параметра.
    • в зависимости от типа уведомления, заполните поля Minimum Value, Maximum Value, Expected Value;
    • некоторые дополнительные настройки станут доступны, если нажать на кнопку Properties и отметить их.
  4. Нажмите Save в самом верху страницы:
    • если вы забыли указать какой-то обязательный параметр, кнопка Save будет неактивна, а рядом с параметром красным будет написана ошибка, которую нужно исправить;
    • если всё в порядке, уведомления сразу начнут работать.

Как настроить уведомления с более сложными условиями

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

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

или

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