м (→property) |
м (→property) |
||
Строка 128: | Строка 128: | ||
Если это поле присутствует и заполнено, сервис будет ждать в сообщении JSON-объект и искать в нем соответствующее свойство. В противном случае в качестве свойства будет использовано само сообщение. | Если это поле присутствует и заполнено, сервис будет ждать в сообщении JSON-объект и искать в нем соответствующее свойство. В противном случае в качестве свойства будет использовано само сообщение. | ||
В качестве имени свойства может быть использована составная строка, например, строка <code class="value">users[2].name</code> получит значение поля <code class="value">name</code> из элемента массива <code class="value">users</code> c индексом <code class="value">2</code>. | В качестве имени свойства может быть использована составная строка, например, строка <code class="value">"users[2].name"</code> получит значение поля <code class="value">"name"</code> из элемента массива <code class="value">"users"</code> c индексом <code class="value">2</code>. | ||
=== <code>...</code> === | === <code>...</code> === |
Текущая версия от 11:58, 8 ноября 2024
Триггер "property"
Этот триггер срабатывает, если значение выбранного свойства изменилось. Примеры описания триггера:
...
"triggers":
[
{
"type": "property",
"endpoint": "zigbee/hallSwitch/2",
"property": "status",
"equals": "on"
},
{
"type": "property",
"endpoint": "zigbee/kitchenHumidity",
"property": "humidity",
"above": 60
},
{
"type": "property",
"endpoint": "zigbee/roomTemperature",
"property": "temperature",
"below": 15
},
{
"type": "property",
"endpoint": "zigbee/roomCurtain",
"property": "position",
"between": [20, 30]
},
{
"type": "property",
"endpoint": "zigbee/bowlerPressure",
"property": "pressure",
"changes": 5
},
{
"type": "property",
"endpoint": "zigbee/outdoorMotion",
"property": "occupancy",
"updates": true
}
]
...
Поля "equals"
, "above"
, "below"
, "between"
, "changes"
и "updates"
не могут использоваться в одном триггере одновременно.
endpoint
Конечная точка, за свойством которой следит триггер, описанная в формате "сервис/устройство"
или "сервис/устройство/N"
, где N
это номер конечной точки для многоканальных устройств.
По сути, значение этого поля идентично части MQTT-топика с данными от устройства после homed/fd/
.
property
Свойство конечной точки, за которым следит триггер. Другими словами - название поля в сообщении с данными от устройства, за значением которого следит триггер.
equals
Триггер сработает, если значение свойства станет равным значению этого поля.
above
Триггер сработает, если числовое значение свойства превысит значение этого поля.
below
Триггер сработает, если числовое значение свойства станет ниже значения этого поля.
between
Триггер сработает, если числовое значение свойства попадет в диапазон, описанный в этом поле.
сhanges
Триггер сработает, если числовое значение свойства изменится на значение этого поля в любую сторону.
updates
Триггер сработает, eсли значение свойства изменилось.
Триггер "mqtt"
Этот триггер срабатывает при получении MQTT-сообщения в заданном топике. Пример описания триггера:
...
"triggers":
[
{
"type": "mqtt",
"topic": "my/custom/sensor",
"equals": true
},
{
"type": "mqtt",
"topic": "another/sensor",
"property": "co2",
"above": 1000
},
{
"type": "mqtt",
"topic": "red/sensor",
"property": "value",
"below": 0.5
},
{
"type": "mqtt",
"topic": "question/of/life/the/universe/and/everything",
"property": "answer",
"between": [41, 43]
},
{
"type": "mqtt",
"topic": "other/sensor",
"changes": 5
},
{
"type": "mqtt",
"topic": "secret/sensor",
"property": "tempetature",
"updates": true
}
]
...
Поля "equals"
, "above"
, "below"
, "between"
, "changes"
и "updates"
не могут использоваться в одном триггере одновременно.
topic
MQTT-топик.
property
Если это поле присутствует и заполнено, сервис будет ждать в сообщении JSON-объект и искать в нем соответствующее свойство. В противном случае в качестве свойства будет использовано само сообщение.
В качестве имени свойства может быть использована составная строка, например, строка "users[2].name"
получит значение поля "name"
из элемента массива "users"
c индексом 2
.
...
Поля "equals"
, "above"
, "below"
, "between"
, "changes"
и "updates"
работают так же, как в триггере "property".
Триггер "telegram"
Этот триггер срабатывает при получении от Telegram-бота сообщения с заданным текстом. Пример описания триггера:
...
"triggers":
[
{
"type": "telegram",
"message": "включи свет на кухне"
},
{
"type": "telegram",
"message": "закрой шторы",
"chats": [123456789, 4815162342]
}
]
...
message
Текст сообщения, вызывающий срабатывание триггера.
chats
Массив идентификаторов чатов, из которых может быть получено сообщение. В случае отсутствия этого поля сообщение будет принято только из чата, идентификатор которого указан в конфигурации.
Триггер "time"
Этот триггер срабатывает ежедневно в назначенное время. Пример описания триггера:
...
"triggers":
[
{
"type": "time",
"time": "08:30"
},
{
"type": "time",
"time": "sunrise"
},
{
"type": "time",
"time": "sunset - 10"
}
]
...
time
Время срабатывания триггера в формате "hh:mm"
. Вместо указания конкретного времени можно использовать ключевые слова sunrise
и sunset
, которые будут инерпретироваться как время рассвета и заката соответственно, а так же можно корректировать эти значения, добавив и или отняв необходимое число минут, например sunrise + 20
(через 20 минут после рассвета).
Триггер "interval"
Этот триггер срабатывает периодически, раз в заданный интервал времени. Отсчет времени ведется от полуночи. Пример описания триггера:
...
"triggers":
[
{
"type": "interval",
"interval": 15
}
]
...
interval
Интервал срабатывания триггера в минутах.
Имена триггеров
Триггерам можно присваивать имена и использовать их в качестве дополнительных условий для действий, а также вставлять эти имена в шаблоны, например:
...
"triggers":
[
{
"type": "time",
"time": "sunset",
"name": "от заката"
},
{
"type": "time",
"time": "sunrise",
"name": "до рассвета"
}
]
...