Перейти к основному содержимому

Push-уведомления

Инструкция по отправке push-уведомлений с iRidium Server на iOS, Android устройства с приложением i3 pro

читать cправочник по JS методам Push.

смотреть видео-инструкцию

скачать пример

Вы можете отправлять push-уведомления на панели i3 pro из внешних систем, тогда вы должны использовать push-ключ вместо идентификатора группы уведомления: Внешние push-уведомления.

Как это работает?

iRidium Server может уведомить пользователя о любом событии в системе автоматизации, которое воспринимает. Один из способов уведомления - отправка Push уведомления на смартфоны и планшеты пользователя, где установлено приложение . Приложение может быть закрыто, необходимо только подключение к интернету, без которого Push уведомление не будет получено адресатом.

iRidium Server отправляет сайту iRidium Mobile команду "уведомить панели управления". Сайт iRidium mobile перенаправляет эту команду в фирменные сервисы компаний Apple и Google (в зависимости от ОС панелей управления), а сервисы отправляют уведомления на смартфоны и планшеты пользователей объекта автоматизации.

HowPushWorks.png

Чтобы понять, какие именно смартфоны и планшеты должны получить уведомления, сайт iRidium Mobile должен видеть их в списке активных панелей управления.

iRidium Server отправляет уведомления не каждому устройству отдельно, а условным Группам устройств. Настроить Группы можно в объекте iRidium Cloud, вкладка "Пользователи и панели". Подробно - читайте далее.

Важно
  • Без iRidium Server отправить Push уведомление нельзя.
  • Если панель управления не подключена к интернету, Push не придет.
  • Иногда Push уведомления не доходят до адресата, обязательно обеспечьте резервирование важных сообщений, например, через СМС. Это связано с тем, что фирменные сервисы Apple и Google не имеют контроля доставки Push.

Как настроить отправку и обработку Push

Любое событие iRidium Server можно использовать, чтобы отправить Push уведомление:

  • Команда с панели управления или web-интерфейса сервера, инициированная пользователем;
  • Изменение состояния оборудования системы автоматизации;
  • Изменение даты, времени и других параметров окружения, непосредственно не связанных с оборудованием и действиями пользователей.

Отправить Push уведомление можно только из iRidium Server, на смартфон или планшет с . Для отправки уведомления есть специальная команда, настраиваемая в редакторе JavaScript серверного проекта. Рассмотрим способы вызова этой команды при различных событиях на iRidium Server:

  1. Создайте новый проект для iRidium Server в iRidium Studio (File > New > New Server Project...).

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

Push1.png

  • Чтобы уведомлять о нажатии кнопки на панели управления, добавьте в серверный проект виртуальную команду: Virtual > (+) > Add command. Будем менять состояние переменной с панели управления и использовать это изменение как сигнал к отправке уведомления;
  • Чтобы уведомлять об изменениях в системе автоматизации, настройте в проекте драйверы для оборудования системы. Изменения фидбеков драйвера мы будем использовать как сигналы к отправке уведомлений;
  • Чтобы уведомлять об изменении даты и времени (или других системных данных), достаточно обратиться к параметрам системы, дополнительных каналов создавать не нужно.
  1. Откройте окно редактора JS в панели инструментов iRidium Studio. Создайте новый файл скрипта: (+) > New Script, и настройте в нем отправку уведомлений при различных событиях. Рассмотрим три варианта:

3.1. Отправить уведомление с панели управления или из web-интерфейса сервера.

посмотреть видео

Отправка уведомления в данном случае реализуется с помощью скрипта:


//********** send push when User press a button in i3 pro **********

function push_from_i3(type, name, value)
{
IR.SendPush(value, "info", 1); // send notification (text of notification, hiden data, group of panels)
}

Push2.png

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

push_from_i3

к виртуальной команде сервера, как модификатор. Для этого выберите виртуальную команду сервера (в примере мы создали команду "Push from Panel"), откройте ее свойство Script Modifier и выберите в ней функцию

push_from_i3

Push3.png

Теперь любая строка, записанная в "Push from Panel", превратится в Push уведомление и будет отправлена сервером на панели управления.

3.2. Отправить уведомление, если изменилось состояние драйвера.

Отправка уведомления в данном случае реализуется с помощью скрипта:


//********** send push when Feedback of driver changes **********

var driver = IR.GetDevice("KNX"); // driver name

IR.AddListener(IR.EVENT_TAG_CHANGE, driver, function(name,value)
{
if (name == "Address 1" && value == 1) // if the KNX feedback "Address 1" changed to 1
{
IR.SendPush("Back door opened!", "show backdoor camera", 1); // text of notification, hiden data, group of panels
}
});

Push4.png

Чтобы скрипт сработал, в канал обратной связи "Address 1" драйвера "KNX" должно прийти значение 1. Дополнительных действий со стороны пользователя не потребуется, отправка уведомления производится автоматически.

3.3. Отправить уведомление, если наступила выбранная дата.

Отправка уведомления в данном случае реализуется с помощью скрипта:


//********** send push when it is some Date & Time **********

IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function (name, value)
{
// conditions:
if (IR.GetVariable("System.Date.MM_DD") == "03/14" && IR.GetVariable("System.Time.Hour") == 10 && IR.GetVariable("System.Time.Minutes") == 0)
{
IR.SendPush("Happy Birthday Mike!", "notification", 1); // text of notification, hiden data, group of panels
}
});

IR.SubscribeTagChange("System.Time.Minutes"); // subscribe on minutes to check condition each minute

Push5.png

Скрипт срабатывает каждую минуту и проверяет условие - наступили ли указанные дата и время. Реакцию на изменение параметров операционной системы обеспечивает глобальный слушатель и подписка. Уведомление будет отправлено, когда выполнятся условия - совпадет месяц/день и время, выбранное как момент для отправки уведомления.

  1. Cоздайте проект для панели управления: нажмите правой кнопкой на серверный проект > Create Panel Project. В созданном проекте найдите драйвер iRidium Server и укажите IP адрес (Host) устройства, на котором вы планируете запустить iRidium Server, иначе панель управления не сможет к нему подключиться. Чтобы получать уведомления, не нужны специальные настройки, пока приложение закрыто или свернуто, но мы настроим дополнительные возможности обработки уведомлений (это не обязательно):

4.1. Настройте обработку Push открытым приложением (РЕКОМЕНДОВАНО )

Важно

Если не добавлять обработчик Push в проект для панели управления, то во время, пока приложение открыто, вы не сможете узнать, что приходило уведомление.

По умолчанию, окно Push уведомления не всплывет, и звука уведомления не будет, если приложение уже запущено и открыто на панели управления. Но, в открытом приложении тоже может быть необходимо обрабатывать события сервера. Поэтому, для обработки Push открытым приложением, добавим в проект для панели управления (*.irpz) скрипт:


//********** Play sound and display text when notification received by the opened app **********

IR.AddListener(IR.EVENT_RECIEVE_PUSH_NOTIFY, 0, function(text, data, group)
{
IR.PlaySound('Alerting.wav',0,50); // play sound

IR.GetPage("Page 1").GetItem("text").Text = text; // display text of notification
IR.GetPage("Page 1").GetItem("data").Text = data; // display hiden data that can be used in JS
});

Push6.png

В этом примере, при получении Push, приложение воспроизведет звук и запишет полученные из уведомления данные на графические элементы в проекте.

4.2. Только для п. 3.1. Настройте отправку уведомлений по нажатию кнопки в приложении

Применимо только при наличии в серверном проекте скрипта, реализованного в примере. 3.1. "Отправить уведомление с панели управления или из web-интерфейса сервера ".

Чтобы действия пользователя инициировали отправку уведомлений, реализованную в 1м примере скрипта для сервера, необходимо управление виртуальной переменной сервера с панели управления. Настройка не относится непосредственно к работе Push, здесь мы только записываем строку в виртуальную переменную сервера. Сервер обрабатывает строку и превращает в Push уведомление для всех панелей управления.

Создайте графический элемент - кнопку (Button) или поле ввода (Editbox), которое будет отправлять текст вашего уведомления на сервер. Найдите в драйвере "iRidium Server" команду "Push from Panel" и перетащите её на графический элемент. В диалоге привязки команды выберите Action: Value from object , в поле значения: свойство .Text кнопки (или поля ввода). К полю ввода необходимо так же привязать команду Show Keyboard , чтобы по нажатию на поле ввода начать вводить данные с клавиатуры мобильного устройства.

Push7.png Push8.png

  1. Сохраните проекты для сервера и панели управления и загрузите в iRidium Cloud. Необходимо, чтобы оба проекта принадлежали одному объекту в облаке.
Важно

Push уведомления приходят только на устройства, проекты на которые загружены из iRidium Cloud (а не из Transfer).

  1. Создайте Trial или коммерческую лицензию для объекта.

  2. Пригласите (активация, шаг 4) конечного пользователя в объект или используйте свой альтернативный email.

Важно

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

  1. Настройте Push Groups - объединение пользователей по группам. В примере мы настраивали отправку сообщений в группу 1, поэтому именно группу 1 создадим в облаке:

AttachPushGroupX3.png

  1. Пригласите в проект конечного пользователя, в "Пользователи и панели" нажмите "Push Groups", чтобы настроить Группы, в которые войдет приглашенный пользователь.

  2. Создайте группу 1 (для нашего примера), выберите ей любое имя.

  3. Теперь группа привязана к пользователю, он получит отправленные Группе уведомления.

  4. Авторизуйтесь в на вашем iOS, Android устройстве как конечный пользователь (активация, шаг 5.1), скачайте проект с обработкой уведомлений. Помните, что аккаунт интегратора нельзя использовать для проверки Push уведомлений!.

  5. Авторизуйтесь (активация, шаг 5.2) на сервере как интегратор, скачайте проект с обработкой уведомлений.

Подсказка

Если вы настроили скрипт из пункта 3.1 , то отправить уведомление с произвольным текстом можно будет через web-интерфейс сервера: зайдите во вкладку "Channels&Feedback", выберите команду "Push from Panel" и введите текст, который хотите отправить. Сервер сформирует уведомление и оно появится на вашем iOS, Android устройстве.

  1. Все готово. Ваше мобильное устройство получит уведомление от сервера при срабатывании любого из настроенных событий. Отправляйте уведомления с панели управления, из web-интерфейса сервера, или следите с помощью уведомлений за изменением состояния оборудования, событиями даты и времени.
Важно

Пока приложение на панели управления открыто и развернуто, вы не будете видеть всплывающее окно, а также не будет звука уведомления - для активного приложения их нужно настроить отдельно, см. пункт 4.2 .