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 позволяет пользователям создавать сложные и интеллектуальные сценарии автоматизации, гармонично реагирующие на изменения в системе и внешние события. Это предоставляет пользоват