Добавление типовых устройств в 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.
-