Common/Options: различия между версиями

Материал из HOMEd Wiki
мНет описания правки
Строка 6: Строка 6:


== Опции возможностей (exposes) ==
== Опции возможностей (exposes) ==
Опции для большинства часто-используемых возможностей описаны в файле <code>/usr/share/homed-common/expose.json</code>. Это сделано для того, чтобы не дублировать одни и те же опции для каждогого типового случая описания таких возможностей, как температура, влажность, напряжение и так далее.
Опции для большинства часто-используемых возможностей описаны в файле <code>/usr/share/homed-common/expose.json</code>. Это сделано для того, чтобы не дублировать одни и те же опции для каждогого типового случая описания таких возможностей, как температура, влажность, напряжение, сила тока и так далее.


Опции указанные непосредственно в описании устройств имеют приоритет над опциями из файла <code>expose.json</code> и позволяют переопределять необходимые параметры, например, единицы измерения.
Опции указанные непосредственно в описании устройств имеют приоритет над опциями из файла <code>expose.json</code> и позволяют переопределять необходимые параметры, например, единицы измерения.

Версия от 09:21, 5 сентября 2024

HOMEd > Опции устройств

Общие сведения

Опции устройств это дополнительные настройки, позволяющие управлять поведением устройств и их возможностями. Примеры использования опуий в коде 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.json для возможности pressure. Исходные опции:

{
  "type": "sensor",
  "class": "pressure",
  "state": "measurement",
  "unit": "kPa",
  "round": 1
}

Итоговое описание возможности:

{
  "type": "sensor",
  "class": "pressure",
  "state": "measurement",
  "unit": "mmHg",
  "round": 1
}