gate
Ворота.
Доступные функции устройства
У устройства могут быть все нижеперечисленные функции или только часть из них. Например, если устройство нельзя открыть на заданный процент, включать функцию open_percentage
в описание его модели не нужно.
У устройства есть обязательные функции: 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_left_state
, open_left_percentage
, open_right_state
, open_right_percentage
должны соответствующим образом меняться и значения функций open_state
, open_percentage
.
Функция | Обязательная? | Описание |
online | ✔︎ | Доступность устройства: офлайн или онлайн |
open_left_percentage | Открывание левой половины устройства в процентах | |
open_left_set | Открывание левой половины устройства | |
open_left_state | Статус открывания левой стороны устройства | |
open_percentage | ✔︎* | Открывание устройства в процентах. Для устройства обязательно должен быть описан способ открытия: либо open_percentage , либо open_set , либо они оба |
open_rate | Скорость открывания устройства | |
open_right_percentage | Открывание правой половины устройства в процентах | |
open_right_set | Статус открывания правой стороны устройства | |
open_right_state | Открывание правой половины устройства | |
open_set | ✔︎* | Открывание устройства. Для устройства обязательно должен быть описан способ открытия: либо open_percentage , либо open_set , либо они оба |
open_state | ✔︎ | Статус открывания устройства |
signal_strength | Сила сигнала |
Пример описания модели ворот
Модель описывается в соответствии со структурой model. В примере описаны ворота, которые обладают всеми функциями, кроме возможности открываться на заданный процент.
Кроме того, у модели изменены доступные значения для функции open_rate
(скорость открывания устройства): эту модель можно открывать только с тремя скоростями, средняя скорость medium
не поддерживается и исключена.
{
"id": "QWERTY124",
"manufacturer": "Xiaqara",
"model": "SM1123456789",
"hw_version": "3.1",
"sw_version": "5.6",
"description": "Умные ворота Xiaqara",
"category": "gate",
"features": [
"online",
"open_left_percentage",
"open_left_set",
"open_left_state",
"open_rate",
"open_right_percentage",
"open_right_set",
"open_right_state",
"open_set",
"open_state",
"signal_strength"
],
"allowed_values": {
"open_rate": {
"type": "ENUM",
"enum_values": {
"values": [
"auto",
"low",
"high"
]
}
}
}
}
Пример описания ворот пользователя
Устройство описывается в соответствии со структурой device. В примере нет описания модели ворот — считаем, что модели описаны отдельно, поэтому достаточно указать только ID модели (здесь — QWERTY124).
{
"id": "ABCD_004",
"name": "Мои ворота",
"default_name": "Умные ворота",
"nicknames": ["Смарт-ворота", "Управляемые ворота"],
"home": "Мой дом",
"room": "Гараж",
"groups": ["Заезд", "Входная группа"],
"model_id": "QWERTY124",
"hw_version": "3.1",
"sw_version": "5.6",
"partner_meta": {
"internal-id": 1234,
"specificity": "microchip 2A"
},
}