Допустимые значения функций (allowed_values)
Структура используется при описании моделей устройств и определяет, какие значения могут принимать функции модели. Структуру нужно применять, если вы хотите переопределить допустимые по умолчанию значения для функций.
Например:
Функция hvac_temp_set определяет, какую температуру кондиционеру или другому похожему прибору необходимо достичь. По умолчанию может принимать значения от 5 до 50 °C, шаг изменения — 1 °C. Если ваше устройство поддерживает эту функцию, но диапазон допустимых значений или шаг у нее иной, их можно сменить на нужные.
После этого пользователь сможет установить температуру только в границах заданного диапазона. При изменении температуры голосовыми командами «Сделай теплее» и «Сделай холоднее» или через интерфейс с помощью кнопок значение функции будет меняться на установленное вами количество градусов в шаге.
- Функция open_rate определяет, с какой скоростью должны открываться шторы или похожий прибор. По умолчанию может принимать значения
auto
,low
,medium
,high
. Если модель ваших штор не поддерживает какую-то скорость открывания, ее можно исключить — она не будет отображаться в интерфейсе.
Структура может использоваться только в описании функций, которые принимают значения (value) в одном из следующих типов: FLOAT
, INTEGER
, ENUM
.
Поле | Тип | Обязательное? | Описание |
allowed_values | map<string, object> | ✔︎ | Содержит перечень функций. Для каждой функции описываются значения, которые она может принимать |
func_name | string | ✔︎ | Функция, для которой описывается диапазон допустимых значений. Список функций см. в разделе Функции устройств |
type | string | ✔︎ | Тип данных, которое принимает функция. Возможные значения:
|
float_values | object | ✔︎* | Допустимые значения для функции, принимающей значение Обязательно указываются:
|
integer_values | object | ✔︎* | Допустимые значения для функции, принимающей значение Обязательно указываются:
|
enum_values | object | ✔︎* | Допустимые значения для функции, принимающей значение Обязательно указывается перечень |
{
"allowed_values": {
"func_name": {
"type": "FLOAT",
"float_values": {
"min": number,
"max": number,
}
},
"func_name": {
"type": "INTEGER",
"integer_values": {
"min": string,
"max": string,
"step": string
}
},
"func_name": {
"type": "ENUM",
"enum_values": {
"values": [
"value_1",
"value_2",
// ...
]
}
},
{
// ...
},
}
}
Пример описания диапазона допустимых значений для функций
В примере задаются допустимые значения для функций hvac_water_level (уровень воды в баке в литрах), hvac_humidity_set (целевая влажность воздуха) и hvac_air_flow_power (скорость работы вентилятора).
{
"allowed_values": {
"hvac_water_level": {
"type": "FLOAT",
"float_values": {
"min": 0.5,
"max": 5,
}
},
"hvac_humidity_set": {
"type": "INTEGER",
"integer_values": {
"min": "35",
"max": "85",
"step": "5"
}
},
"hvac_air_flow_power": {
"type": "ENUM",
"enum_values": {
"values": [
"auto",
"high",
"low",
"medium"
]
}
}
}
}