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

Материал из HOMEd Wiki
Строка 6: Строка 6:


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





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

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

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

Опции устройств это дополнительные настройки, позволяющие управлять поведением устройств и их возможностями. Примеры использования опуий в коде HOMEd можно посмотреть здесь.

Опции возможностей (exposes)

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



  1. опции для каждого expose это вложенный json-объект, имя которого должно полностью совпадать с именем expose:


exposes: pressure, temperature, bla_1235_xfff_fuck

options: {

 "pressure": {"unit": "mmhg"}},
 "bla_1235_xfff_fuck": {"type": "senosor", "other": "option"}

}


  1. опции для большинства часто-используемых expose собраны в кучу и хранятся в файле /usr/share/homed-common/expose.json (https://github.com/u236/homed-service-common/blob/master/deploy/data/usr/share/homed-common/expose.json), это нужно для того, чтобы не писать одни и те же опции для каждого градусника, датчики протечки и прочих типовых случаев


  1. опции указанные в описании устройств имеют приоритет над опциями из файла 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}


  1. howto