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

Материал из HOMEd Wiki
(Новая страница: «{{DISPLAYTITLE:Automation: Шаблоны}} {{Breadcrumbs|Automation > Шаблоны}} == Шаблоны == Шаблоны позволяют использовать свойства устройств, данные из MQTT-топиков, состояния, метки времени и имена другие данные в некоторых условиях и действиях...»)
 
мНет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 2: Строка 2:
{{Breadcrumbs|[[Automation]] > Шаблоны}}
{{Breadcrumbs|[[Automation]] > Шаблоны}}


== Шаблоны ==
== Общие сведения ==
Шаблоны позволяют использовать свойства устройств, данные из MQTT-топиков, состояния, метки времени и имена другие данные в некоторых [[Automation/Database/Conditions|условиях]] и [[Automation/Database/Actions|действиях]] автоматизаций. Примеры шаблонов приведены ниже.
Шаблоны позволяют использовать свойства устройств, данные из MQTT-топиков, состояния и другие данные в некоторых [[Automation/Database/Conditions|условиях]] и [[Automation/Database/Actions|действиях]] автоматизаций. Примеры шаблонов приведены ниже.


Показания датчика температуры:
Показания датчика температуры:
Строка 29: Строка 29:
{{#tag:pre|<nowiki>{{ triggerName }}</nowiki>}}
{{#tag:pre|<nowiki>{{ triggerName }}</nowiki>}}


Кроме того, шаблоны могут содержать математические выражения. Каждое выражение может содержать любые математические операции (сложение, вычитание, умножение, деление, возведение в степень), включая операции в скобках, некоторые функции, а так же любые другие шаблоны. Если выражение некорретно, результатом вычислений будет <code class="value">nan</code>. Список досутпных функций можно посмотреть [https://github.com/u236/homed-service-automation/blob/570f97ad640606624f24eff20606cf71ca2324ad/expression.cpp#L86-L107 здесь].
== Математические выражения ==
Помимо прочего, шаблоны могут содержать математические выражения. Каждое выражение может содержать любые математические операции (сложение, вычитание, умножение, деление, возведение в степень), включая операции в скобках, некоторые функции, а так же любые другие шаблоны. Если выражение некорретно, результатом вычислений будет <code class="value">nan</code>. Список досутпных функций можно посмотреть [https://github.com/u236/homed-service-automation/blob/570f97ad640606624f24eff20606cf71ca2324ad/expression.cpp#L86-L107 здесь].


Примеры:
Примеры:
Строка 38: Строка 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, топик должен быть константой, иначе сервис не сможет на него подписаться.