Общие сведения
После долгих дискуссий было решено, что "способности"
это максимально подходящее по смыслу слово русского языка, которое может заменить слово "exposes"
в контексте описания сервисов HOMEd и других систем умного дома.
Cпособности устройств это абстрактные сущности, на которых основана работа функции Home Assistant MQTT Discovery, работа сервиса HOMEd Cloud, а так же работа веб-интерфейса. Например, способность "temperature"
указывает на наличие датчика темературы, а "light"
описывает осветительный прибор.
Типовые способности
Типовые способности устройств делятся на 6 основных категорий:
- Бинарный сенсорор (binary)
- Сенсор (sensor)
- Переключатель (toggle)
- Диапазон (number)
- Селектор (select)
- Триггер (button)
Категория типовой способности, как и прочие параметры, настраивается при помощи опций.
Бинарный сенсор
Данная способность описывает сенсоры, имеющие всего два состояния (активен/не активен), например, датчик протечки воды или датчик движения. Данная способность не предполагает возможности установки значения.
Пример описания:
{
"type": "binary"
}
Сенсор
Данная способность описывает любые сенсоры, такие, как датчик температуры или силы тока. Показания сенсора могут быть как числовыми, так и строковыми. Данная способность не предполагает возможности установки значения.
Пример описания:
{
"type": "sensor",
"unit": "°C"
}
Дополнительные опции:
"round"
- округление числового значения (количество знаков после запятой)
"unit"
- единица измерения
Переключатель
Данная способность описывает органы управления или настройки устройства, имеющие два состояния (включено/выключено). Данная способность предполагает возможность установки значения.
Пример описания:
{
"type": "toggle"
}
Диапазон
Данная способность описывает органы управления или настройки устройства, имеющие числовой дипазон значений. Данная способность предполагает возможность установки значения.
Пример описания:
{
"type": "number",
"min": 0,
"max": 100,
"unit": "%"
}
Обязательные опции:
"min"
- минимальное возможное значение
"max"
- максимальное возможное значение
Дополнительные опции:
"unit"
- единица измерения
"step"
- минимальный шаг изменения значения
Селектор
Данная способность описывает органы управления или настройки устройства, имеющие несколько строковых значений. Данная способность предполагает возможность установки значения.
Пример описания:
{
"type": "select",
"enum": ["toggle", "momentary", "multifunction"]
}
Или:
{
"type": "select",
"enum": {"0": "off", "1": "on", "2": "toggle", "255": "previous"}
}
Обязательные опции:
"enum"
- массив или объект со значениями (в случае использования массива, в качестве передаваемого устройству значения будет использован индекс элемента в массиве, а в случае использования объкета - ключ элемента)
Триггер
Данная способность описывает сущность, необходимую для вызова какого-либо действия со стороны устройства, например для запуска калибровки или сброса настроек. С точки зрения пользовательского интерфейса это просто кнопка.
Пример описания:
{
"type": "button"
}
Опции Home Assistant
Следующие опции способностей используются для функции Home Assistant MQTT Discovery:
"icon"
- иконка из набора Material Design Icons, применимо ко всем типовым способностям
"class"
- класс устройства, применимо к способностям "binary"
и "sensor"
"state"
- выбор способа ведения статистики, возможные значения - "measurement"
или "total_increasing"
, применимо к способности "sensor"
Специальные способности
Специальные способности устройств делятся на 5 основных категорий:
- Осветительный прибор (light)
- Выключатель (switch)
- Штора (cover)
- Замок (lock)
- Термостат (thermostat)
Эти способности отличаются от типовых тем, что имеют свои уникальные наборы опций. Описание добавлю позже.