# В файле automations.yaml или через UI
# Создайте два таймера:
# - vibration_timer: для отслеживания первых 5 минут вибрации
# - finish_timer: для ожидания 5 минут после прекращения вибрации
# Таймеры можно создать в разделе Таймеры:
timer:
vibration_timer:
duration: '00:05:00'
finish_timer:
duration: '00:05:00'
# Автоматизация для начала отслеживания при первой вибрации
- alias: Start Vibration Monitoring
trigger:
- platform: state
entity_id: binary_sensor.vibration_sensor
to: 'on'
action:
- service: timer.start
data:
entity_id: timer.vibration_timer
- service: input_number.set_value
data:
entity_id: input_number.vibration_count
value: 1
- service: input_boolean.turn_on
target:
entity_id: input_boolean.vibration_active
# Перезапуск счетчика вибраций при каждой вибрации в течение первых 5 минут
- alias: Count Vibration Pulses
trigger:
- platform: state
entity_id: binary_sensor.vibration_sensor
to: 'on'
for: '00:00:01' # короткое время, чтобы поймать каждую вибрацию
condition:
- condition: state
entity_id: input_boolean.vibration_active
state: 'on'
action:
- service: input_number.set_value
data:
entity_id: input_number.vibration_count
value: "{{ (states('input_number.vibration_count') | int) + 1 }}"
# Когда вибрация прекращается, начинаем ждать 5 минут
- alias: On Vibration End
trigger:
- platform: state
entity_id: binary_sensor.vibration_sensor
to: 'off'
for: '00:00:10' # убедимся, что вибрации действительно прекратились
condition:
- condition: state
entity_id: input_boolean.vibration_active
state: 'on'
action:
- service: timer.start
data:
entity_id: timer.finish_timer
# Обработка окончания первых 5 минут
- alias: Check Vibration Pulses after 5 min
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.vibration_timer
condition:
- condition: numeric_state
entity_id: input_number.vibration_count
above: 1 # было более одного вибрационного сигнала за первые 5 минут
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.vibration_active
# далее ждем завершения после остановки вибрации
# Обработка завершения ожидания после прекращения вибрации
- alias: Finalize after 5 min no vibration
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.finish_timer
condition:
- condition: state
entity_id: binary_sensor.vibration_sensor
to: 'off'
action:
- service: notify.your_notification_service
data:
message: "Вещи постираны."
# сбрасываем счетчики и статус
- service: input_number.set_value
data:
entity_id: input_number.vibration_count
value: 0
- service: input_boolean.turn_off
target:
entity_id: input_boolean.vibration_active