Automation: Триггеры
Триггер property
Этот триггер срабатывает, если значение выбранного свойства устройства изменилось.
Примеры описания триггера:
...
"triggers":
[
{
"type": "property",
"endpoint": "zigbee/hallSwitch/2",
"property": "status",
"equals": "on"
},
{
"type": "property",
"endpoint": "zigbee/hallSwitch/3",
"property": "status",
"differs": "off"
},
{
"type": "property",
"endpoint": "zigbee/kitchenHumidity",
"property": "humidity",
"above": 60
},
{
"type": "property",
"endpoint": "zigbee/roomTemperature",
"property": "temperature",
"below": 15,
"force": true
},
{
"type": "property",
"endpoint": "zigbee/roomCurtain",
"property": "position",
"between": [20, 30]
},
{
"type": "property",
"endpoint": "zigbee/flowerSensor",
"property": "moisture",
"outside": [40, 80]
},
{
"type": "property",
"endpoint": "zigbee/bowlerPressure",
"property": "pressure",
"changes": 5
},
{
"type": "property",
"endpoint": "zigbee/outdoorMotion",
"property": "occupancy",
"updates": true
}
]
...
Поля equals, differs, above, below, between, outside, changes и updates не могут использоваться в одном триггере одновременно.
endpoint
Конечная точка, за свойством которой следит триггер, описанная в формате service/device или service/device/N, где N это номер конечной точки для многоканальных устройств.
По сути, значение этого поля является частью топика fd, относящейся к конкретному устройству.
property
Свойство конечной точки, за которым следит триггер. Другими словами - название поля в сообщении с данными от устройства, за значением которого следит триггер.
equals
Триггер сработает, если значение свойства станет равным значению этого поля.
differs
Триггер сработает, если значение свойства перестанет быть равным значению этого поля.
above
Триггер сработает, если числовое значение свойства превысит значение этого поля.
below
Триггер сработает, если числовое значение свойства станет ниже значения этого поля.
between
Триггер сработает, если числовое значение свойства попадет в диапазон, описанный в этом поле.
outside
Триггер сработает, если числовое значение свойства выйдет за пределы диапазона, описанного в этом поле.
сhanges
Триггер сработает, если числовое значение свойства изменится на значение этого поля в любую сторону. Имеется в виду разовое изменение значения.
updates
Триггер сработает, eсли значение свойства изменилось.
force
Если это поле имеет значение true, триггер будет игнорировать переход значения через порог и срабатывать в каждом случае, когда новое значение соответствует заданным критериям. Опция работает для операторов above, below, between и outside.
Триггер mqtt
Этот триггер срабатывает при получении MQTT-сообщения в заданном топике.
Примеры описания триггера:
...
"triggers":
[
{
"type": "mqtt",
"topic": "my/custom/sensor",
"equals": true
},
{
"type": "mqtt",
"topic": "my/other/sensor",
"differs": false
},
{
"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/question/topic",
"outside": [1000, 2000]
},
{
"type": "mqtt",
"topic": "other/sensor",
"changes": 20
},
{
"type": "mqtt",
"topic": "secret/sensor",
"property": "tempetature",
"updates": true
}
]
...
Warning
Поля equals, differs, above, below, between, outside, changes и updates не могут использоваться в одном триггере одновременно.
topic
MQTT-топик.
property
Если это поле присутствует и заполнено, сервис будет ждать в сообщении JSON-объект и искать в нем соответствующее свойство. В противном случае в качестве свойства будет использовано само сообщение.
В качестве имени свойства может быть использована составная строка, например, строка users[2].name получит значение поля name из элемента массива users c индексом 2.
...
Поля equals, differs, above, below, between, outside, changes, updates и force работают так же, как в триггере 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
},
{
"type": "interval",
"interval": 12,
"offset": 5
}
]
...
interval
Интервал срабатывания триггера в минутах.
offset
Смещение точки отсчета относительно полуночи в минутах.
Триггер startup
Этот триггер срабатывает один раз, при каждом запуске сервиса, сразу после того, как сервис подписывается на пользовательские MQTT-топики.
Пример описания триггера:
...
"triggers":
[
{
"type": "startup",
}
]
...
Имена триггеров
Триггерам можно присваивать произвольные имена и использовать эти имена в качестве дополнительных условий для действий, а также вставлять их в шаблоны.
Примеры использования имен триггеров:
...
"triggers":
[
{
"type": "time",
"time": "sunset",
"name": "от заката"
},
{
"type": "time",
"time": "sunrise",
"name": "до рассвета"
}
]
...