Перейти к содержанию

Automation: Действия

Действие property

Это действие управляет выбранным свойством, то есть отправляет команду устройству.

Примеры описания действия:

...
"actions":
[
  {
    "type": "property",
    "endpoint": "zigbee/kitchenLight",
    "property": "level",
    "increase": 10
  },
  {
    "type": "property",
    "endpoint": "zigbee/roomCurtain",
    "property": "position",
    "decrease": 25
  },
  {
    "type": "property",
    "endpoint": "zigbee/hallLight",
    "property": "status",
    "value": "off"
  }
]
...

Поля increase, decrease, value не могут использоваться в одном действии одновременно.

endpoint

Конечная точка, которой управляет действие. Описывается в формате service/device или service/device/N, где N это номер конечной точки для многоканальных устройств.

По сути, значение этого поля является частью топика td, относящейся к конкретному устройству.

property

Свойство конечной точки, которым управляет действие. Другими словами - название поля в сообщении с командой.

increase

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

decrease

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

value

Конкретное значение свойства, передаваемое в команде. Может содержать шаблоны.

Действие mqtt

Это действие отправляет сообщение в заданный MQTT-топик.

Примеры описания действия:

...
"actions":
[
  {
    "type": "mqtt",
    "topic": "my/action/topic",
    "message": "hello world"
  },
  {
    "type": "mqtt",
    "topic": "other/topic",
    "message": "retained message",
    "retain": true
  }
]
...

topic

MQTT-топик.

message

Текст отправляемого сообщения. Может содержать шаблоны.

retain

Отправка сообщения с флагом retain.

Действие state

Это действие позволяет устанавливать или удалять состояния.

Примеры описания действий:

...
"actions":
[
  {
    "type": "state",
    "name": "myFavoriteState",
    "value": true
  },
  {
    "type": "state",
    "name": "otherState",
    "value": "hello there"
  },
  {
    "type": "state",
    "name": "uselessState"
  }
]
...

name

Название состояния.

value

Значение состояния, устанавливаемое действием. Может содержать шаблоны.

Если это поле отсутствует или равно null, состояние будет удалено.

Действие telegram

Это действие отправляет текстовое сообщение с помощью Telegram-бота.

Примеры описания действия:

...
"actions":
[
  {
    "type": "telegram",
    "message": "hello kitty",
    "file": "/opt/images/kitty.png"
  },
  {
    "type": "telegram",
    "message": "свет в гараже выключен",
    "silent": true
  },
  {
    "type": "telegram",
    "message": "входная дверь открыта!",
    "chats": [123456789, 4815162342]
  }
]
...

message

Текст отправляемого сообщения. Может содержать шаблоны.

file

Файл, который будет отправлен вместе с сообщением. Возможные значения:

  • Локальный путь к файлу (например, /tmp/image.jpg)
  • URL (например, https://example.com/image.jpg)
  • ID файла в Telegram (для повторной отправки ранее загруженного файла)

По умолчанию файл отправляется как документ. Чтобы указать конкретный тип мультимедиа-сообщения Telegram, можно добавить после пути или URL через символ | один из поддерживаемых суффиксов: photo, video, audio, animation.

Например:

/tmp/image.jpg | photo

silent

Отправка сообщения с уведомлением без звука.

chats

Массив идентификаторов чатов, в которые будет отправлено сообщение. В случае отсутствия этого поля, сообщение будет отправлено в чат, идентификатор которого указан в конфигурации.

Действие shell

Это действие запускает заданную shell-команду.

Пример описания действия:

...
"actions":
[
  {
    "type": "shell",
    "command": "sh /home/user/script.sh"
  }
]
...

command

Shell-команда, которая будет запущена. Может содержать шаблоны.

Команда может быть полноценным shell-скриптом, начинающимся с заголовка #!, в этом случае также допустимо использование шаблонов, за исключением математических выражений.

Действие condition

Это действие является контейнером для других действий, которые будут выполнены при соблюдении или несоблюдении заданных условий.

Пример описания действия:

...
"actions":
[
  {
    "type": "condition",
    "conditions":
    [
       {
         "type": "date",
         ...
       },
       {
         "type": "time",
         ...
       }
    ],
    "then":
    [
       {
         "type": "property",
         ...
       }
    ],
    "else":
    [
       {
         "type": "telegram",
         ...
       }
    ]
  }
]
...

conditions

Массив условий.

then

Массив действий, которые будут выполнены, если условия соблюдены.

else

Массив действий, которые будут выполнены, если условия не соблюдены.

Действие delay

Это действие добавляет задержку перед выполнением следующего по списку действия.

Пример описания действия:

...
"actions":
[
  {
    "type": "delay",
    "delay": 10
  }
]
...

delay

Время задержки в секундах.

Действие exit

Это действие прерывает выполнение автоматизации.

Пример описания действия:

...
"actions":
[
  {
    "type": "exit"
  }
]
...

Дополнительные условия

Условия для выполнения действий могут определяться не только специальным действием condition, а также тем, какой конкретно триггер вызвал срабатывание автоматизации, при условии, что для триггеров заданы имена.

В этом случае нужные действия будут выполнены только в случае срабатывании соответствующего им триггера, например:

...
"actions":
[
  {
    "type": "property",
    "triggerName": "a",
    ...
  },
  {
    "type": "telegram",
    "triggerName": "b",
    ...
  }
]
...