Добавление устройств в приложении SberDevices IoT Agent
Добавить устройство
В браузере войдите в веб-интерфейс агента SberDevices IoT Agent — для этого введите адрес
http://<IP-адрес контроллера>:8083>/
, где<IP-адрес контроллера>
— тот же IP-адрес, который вы указывали для подключения к веб-конфигуратору контроллера. Адрес по умолчанию —http://192.168.42.1
.Нажмите кнопку Добавить устройство. Откроется окно создания устройства.
На вкладке Описание заполните поля:
Название — пользовательское название устройства, например «Ночник», «Торшер» и т. д.
Категория — категория устройства. Все категории перечислены в справочнике поддерживаемых умным домом Sber устройств.
Комната — место расположения устройства в доме клиента. Поле необязательное, но мы рекомендуем заполнить его. Название комнаты должно быть на русском языке, без специальных символов и не длиннее 35 знаков.
Если в умном доме Sber есть комната с таким же названием, устройство будет импортировано туда. Если комнаты с совпадающим названием нет, устройство будет импортировано в раздел «Без комнаты».
Если комната не задана, ее можно будет назначить позднее в приложении Салют для Android, в веб-версии приложения Салют или в приложении СберБанк Онлайн.
Определите список функций, который будете описывать для устройства. Подходящие для устройства функции можно посмотреть, выбрав нужный девайс в списке устройств. Все функции устройств умного дома приведены в общем справочнике функций.
На вкладке Функции укажите топики для обязательных функций устройства. Для большинства устройств обязательными функциями являются online (статус доступности устройства) и on_off (состояние устройства).
Для каждой функции укажите:
Объект статуса. Топик для получения статуса устройства. Например, для устройства-осветительного прибора, по электрической схеме подключенного к каналу O1 диммера WB-MDM3, объект статуса должен соответствовать топику настраиваемого канала диммера. Пример топика:
/devices/wb-mdm3_57/controls/K1
.Для функции
online
рекомендуется использовать объекты с суффиксомOK
: они сообщают об отсутствии ошибок, относящихся к соответствующему топику. Также объект может передавать постоянный статус true или false: введите__true
или__false
.Объект команды. Топик для отправки команд. Например, устройства-осветительного прибора, по электрической схеме подключенного к каналу O1 диммера WB-MDM3, объект команды должен соответствовать топику настраиваемого канала диммера. Пример топика для функции
on/off
:/devices/wb-mdm3_57/controls/K1
.
На вкладке Функции добавьте необязательные функции устройства. Для добавлении функции выберите ее из списка в верхней части окна и нажмите Добавить, затем укажите:
Объект статуса и Объект команды. Например, для устройства-осветительного прибора может быть добавлена функция light_brightness — яркость устройства. Если устройство по электрической схеме подключено к каналу O1 диммера WB-MDM3, объект статуса и объект команды должны соответствовать топику настраиваемого канала диммера для регулировки яркости. Пример топика для функции
light_brightness
:/devices/wb-mdm3_57/controls/Channel 1
.Трансформации. Тип данных и диапазон допустимых значений для топика в контроллере Sber и облаке умного дома Sber иногда могут различаться. Например, для функции hvac_air_flow_power в облаке умного дома Sber используется тип данных ENUM, а в контроллере Sber — тип INTEGER.
Еще пример: для функции light_brightness в облаке умного дома Sber используется числовой диапазон от 50 до 1000, а в контроллере Sber — диапазон от 0 до 100.
Для корректной работы умного дома пользователя необходимо настроить правило преобразования топика из формата умного дома Sber в формат контроллера Sber. Диапазон значений и тип данных, которые используются в облаке умного Sber, описаны в документации для каждой функции: выберите нужную из списка. Например, для функции light_brightness это INTEGER(50,1000).
Примеры трансформаций приведены ниже: трансформация диапазона допустимых значений, трансформации значений с помощью множителя, трансформация типа данных, использование нескольких трансформаций.
Нажмите Сохранить, чтобы добавить устройство.
Когда добавите все устройства, нажмите кнопку Перезапустить. SberDevices IoT Agent перезагрузится и принудительно синхронизируется с облаком. Устройства на контроллере станут отображаться в Studio — подробнее см. раздел Проверка импорта устройств клиента.
Проверьте логи контроллера, чтобы убедиться, что в работе устройства и его функций нет ошибок.
Пример трансформации диапазона допустимых значений
Для функции light_brightness (яркость) в облаке умного дома Sber используется числовой диапазон от 50 до 1000, а в контроллере Sber — диапазон от 0 до 100. Тип данных у функции совпадает.
Чтобы задать трансформацию диапазона:
На вкладке Функции выберите функцию light_brightness.
Выберите и добавьте тип трансформации integer_scale. Затем укажите соответствие значений:
- В поле Минимальное значение в облаке введите 50, в поле Минимальное значение на контроллере — 0.
- В поле Максимальное значение в облаке введите 1000, в поле Максимальное значение на контроллере — 100.
Нажмите Сохранить, чтобы сохранить трансформацию. Затем нажмите Сохранить еще раз — чтобы сохранить изменения всей функции.
Пример трансформации значений с помощью множителя
У функции temperature (текущая температура) в облаке умного дома Sber одна единица соответствует 0,1 градусу, а в контроллере Sber — 1 градусу. Тип данных у функции совпадает.
Чтобы задать трансформацию значений:
- На вкладке Функции выберите функцию temperature.
- Выберите и добавьте тип трансформации multiplication. Затем в поле Множитель введите 10.
- Нажмите Сохранить, чтобы сохранить трансформацию. Затем нажмите Сохранить еще раз — чтобы сохранить изменения всей функции.
Пример трансформации типа данных с сопоставлением значений
Для функции hvac_air_flow_power (скорость вентилятора) в облаке умного дома Sber используется тип данных ENUM, а в контроллере Sber — INTEGER.
Чтобы задать трансформацию типа данных:
На вкладке Функции выберите функцию hvac_air_flow_power.
Выберите и добавьте тип трансформации mapping. Затем заполните поля трансформации:
В поле Тип в облаке укажите ENUM, в поле Тип на контроллере — INTEGER.
В блоке Правила нажмите на значок плюса и укажите, как значения функции из облака должны сопоставляться со значениями на контроллере. Например, ENUM-значению
low
сопоставьте INTEGER-значение33
; ENUM-значениюmedium
— INTEGER-значение66
; ENUM-значениюhigh
— INTEGER-значение100
.Если для устройства будут использоваться не все доступные ENUM-значения, ненужные можно отключить. Для этого в блоке с трансформацией нажмите значок
и оставьте выбранными только нужные допустимые значения (по умолчанию выбраны все из них). После нажмите значок .
Нажмите Сохранить, чтобы сохранить трансформацию. Затем нажмите Сохранить еще раз — чтобы сохранить изменения всей функции.
Пример использования нескольких трансформаций
У топика может быть несколько трансформаций. В этом случае важно соблюдать порядок их добавления.
При срабатывании датчика движения облако умного дома Sber ожидает от его функции pir ENUM-значение pir
(движение обнаружено). Но контроллер Sber отправляет числовые значения, которые датчик движения передает с определенной периодичностью.
Для корректной работы датчика движения с облаком умного дома Sber нужно учесть два условия:
- Сигнал об обнаружении движения должен передаваться при значении датчика движения равным числовому значению X или выше, получаемому с контроллера Sber.
- При обнаружении движения в умный дом Sber должно передаваться значение
pir
с типом данных ENUM.
Для создания трансформаций для этих условий:
На вкладке Функции выберите функцию pir.
Добавьте трансформацию для фиксирования всех значений с датчика движения, полученных с контроллера Sber и равных значению X или выше. Для этого:
Выберите и добавьте тип трансформации true_threshold.
В поле Значение укажите пороговое значение, при котором сигнал об обнаружении движения будет отправлен в облако умного дома Sber. Например, введите 400.
В поле Оператора выберите, при пересечении порога в большую или меньшую сторону должен отправляться сигнал об обнаружении движения. Для функции
pir
оператор будет MORE — то есть сигнал об обнаружении движения будет отправлен, если контроллер зафиксирует значение 400 или больше.Нажмите Сохранить, чтобы сохранить трансформацию.
Добавьте трансформацию для преобразования типа данных. Для этого:
Выберите и добавьте тип трансформации mapping.
В поле Тип в облаке укажите ENUM, в поле Тип на контроллере — BOOL.
В блоке Правила нажмите на значок плюса и укажите, как значения функции из облака должны сопоставляться со значениями на контроллере: ENUM-значению
pir
сопоставьте BOOL-значениеtrue
.Нажмите Сохранить, чтобы сохранить трансформацию.
Нажмите Сохранить, чтобы сохранить изменения всей функции.