ipad

Pop-Up уведомления

Сегодня мы с вами поговорим о pop-up уведомлениях, они станут вашими незаменимыми помощниками. Это уведомления, которые отправляет вам система в случае заранее заданной ситуации ( датчик движения не фиксирует движение на протяжение какого-то времени, сработал датчик протечки, розетка работает очень долго ), и предлагает решение.

Создать pop-up уведомления мы можем только на контроллере FIBARO Home Center 2 с помощью сцен в режиме LUA.

Cоздание сцены LUA

Для создание сцен LUA мы переходим во вкладку Сцены -> Добавить сцену -> Добавить сцену в режим LUA -> Добавить

2017-12-04_1429

Основные правила создания pop-up уведомления

Каждая сцена должна содержать в себе :
-триггеры
-локальные переменные
-условия и результат
-всплывающие настройки

Пункт триггера

--[[
%% properties
72 value
%% events
%% globals
--]]

Cцена будет срабатывать, если устройства c ID72 будет менять свое «значение»

Локальные переменные

Локальные переменные применяются для облегчения кода при чтении , также в дальнейшем он поможет вам изменить LUA код без особых проблем.

-- ID датчика движения
local MotionSensorID = 72
-- переменная, которая содержит значение иконки (вы можете загрузить свою личную иконку; необходимо ввести IP вашего Home Center 2),
local imgUrl = 'http://192.168.103.97/fibaro/icons/motion_sensor/motion_sensor0.png'
--переменная, которая указывает текущее время
local currentDate = os.date("*t");

Условие и результат

В зависимости от сцен, вы можете указать необходимые требования, которые будут выполняться в соответствии с вашими условиями. Чаще всего формула условия и результата выглядит так: if ( условие ) , then ( результат ).

Например, вы можете внести ограничение на количество повторных запусков сцен.

--блокирует множество запусков сцен одновременно
if (fibaro:countScenes() > 1) then
    fibaro:abort()
end

Настройка всплывающего окна

Начните с функции HomeCenter.PopupService.publish ({}) . Дальше есть ряд настроек, которые позволят внести основные изменения в уведомления.

title — название всплывающего окна

субтитры — дополнительный субтитр всплывающего окна

contentTitle — основное сообщение уведомления

contentBody — предлагаемое решение

img — изображение уведомления в формате .jpg, .png или .bmp

type — тип всплывающего окна

buttons — определение кнопок, используемых в уведомлении.

Рассмотрим пример:

-- открытие pop-up уведомления,
HomeCenter.PopupService.publish({
-- titleобязательное поле для заполнения,
title = 'No motion detected',
-- subtitleнеобязательное заполнение,
subtitle = string.format("%02d:%02d:%02d | April %02d, %04d", currentDate.hour, currentDate.min, currentDate.sec, currentDate.day, currentDate.year),
-- текст pop-up уведомления (необязательное),
contentTitle = 'No motion since last 15 minutes',
-- содержание pop-up уведомления –  обязательное поле для заполнения,
contentBody = 'Should I run the scene "Night"?',
-- картинка уведомления (возможные форматы - .jpg, .png, .bmp),
img = imgUrl,
-- тип уведомления: ('Info'синий цвет, 'Success'зеленый цвет,  'Warning'желтый цвет, 'Critical'красный цвет)
type = 'Success',
-- варианты кнопок – ‘caption’ – имя кнопки, sceneIdID сцены, которая будет запущена после нажатия на кнопку (значение 0никакая сцена не будет запущена), вы можете создать до трех кнопок, в стартовом варианте будет только кнопка ‘Okbuttons = {
    { caption = 'Yes', sceneId = 1 },
    { caption = 'No', sceneId = 0 }
}
})

Уведомления бывают разного цвета:

  • Зеленая рамка
    type = ‘Success’
    зеленая
  • Голубая рамка
    type = ‘Info’
    синий
  • Желтая рамка
    type = ‘Warning’
    желтая
  • Красная рамка
    type = ‘Critical’
    красный

В уведомлениях каждая цветовая рамка выглядит по разному.
0-02-01-e00fb8abc611584737eddece4106de0e537941f24a39f92c7c2e3e8e4bbf6745_full

На уведомлениях есть возможность корректировать количество кнопок.

  • Одна кнопка
    buttons = {
        { caption = ‘Ok’, sceneId = 0 }
        }
    1 кнопка
  • Две кнопки
    buttons = {
        { caption = ‘Yes’, sceneId = 1 },
        { caption = ‘No’, sceneId = 0 }
    }

    желтая

  • Три кнопки
    buttons = {
        { caption = ‘Yes’, sceneId = 2 },
        { caption = ‘No’, sceneId = 1 },
        { caption = ‘Cancel’, sceneId = 0 }
    }

    3 кнопки

Каждая кнопка может вызывать различную сцену, используя ее ID. Сцена должна быть предварительно создана.

Вам также может понравиться ...

Подпишитесь, чтобы быть в курсе последних событий:

fb vk twitter youtubr instagram