Добавление типовых устройств в SberDevices IoT Agent
Обобщенный процесс добавления устройств
Для добавления устройства в веб-интерфейсе агента SberDevices IoT Agent нажмите кнопку Добавить устройство. Затем заполните поля:
- Название — пользовательское название устройства, например «Ночник», «Торшер» и т. д.
- Категория — категория устройства. Все категории перечислены в справочнике поддерживаемых умным домом Sber устройств.
- Комната — место расположения устройства в доме клиента.
После на вкладке Функции укажите топики для обязательных функций — примеры для разных типов устройств приведены ниже. Подходящие для устройства функции можно посмотреть, выбрав нужный девайс в списке устройств. Все функции устройств умного дома приведены в общем справочнике функций.
Подробно о добавлении устройств читайте в разделе Добавление устройств в приложении SberDevices IoT Agent.
Осветительный прибор
Обязательные функции для устройства light — online и on_off. В качестве примера приведен осветительный прибор, подключенный к диммеру WB-MDM3 со slaveID 57, а именно к выходу первого каналу O1:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для диммера из примера нужно указать топик/devices/wb-mdm3_57: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Для функции on_off необходимо указать топики в полях Объект команды и Объект статуса. Для диммера из примера нужно указать топик
/devices/wb-mdm3_57/controls/K1
в обоих полях.
Осветительный прибор с регулировкой яркости
Обязательные функции для устройства light — online и on_off. В качестве примера приведен осветительный прибор, подключенный к диммеру WB-MDM3 со slaveID 57, а именно к выходу первого каналу O1:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для диммера из примера нужно указать топик/devices/wb-mdm3_57: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Для функции on_off необходимо указать топики в полях Объект команды и Объект статуса. Для диммера из примера нужно указать топик
/devices/wb-mdm3_57/controls/K1
в обоих полях.За управление яркостью отвечает функция light_brightness. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию light_brightness и нажать Добавить. После необходимо заполнить поля:
В полях Объект команды и Объект статуса нужно вписать топик
/devices/wb-mdm3_57/controls/Chanel 1
.Так как диапазон значений функции в облаке Sber и диапазон значений у устройства в контроллере различаются, необходимо создать правило трансформации. В карточке функции light_brightness нужно выбрать трансформацию integer_scale и указать соответствие минимального значения в облаке Sber (50) минимальному значению в контроллере (1), а также максимального значения в облаке Sber (1000) максимальному значению в контроллере (100).
Чтобы добавить правило, нажмите Сохранить на форме правила трансформации, а затем — кнопку Добавить на форме функции light_brightness.
Светодиодная лента
Обязательные функции для устройства led_strip — online и on_off. В качестве примера приведена лента, подключенная к диммеру WB-LED со slaveID 39 и с режимом работы RGB + W:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для диммера из примера нужно указать топик/devices/wb-led_39: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Для функции on_off необходимо указать топики в полях Объект команды и Объект статуса. Для диммера из примера нужно указать топик
/devices/wb-led_39/controls/RGB Strip
в обоих полях.За управление яркостью отвечает функция light_brightness. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию light_brightness и выбрать Добавить. После необходимо заполнить поля:
В полях Объект команды и Объект статуса нужно вписать топик
/devices/wb-led_39/controls/RGB Brightness
.Так как диапазон значений функции в облаке Sber и диапазон значений у устройства в контроллере различаются, необходимо создать правило трансформации. В карточке функции light_brightness нужно выбрать трансформацию integer_scale и указать соответствие минимального значения в облаке Sber (50) минимальному значению в контроллере (1), а также максимального значения в облаке Sber (1000) максимальному значению в контроллере (100).
Чтобы добавить правило, нажмите Сохранить на форме правила трансформации, а затем — кнопку Добавить на форме функции light_brightness.
За управление цветом отвечает функция light_colour. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию light_brightness и выбрать Добавить. После в полях Объект команды и Объект статуса необходимо вписать топик
/devices/wb-led_39/controls/RGB Palette
.
Реле
Обязательные функции для устройства relay — online и on_off. В качестве примера приведен полотенцесушитель, подключенный к реле WB-MR6C со slaveID 46, а именно к первому выходу реле K1:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для устройства из примера нужно указать топик/devices/wb-mr6c_46: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Для функции on_off необходимо указать топики в полях Объект команды и Объект статуса. Для устройства из примера нужно указать топик
/devices/wb-mr6c_46/controls/K1
в обоих полях.
Датчик температуры и влажности
Обязательные функции для устройства sensor_temp — online и одна из двух функций: temperature либо humidity. В качестве примера приведен универсальный датчик WB-MSW со slaveID 64:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для диммера из примера нужно указать топик/devices/wb-msw-v3_64: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Текущая температура передается с помощью функции temperature. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию temperature и выбрать Добавить. После необходимо заполнить поля:
В поле Объект статуса нужно вписать топик
/devices/wb-msw-v3_64/controls/Temperature
.Так как единицы значения функции в облаке Sber (единица — 0,1 градус) и датчике WB-MSW (единица — 1 градус) различаются, необходимо создать правило трансформации: в карточке функции temperature нужно выбрать трансформацию multiplication и указать множитель 10. Чтобы добавить правило, нажмите Сохранить на форме правила трансформации, а затем — кнопку Добавить на форме функции temperature.
Текущая влажность передается с помощью функции humidity. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию humidity и выбрать Добавить. После необходимо заполнить поле Объект статуса: для устройства из примера нужно указать топик
/devices/wb-msw-v3_64/controls/Humidity
.
Кондиционер (устройство управления климатом)
Обязательные функции для устройства hvac_ac — online, on_off и hvac_temp_set:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Также объект может передавать постоянный статусtrue
илиfalse
. Для устройства из примера указан топик__true
.Для функции on_off необходимо указать топики в полях Объект команды и Объект статуса. Для устройства из примера нужно указать топик
/devices/Climate_Living_room/controls/OnOff
в обоих полях.Для функции hvac_temp_set необходимо указать топики в полях Объект команды и Объект статуса. Для устройства из примера нужно указать топик
/devices/Climate_Living_room/controls/Setpoint Temperature
в обоих полях.За режим работы кондиционера отвечает функция hvac_work_mode. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию hvac_work_mode и выбрать Добавить. После необходимо указать атрибуты функции:
Чтобы выбрать режимы работы, которые будут использоваться в функции, в блоке Допустимые значения нажмите
и отключите те режимы, которые не нужны для кондиционера. В примере будут использоваться только четыре режима: `auto`, `cooling`, `heating`, `ventilation`. Затем нажмите .В полях Объект команды и Объект статуса необходимо указать топик
/devices/Climate_Living_room/controls/Mode
.Для смены режима работы кондиционера необходимо передать на устройство одно из числовых значений (0, 1, 2 или 3), однако облако Sber ожидает выбранные ранее значения:
auto
,cooling
,heating
,ventilation
. Для корректной работы кондиционера нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхINTEGER
. Затем, нажимая на значок плюса, нужно создать четыре правила сопоставления: в первом столбце указывается значение в контроллере (например, 0), во втором столбце — значение в облаке Sber (например,cooling
).
За скорость работы вентиляторов отвечает функция hvac_air_flow_power. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию hvac_air_flow_power и выбрать Добавить. После необходимо указать атрибуты функции:
Чтобы выбрать режимы скорости, которые будут использоваться в функции, в блоке Допустимые значения нажмите
и отключите те режимы, которые не нужны для кондиционера. В примере будут использоваться только четыре скорости: `auto`, `high`, `low`, `medium`. Затем нажмите .В полях Объект команды и Объект статуса необходимо указать топик
/devices/Climate_Living_room/controls/Fan Speed
.Для смены скорости работы вентиляторов кондиционера необходимо передать на устройство одно из числовых значений (0, 1, 2 или 3), однако облако Sber ожидает выбранные ранее значения:
auto
,high
,low
,medium
. Для корректной работы кондиционера нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхINTEGER
. Затем, нажимая на значок плюса, нужно создать четыре правила сопоставления: в первом столбце указывается значение в контроллере (например,1
), во втором столбце — значение в облаке Sber (например,low
).
Текущая температура передается с помощью функции temperature. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию temperature и выбрать Добавить. После необходимо заполнить поля:
В поле Объект статуса нужно вписать топик
/devices/Climate_Living_room/controls/Actual Temperature
.Так как единицы значения функции в облаке Sber (единица — 0,1 градус) и контроллере (единица — 1 градус) различаются, необходимо создать правило трансформации: в карточке функции temperature нужно выбрать трансформацию multiplication и указать множитель 10. Чтобы добавить правило, нажмите Сохранить на форме правила трансформации, а затем — кнопку Добавить на форме функции temperature.
Теплый пол
Обязательные функции для устройства hvac_underfloor_heating — online и on_off:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Также объект может передавать постоянный статусtrue
илиfalse
. Для устройства из примера указан топик__true
.Для функции on_off необходимо указать топики в полях Объект команды и Объект статуса. Для устройства из примера нужно указать топик
/devices/Climate_Living_room/controls/OnOff
в обоих полях.За настройку целевой температуры отвечает функция hvac_temp_set. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию hvac_temp_set и выбрать Добавить. После в полях Объект команды и Объект статуса необходимо вписать топик
/devices/Warm_floor_Bathroom_1/controls/Setpoint Temperature
.Текущая температура передается с помощью функции temperature. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию temperature и выбрать Добавить. После необходимо заполнить поля:
В поле Объект статуса нужно вписать топик
/devices/Warm_floor_Bathroom_1/controls/Actual Temperature
.Так как единицы значения функции в облаке Sber (единица — 0,1 градус) и контроллере (единица — 1 градус) различаются, необходимо создать правило трансформации: в карточке функции temperature нужно выбрать трансформацию multiplication и указать множитель 10. Чтобы добавить правило, нажмите Сохранить на форме правила трансформации, а затем — кнопку Добавить на форме функции temperature.
Сценарная кнопка (кнопка без фиксации)
Обязательная функции для устройства scenario_button — online. В качестве примера приведена кнопка, подключенная к модулю дискретных входов WBIO-DI-WD-14:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для устройства из примера нужно указать топик/devices/wb-gpio: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.За доступные способы нажатия на кнопку отвечает функция button_event. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию button_event и выбрать Добавить. После необходимо указать атрибуты функции:
Чтобы выбрать нажатия, которые будут использоваться для кнопки, в блоке Допустимые значения нажмите
и отключите те нажатия, которые не нужны для устройства. В примере будут использоваться только однократное нажатие: `click`. Затем нажмите .В поле Объект статуса необходимо указать топик
/devices/wb-gpio/controls/EXT1_IN1
.При нажатии на кнопку контроллер передает значение
true
илиfalse
, однако облако Sber ожидает только выбранное ранее значение:click
. Для корректной работы кнопки нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхBOOL
. Затем, нажав на значок плюса, нужно создать правило сопоставления: в первом столбце указывается значение в контроллере (true
), во втором столбце — значение в облаке Sber (click
).
Шторы
У устройства curtain есть обязательные функции: online
, open_state
. Кроме того, обязательно должен быть описан способ открытия: либо open_set
, либо open_percentage
, либо они оба.
При одновременном использовании open_set
и open_percentage
необходимо соблюдать правило:
- Если
open_percentage
не равен нулю, тоopen_set
должен принять значениеopen
. И наоборот: еслиopen_set
имеет значениеopen
,open_percentage
должен быть больше нуля. - Если
open_percentage
равен нулю, тоopen_set
должен принять значениеclose
. И наоборот: еслиopen_set
имеет значениеclose
,open_percentage
должен быть равен нулю.
В качестве примера приведены шторы, поддерживающие команды open
и close
:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Также объект может передавать постоянный статусtrue
илиfalse
. Для устройства из примера указан топик__true
.За статус открывания штор отвечает функция open_state. Для нее необходимо указать атрибуты:
Чтобы выбрать состояния открытия, которые будут использоваться для штор, в блоке Допустимые значения нажмите
и отключите те состояния, которые не нужны для устройства. В примере будут использоваться только финишные состояния: `open` и `close`. Затем нажмите .В поле Объект статуса необходимо указать топик
/devices/Curtain_State/control/Curtain_State
.При передаче статуса контроллер передает значение
true
илиfalse
, однако облако Sber ожидает только выбранные ранее значенияopen
иclose
. Для корректной работы штор нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхBOOL
. Затем, нажимая на значок плюса, нужно создать два правила сопоставления: в первом столбце указывается значение в контроллере, во втором столбце — значение в облаке Sber. Для штор из примера правила сопоставления будут такие:false
равноopen
иtrue
равноclose
.
За управление открыванием штор отвечает функция open_set. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию open_set и выбрать Добавить. После необходимо указать атрибуты функции:
Чтобы выбрать команды открытия и закрытия, которые будут использоваться для штор, в блоке Допустимые значения нажмите
и отключите те состояния, которые не нужны для устройства. В примере будут использоваться только состояния `open` и `close`. Затем нажмите .В поле Объект статуса необходимо указать топик
/devices/KNX/control/Curtain move
.При управлении шторами контроллер передает значение
true
илиfalse
, однако облако Sber ожидает только выбранные ранее значенияopen
иclose
. Для корректной работы штор нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхBOOL
. Затем, нажимая на значок плюса, нужно создать два правила сопоставления: в первом столбце указывается значение в контроллере, во втором столбце — значение в облаке Sber. Для штор из примера правила сопоставления будут такие:false
равноopen
иtrue
равноclose
.
Датчик движения
Обязательные функции для устройства sensor_pir — online и pir. В качестве примера приведен универсальный датчик WB-MSW со slaveID 149:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для устройства из примера нужно указать топик/devices/wb-msw-v3_149: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.За оповещение при срабатывании датчика отвечает функция pir. В поле Объект статуса для нее нужно указать топик
/devices/wb-msw-v3_149/control/Currrent Motion
.Датчик движения передает текущее значение интенсивности движения, однако при обнаружении движения облако Sber ожидает значение
pir
. Для корректной работы датчика необходимо настроить несколько правил трансформаций:Правило, определяющее нижний порог, при котором в облако Sber будет отправлено уведомление о движении. Тип такой трансформации — true_threshold. Для этой трансформации следует указать пороговое значение интенсивности движения (например, 400), а также способ его обработки. Чтобы уведомление о движении отправлялось при превышении порогового значения, нужно выбрать оператор
MORE
.При превышении порогового значения (в этом примере — 400) будет отправляться уведомление в облако Sber, но эта команда будет отправляться в виде значения
true
и с типом данныхBOOL
. Облако умного дома же ожидает значениеpir
. Поэтому дополнительно нужно настроить правило трансформации типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхBOOL
. Затем, нажав на значок плюса, нужно создать правило сопоставления: в первом столбце указывается значение в контроллере (true
), во втором столбце — значение в облаке Sber (pir
).Также необходимо задать таймаут отправки уведомлений, чтобы при повторном обнаружении движения в облако не отправлялись дублирующие данные. Для этого к функции нужно добавить трансформацию типа ignore_delay со значением формата
1h10m10s
. Для правильной работы датчика рекомендуем устанавливать таймаут длительностью не менее пяти секунд — для этого в значении трансформации нужно указать5s
.
Датчик открытия
Обязательные функции для устройства sensor_door — online и doorcontact_state. В качестве примера приведен умный датчик Sber. Он беспроводной, работает по протоколу Zigbee.
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для устройства из примера нужно указать топик/devices/Zigbee Door sensor: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Статус датчика возвращает функция doorcontact_state. Для нее нужно указать следующие атрибуты:
В поле Объект статуса необходимо указать топик
/devices/Zigbee Door sensor/control/contact
.Для корректной работы датчика нужно инвертировать передаваемое им значение. Чтобы это сделать, следует добавить трансформацию типа boolean_invert.
Датчик протечки
Обязательные функции для устройства sensor_water_leak — online и water_leak_state. В качестве примера приведен датчик, подключенный ко входу модуля защиты от протечек WB-MWAC:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Для устройства из примера нужно указать топик/devices/Water_control: OK
.Также объект может передавать постоянный статус
true
илиfalse
. Для этого введите__true
или__false
.Статус датчика возвращает функция water_leak_state. Для нее нужно указать топик
/devices/Water_control/control/alarm
.
Моторизованный кран
У устройства valve есть обязательные функции: online, open_state. Кроме того, обязательно должен быть описан способ открытия: либо open_set, либо open_percentage, либо они оба.
При одновременном использовании open_set
и open_percentage
необходимо соблюдать правило:
- Если
open_percentage
не равен нулю, тоopen_set
должен принять значениеopen
. И наоборот: еслиopen_set
имеет значениеopen
,open_percentage
должен быть больше нуля. - Если
open_percentage
равен нулю, тоopen_set
должен принять значениеclose
. И наоборот: еслиopen_set
имеет значениеclose
,open_percentage
должен быть равен нулю.
В качестве примера приведен моторизированный кран, подключенный к модулю защиты от протечек WB-MWAC со slaveID 25, а именно к выходу K2. Моторизированный кран поддерживают две команды управления: open
и close
:
Для функции online необходимо указать топик в поле Объект статуса. Рекомендуем использовать объекты с суффиксом
OK
— они сообщают об отсутствии ошибок, относящихся топикам настраиваемого устройства. Также объект может передавать постоянный статусtrue
илиfalse
. Для устройства из примера указан топик/devices/wb-mwac_25: OK
.За статус открывания крана отвечает функция open_state. Для нее необходимо указать атрибуты:
Чтобы выбрать состояния открытия, которые будут использоваться для крана, в блоке Допустимые значения нажмите
и отключите те состояния, которые не нужны для устройства. В примере будут использоваться только финишные состояния: `open` и `close`. Затем нажмите .В поле Объект статуса необходимо указать топик
/devices/wb-mwac_25/control/K2
.При передаче статуса контроллер передает значение
true
илиfalse
, однако облако Sber ожидает только выбранные ранее значенияopen
иclose
. Для корректной работы крана нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхBOOL
. Затем, нажимая на значок плюса, нужно создать два правила сопоставления: в первом столбце указывается значение в контроллере, во втором столбце — значение в облаке Sber. Для крана из примера правила сопоставления будут такие:true
равноopen
иfalse
равноclose
.
За управление открыванием штор отвечает функция open_set. Чтобы добавить ее, нужно нажать на поле Выберите функцию, найти функцию open_set и выбрать Добавить. После необходимо указать атрибуты функции:
Чтобы выбрать команды открытия и закрытия, которые будут использоваться для крана, в блоке Допустимые значения нажмите
и отключите те состояния, которые не нужны для устройства. В примере будут использоваться только состояния `open` и `close`. Затем нажмите .В поле Объект статуса необходимо указать топик
/devices/wb-mwac_25/control/K2
.При управлении шторами контроллер передает значение
true
илиfalse
, однако облако Sber ожидает только выбранные ранее значенияopen
иclose
. Для корректной работы штор нужно добавить трансформацию типа mapping: для облака Sber указать тип данныхENUM
, а для контроллера выбрать типа данныхBOOL
. Затем, нажимая на значок плюса, нужно создать два правила сопоставления: в первом столбце указывается значение в контроллере, во втором столбце — значение в облаке Sber. Для крана из примера правила сопоставления будут такие:true
равноopen
иfalse
равноclose
.