Строка 8: | Строка 8: | ||
Опции для большинства часто-используемых возможностей описаны в файле <code>/usr/share/homed-common/expose.json</code>. Это сделано для того, чтобы не дублировать одни и те же опции для каждогого типового случая описания таких возможностей, как температура, влажность, напряжение и так далее. | Опции для большинства часто-используемых возможностей описаны в файле <code>/usr/share/homed-common/expose.json</code>. Это сделано для того, чтобы не дублировать одни и те же опции для каждогого типового случая описания таких возможностей, как температура, влажность, напряжение и так далее. | ||
Опции указанные непосредственно в описании устройств имеют приоритет над опциями из файла <code>expose.json</code> и позволяют переопределять необходимые параметры, например, единицы измерения. | |||
Опции для каждогой возможности это вложенный json-объект, имя которого должно полностью совпадать с именем возможности (expose), например: | |||
<syntaxhighlight lang="json"> | |||
{ | { | ||
"pressure": {"unit": " | ... | ||
"exposes": ["pressure", "temperature", "myCustomExpose"], | |||
"options": | |||
{ | |||
"pressure": {"unit": "mmHg"}, | |||
"myCustomExpose": {"type": "sensor", "other": "option"} | |||
} | |||
... | |||
} | } | ||
</syntaxhighlight> | |||
Версия от 09:12, 5 сентября 2024
Общие сведения
Опции устройств это дополнительные настройки, позволяющие управлять поведением устройств и их возможностями. Примеры использования опуий в коде HOMEd можно посмотреть здесь.
Опции возможностей (exposes)
Опции для большинства часто-используемых возможностей описаны в файле /usr/share/homed-common/expose.json
. Это сделано для того, чтобы не дублировать одни и те же опции для каждогого типового случая описания таких возможностей, как температура, влажность, напряжение и так далее.
Опции указанные непосредственно в описании устройств имеют приоритет над опциями из файла expose.json
и позволяют переопределять необходимые параметры, например, единицы измерения.
Опции для каждогой возможности это вложенный json-объект, имя которого должно полностью совпадать с именем возможности (expose), например:
{
...
"exposes": ["pressure", "temperature", "myCustomExpose"],
"options":
{
"pressure": {"unit": "mmHg"},
"myCustomExpose": {"type": "sensor", "other": "option"}
}
...
}
- опции для большинства часто-используемых expose собраны в кучу и хранятся в файле /usr/share/homed-common/expose.json (https://github.com/u236/homed-service-common/blob/master/deploy/data/usr/share/homed-common/expose.json), это нужно для того, чтобы не писать одни и те же опции для каждого градусника, датчики протечки и прочих типовых случаев
- опции указанные в описании устройств имеют приоритет над опциями из файла expose.json, например, предположим, что у нас есть кастом-устройство с expose температуры и нам нужно заменить единицу измерения:
исходное описание expose температуры: https://github.com/u236/homed-service-common/blob/12d4c31929a808c687df13b5bf9c8a01653612bc/deploy/data/usr/share/homed-common/expose.json#L51
exposes нашего устройства: temperature
options нашего устройства: {"temperature": {"unit": "BLA"}}
итоговое описание устройства, которое будет использовано в expose-топиках и discovery-топиках: {"type": "sensor", "class": "temperature", "state": "measurement", "unit": "BLA", "round": 1}
- howto