Cпособности устройств
После долгих дискуссий было решено, что способности это максимально подходящее по смыслу слово русского языка, которое может заменить слово exposes в контексте описания сервисов HOMEd и других систем умного дома.
Cпособности устройств это абстрактные сущности, на которых основана работа веб-интерфейса, работа сервиса HOMEd Cloud, а также работа функции Home Assistant MQTT Discovery. Например, способность temperature указывает на наличие датчика температуры, а light описывает осветительный прибор.
Типовые способности
Типовые способности устройств могут иметь произвольные названия и делятся на 6 категорий:
- Бинарный сенсорор:
binary - Сенсор:
sensor - Переключатель:
toggle - Диапазон:
number - Селектор:
select - Триггер:
button
Каждая типовая способность добавляет одноименное свойство. Категория типовой способности, как и прочие параметры, настраивается при помощи опций.
Типовым способностям можно давать любые названия, однако есть небольшие ограничения:
Название не должно содержать пробелов, а символ нижнего подчеркивания _ желательно использовать только совместно с целым числом, для разделения нескольких одинаковых способностей, например, temperature_1 и temperature_2.
В случае, когда название способности состоит из нескольких слов, рекомендуется использовать формат camelCase, например, waterLeak или childLock.
Бинарный сенсор: binary
Данная способность описывает сенсоры, имеющие всего два состояния (активен/не активен), например, датчик протечки воды или датчик движения. Данная способность не предполагает возможности установки значения. Пример описания:
{
...
"exposes": ["myBinary"],
"options":
{
"myBinary": {"type": "binary"}
}
...
}
Сенсор: sensor
Данная способность описывает любые сенсоры, такие, как датчик температуры или силы тока. Показания сенсора могут быть как числовыми, так и строковыми. Данная способность не предполагает возможности установки значения. Пример описания:
{
...
"exposes": ["mySensor"],
"options":
{
"mySensor": {"type": "sensor", "unit": "°C", "round": 2}
}
...
}
Необязательные параметры:
| Параметр | Описание |
|---|---|
unit |
единица измерения |
round |
округление числового значения (количество знаков после запятой) |
Переключатель: toggle
Данная способность описывает органы управления или настройки устройства, имеющие два состояния (включено/выключено). Данная способность предполагает возможность установки значения. Пример описания:
{
...
"exposes": ["myToggle"],
"options":
{
"myToggle": {"type": "toggle"}
}
...
}
Диапазон: number
Данная способность описывает органы управления или настройки устройства, имеющие числовой диапазон значений. Данная способность предполагает возможность установки значения. Пример описания:
{
...
"exposes": ["myNumber"],
"options":
{
"myNumber": {"type": "number", "min": 0, "max": 100, "step": 0.1, "unit": "%"}
}
...
}
Обязательные параметры:
| Параметр | Описание |
|---|---|
min |
минимальное возможное значение |
max |
максимальное возможное значение |
Необязательные параметры:
| Параметр | Описание |
|---|---|
step |
минимальный шаг изменения значения |
unit |
единица измерения |
collapse |
принудительное отображение поля для ввода значения, вместо ползунка |
Селектор: select
Данная способность описывает органы управления или настройки устройства, имеющие несколько строковых значений. Данная способность предполагает возможность установки значения. Пример описания:
{
...
"exposes": ["mySelect"],
"options":
{
"mySelect": {"type": "select", "enum": ["toggle", "momentary", "multifunction"]}
}
...
}
{
...
"exposes": ["mySelect"],
"options":
{
"mySelect": {"type": "select", "enum": {"0": "off", "1": "on", "2": "toggle", "255": "previous"}}
}
...
}
Обязательные параметры:
| Параметр | Описание |
|---|---|
enum |
массив или объект со значениями |
Необязательные параметры:
| Параметр | Описание |
|---|---|
collapse |
принудительное отображение выпадающего меню, вместо списка |
Триггер: button
Данная способность описывает сущность, необходимую для вызова какого-либо действия со стороны устройства, например для запуска калибровки или сброса настроек. С точки зрения пользовательского интерфейса это просто кнопка. Пример описания:
{
...
"exposes": ["myButton"],
"options":
{
"myButton": {"type": "button"}
}
...
}
Параметры для Home Assistant
Следующие параметры типовых способностей используются для функции Home Assistant MQTT Discovery:
| Параметр | Описание |
|---|---|
icon |
иконка из набора Material Design Icons, применимо ко всем типовым способностям |
class |
класс устройства, применимо к способностям binary и sensor |
state |
способ ведения статистики для способности sensor, возможные значения: measurement, total_increasing |
Специальные способности
Специальные способности устройств имеют фиксированные имена и делятся на 5 категорий:
- Выключатель:
switch - Замок:
lock - Осветительный прибор:
light - Штора:
cover - Термостат:
thermostat
Эти способности отличаются от типовых тем, что имеют фиксированные имена свои уникальные наборы опций.
Выключатель: switch
Данная способность описывает возможность устройства быть включенным или выключенным, например, если это реле или выключатель, и добавляет специальное свойство status. Пример описания:
{
...
"exposes": ["switch"],
"options":
{
"switch": "outlet"
}
...
}
Опции для Home Assistant:
| Опция | Описание |
|---|---|
switch |
тип выключателя, возможные значения: outlet |
Замок: lock
Данная способность описывает механизм, который может быть открыт или закрыт, например, замок или кран, а также, как и способность switch, добавляет свойство status. Пример описания:
{
...
"exposes": ["lock"],
"options":
{
"lock": "valve"
}
...
}
Опции для Home Assistant:
| Опция | Описание |
|---|---|
lock |
тип замка, возможные значения: valve |
Осветительный прибор: light
Данная способность описывает любые осветительные приборы, такие как лампочки или контроллеры светодиодных лент. По умолчанию данная способность добавляет только свойство status, так же, как это делают способности switch и lock, остальные свойства добавляются при помощи одноименной опции. Пример описания:
{
...
"exposes": ["light"],
"options":
{
"light": ["level", "colorTemperature"],
"colorTemperature": {"min": 200, "max": 400}
}
...
}
Необязательные опции:
| Опция | Описание |
|---|---|
light |
набор дополнительных свойств, возможные значения: level, color, colorTemperature, colorMode |
colorTemperature |
минимальное и максимальное значения для свойства colorTemperature |
Штора: cover
Данная способность описывает шторы, рольставни или жалюзи, и добавляет специальные свойства cover и position. Пример описания:
{
...
"exposes": ["cover"],
"options":
{
"invertCover": true,
"cover": "blind"
}
...
}
Необязательные опции:
| Опция | Описание |
|---|---|
invertCover |
инверсия значения положения шторы |
Опции для Home Assistant:
| Опция | Описание |
|---|---|
cover |
тип шторы, возможные значения: blind |
Термостат: thermostat
Данная способность описывает устройства для контроля и управления климатом, и добавляет свойство temperature, а также дополнительные свойства, набор которых зависит от опций. Пример описания:
{
...
"exposes": ["thermostat"],
"options":
{
"systemMode": {"enum": ["off", "heat"]},
"operationMode": {"enum": ["manual", "comfort"]},
"targetTemperature": {"min": 10, "max": 40},
"runningStatus": true
}
...
}
Необязательные опции:
| Опция | Описание |
|---|---|
systemMode |
основные режимов работы, добавляет одноименное свойство, возможные значения: off, auto, cool, heat, dry, fan |
operationMode |
дополнительные режимов работы, добавляет одноименное свойство |
targetTemperature |
минимальное и максимальное значения установки целевой температуры, добавляет одноименное свойство |
runningStatus |
индикатор текущего состояния (работа/простой), добавляет свойство running |
Отображаемое имя
Любой типовой способности, а также специальным способностям switch и lock можно задать произвольное имя, отличающееся от названия способности. Для этого нужно использовать параметр title, например:
{
...
"exposes": ["mySpecialExpose"],
"options":
{
"mySpecialExpose": {"type": "sensor", "title": "Моя суперспособность"}
}
...
}
Параметр title не применим к специальным способностям light, cover и thermostat.