github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/content/ru/docs/dashboard/automation/triggers.md (about)

     1  
     2  ---
     3  title: "Triggers"
     4  linkTitle: "Triggers"
     5  date: 2021-10-20
     6  description: >
     7    
     8  ---
     9  
    10  {{< figure src="/smart-home/triggers_window1.png" >}}
    11  
    12  Триггеры в системе Smart Home представляют собой ключевые элементы, которые запускают выполнение Задач в ответ на определенные события или условия. В настоящее время система поддерживает три основных типа триггеров, каждый из которых обладает своими преимуществами и обеспечивает гибкость в настройке автоматизации.
    13  
    14  #### 1. **Триггер "State Change" (Изменение Состояния):**
    15  
    16  - **Описание:**
    17      - Активируется при изменении состояния определенного устройства или группы устройств в системе Smart Home.
    18  
    19  - **Преимущества:**
    20      - **Реакция на Изменения:** Идеально подходит для сценариев, где требуется реагировать на конкретные изменения, например, включение/выключение света, открытие двери и т.д.
    21      - **Гибкость Настройки:** Позволяет выбирать конкретные устройства и параметры состояний для триггерирования.
    22  
    23  #### 2. **Триггер "System" (Системные События):**
    24  
    25  - **Описание:**
    26      - Активируется при возникновении системных событий, таких как запуск/остановка системы, подключение/отключение устройств и другие события системной шины.
    27  
    28  - **Преимущества:**
    29      - **Мониторинг Системы:** Используется для мониторинга общего состояния системы и детектирования событий, связанных с функционированием умного дома.
    30      - **Интеграция с Внешними Системами:** Позволяет взаимодействовать с системами, работающими в рамках системной шины.
    31  
    32  #### 3. **Триггер "Time (Cron)" (Временной Триггер):**
    33  
    34  - **Описание:**
    35      - Активируется с заданным временным интервалом в соответствии с расписанием, заданным в формате cron.
    36  
    37  - **Преимущества:**
    38      - **Регулярное Выполнение:** Идеально подходит для задач, которые должны выполняться регулярно по расписанию.
    39      - **Энергосбережение:** Может использоваться для оптимизации энергопотребления, например, выключения света или отопления в ночное время.
    40  
    41  #### Примеры Использования Триггеров
    42  
    43  1. **Триггер "State Change":**
    44      - **Сценарий:**
    45          - Включить кондиционер при открытии окна в спальне.
    46      - **Настройка Триггера:**
    47          - Устройство: Окно в спальне.
    48          - Состояние: Открыто.
    49  
    50  2. **Триггер "System":**
    51      - **Сценарий:**
    52          - Отправить уведомление при подключении нового устройства к системе.
    53      - **Настройка Триггера:**
    54          - Системное событие: Подключение нового устройства.
    55  
    56  3. **Триггер "Time (Cron)":**
    57      - **Сценарий:**
    58          - Выключить свет во всех комнатах после полуночи.
    59      - **Настройка Триггера:**
    60          - Временной интервал: "0 0 * * *", что соответствует каждой полуночи.
    61  
    62  #### Примеры на Coffescript
    63  
    64  1. `TriggerAlexa`:
    65  ```coffeescript
    66  automationTriggerAlexa = (msg) ->
    67    p = msg.payload
    68    Done p
    69    return false
    70  ```
    71  Обработчик `automationTriggerAlexa` вызывается в ответ на триггер от Amazon Alexa. Он принимает объект сообщения `msg`
    72  и может выполнять определенные действия, связанные с этим триггером.
    73  
    74  2. `TriggerStateChanged`:
    75  ```coffeescript
    76  automationTriggerStateChanged = (msg) ->
    77    p = msg.payload
    78    Done p.new_state.state.name
    79    return false
    80  ```
    81  Обработчик `automationTriggerStateChanged` вызывается при изменении состояния устройства. Он принимает объект сообщения
    82  `msg` и может выполнить определенные действия на основе нового состояния устройства.
    83  
    84  3. `TriggerSystem`:
    85  ```coffeescript
    86  automationTriggerSystem = (msg) ->
    87    p = msg.payload
    88    Done p.event
    89    return false
    90  ```
    91  Обработчик `automationTriggerSystem` вызывается в ответ на события системы. Он принимает объект сообщения `msg` и может
    92  выполнить определенные действия, связанные с этим событием.
    93  
    94  4. `TriggerTime`:
    95  ```coffeescript
    96  automationTriggerTime = (msg) ->
    97    p = msg.payload
    98    Done p
    99    return false
   100  ```
   101  Обработчик `automationTriggerTime` вызывается по истечении определенного времени. Он принимает объект сообщения `msg` и
   102  может выполнить определенные действия, связанные с этим временем.
   103  
   104  Каждый обработчик триггера может выполнять необходимую логику в ответ на соответствующий триггер, а затем возвращать
   105  значение `false`, чтобы указать, что дальнейшая обработка не требуется.
   106  
   107  Пример реализации:
   108  
   109  ```coffeescript
   110  automationTriggerStateChanged = (msg)->
   111      p = msg.payload
   112      if !p.new_state || !p.new_state.state
   113          return false
   114      return msg.new_state.state.name == 'DOUBLE_CLICK'
   115  ```
   116  
   117  #### Заключение
   118  
   119  Использование различных типов триггеров в системе Smart Home позволяет пользователям создавать сложные и интеллектуальные сценарии автоматизации, гармонично реагирующие на изменения в системе и внешние события. Это предоставляет пользоват