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

Материал из HOMEd Wiki
мНет описания правки
мНет описания правки
Строка 39: Строка 39:
</nowiki>}}
</nowiki>}}


В одном действии может быть использовано любое количество шаблонов и математических операций.  
== Вложенные шаблоны ==
В каждом условии или действии может быть использовано любое количество шаблонов и математических операций. Кроме того, шаблоны могут быть вложены друг в друга, например:
{{#tag:pre|<nowiki>{{ property | zigbee/myFavoriteSensor | {{ triggerName }} }}</nowiki>}}
 
Единственным исключением для вложенных шаблонов является значение топика для шаблона <code class="value>mqtt</code>, топик ''должен'' быть константой, иначе сервис не сможет на него подписаться.


[[Category:Automation]]
[[Category:Automation]]

Версия от 11:37, 15 октября 2024

HOMEd > Automation > Шаблоны

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

Шаблоны позволяют использовать свойства устройств, данные из MQTT-топиков, состояния и другие данные в некоторых условиях и действиях автоматизаций. Примеры шаблонов приведены ниже.

Показания датчика температуры:

{{ property | zigbee/kitchenThermometer | temperature }}

MQTT-сообщение целиком:

{{ mqtt | test/topic }}

Поле fieldName из MQTT-сообщения, содержащего JSON:

{{ mqtt | test/json/topic | fieldName }}

Содержимое файла /home/user/file:

{{ file | /home/user/file }}

Значение состояния myState:

{{ state | myState }}

Текущеая метка времени (unix time):

{{ timestamp }}

Текущее время и дата в заданном формате:

{{ timestamp | dd.MM.yy hh:mm }}

Имя триггера, вызвавшего срабатывание автоматизации:

{{ triggerName }}

Математические выражения

Помимо прочего, шаблоны могут содержать математические выражения. Каждое выражение может содержать любые математические операции (сложение, вычитание, умножение, деление, возведение в степень), включая операции в скобках, некоторые функции, а так же любые другие шаблоны. Если выражение некорретно, результатом вычислений будет nan. Список досутпных функций можно посмотреть здесь.

Примеры:

[[ sqrt(2 ^ 2) ]]
[[ {{ state | counter }} + 1 ]]
[[ {{ property | zigbee/sensor | temperature }} * 0.99 ]]

Вложенные шаблоны

В каждом условии или действии может быть использовано любое количество шаблонов и математических операций. Кроме того, шаблоны могут быть вложены друг в друга, например:

{{ property | zigbee/myFavoriteSensor | {{ triggerName }} }}

Единственным исключением для вложенных шаблонов является значение топика для шаблона mqtt, топик должен быть константой, иначе сервис не сможет на него подписаться.