Custom/Database/Bindings: различия между версиями

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


== Шаблоны ==
== Шаблоны ==
Шаблон может быть простой строкой, а так же может содержать части текста, обернутые двойными фигурными скобками <code><nowiki>{{ ... }}</nowiki></code>, которые будут автоматически заменяется на значение, зависящае от набора элементов шаблона.
Шаблон это простая строка, которая может содержать части текста, обернутые двойными фигурными скобками <code><nowiki>{{ ... }}</nowiki></code>. Эти части теста будут автоматически заменяется на значение, зависящее от набора элементов шаблона.


=== <code>json</code> ===
=== <code>json</code> ===
Этот элемент шаблона применим к случаям, когда устройство публикует свое состояние в виде JSON-объекта, и позволяет получать из этого объекта необходимые параметры. Примеры использования:
Этот элемент шаблона применим к случаям, когда устройство публикует свое состояние в виде JSON-объекта, и позволяет получать из этого объекта необходимые параметры. Примеры использования:


{{#tag:pre|<nowiki>{{ mqtt | test/json/topic | fieldName }}</nowiki>}}
{{#tag:pre|<nowiki>{{ json.pressure }}</nowiki>}}
{{#tag:pre|<nowiki>{{ json.values[2].status }}</nowiki>}}




[[Category:Custom]]
[[Category:Custom]]

Версия от 10:40, 10 февраля 2025

HOMEd > Custom > База данных > Биндинги

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

Биндинги позволяют связывать сторонние MQTT-топики и их данные с устройством HOMEd Custom. Биндинги описываются как JSON-обект, ключами которого являются имена связываемых свойств. Структура описания биндингов выглядит так:

{
  ...
  "bindings":
  {
    "status":
    {
       "inTopic": "switch/status/topic",
       "inPattern": "{{ on if json.switch is true else off }}",
       "outTopic": "switch/command/topic",
       "inPattern": "{\"switch\":{{ true if value is on else false }}}"
    },
    "temperature":
    {
       "inTopic": "temperature/status/topic",
       "inPattern": "{{ json.temperature }}"
    }
  }
  ...
}

Параметры биндингов

inTopic

Топик, в который устройство публикует состояние описываемого свойства. Является обязательным в случае, если отсутствует параметр outTopic.

inPattern

Шаблон для получения состояния описываемого свойства из топика inTopic. В случае отсутствия этого параметра, данные будут использованы без изменений. Подробнее в разделе шаблоны.

outTopic

Топик, который необходимо опубликовать для изменения состояния описываемого свойства. Является обязательным в случае, если отсутствует параметр inTopic.

outPattern

Шаблон для передечи состояния описываемого свойства в топик outTopic. В случае отсутствия этого параметра данные будут опубликованы без изменений. Подробнее в разделе шаблоны.

Шаблоны

Шаблон это простая строка, которая может содержать части текста, обернутые двойными фигурными скобками {{ ... }}. Эти части теста будут автоматически заменяется на значение, зависящее от набора элементов шаблона.

json

Этот элемент шаблона применим к случаям, когда устройство публикует свое состояние в виде JSON-объекта, и позволяет получать из этого объекта необходимые параметры. Примеры использования:

{{ json.pressure }}
{{ json.values[2].status }}