fun: ####################Таймеры############################### timer: vent_work: name: Вытяжка в ванной – время работы duration: "00:20:00" vent_cooldown: name: Вытяжка в ванной – время отдыха duration: "01:00:00" ####################Автоматизации############################### automation: - alias: Вытяжка в ванной – умное включение mode: single trigger: - platform: numeric_state entity_id: sensor.datchik_temperatury_i_vlazhnosti_vanna_humidity above: 50 - platform: state entity_id: binary_sensor.datchik_prisutstviia_vannaia_presence to: "on" for: "00:10:00" condition: - condition: state entity_id: timer.vent_cooldown state: "idle" - condition: or conditions: # Лето и влажность > 50 - condition: and conditions: - condition: template value_template: "{{ now().month in [6,7,8] }}" - condition: numeric_state entity_id: sensor.datchik_temperatury_i_vlazhnosti_vanna_humidity above: 50 # Не лето и влажность > 60 - condition: and conditions: - condition: template value_template: "{{ now().month not in [6,7,8] }}" - condition: numeric_state entity_id: sensor.datchik_temperatury_i_vlazhnosti_vanna_humidity above: 60 # Или присутствие - condition: state entity_id: binary_sensor.datchik_prisutstviia_vannaia_presence state: "on" action: - service: switch.turn_on target: entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 - alias: Вытяжка в ванной – старт таймера при включении mode: restart trigger: - platform: state entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 to: "on" action: - service: timer.start target: entity_id: timer.vent_work - alias: Вытяжка в ванной – выключение и cooldown mode: restart trigger: - platform: event event_type: timer.finished event_data: entity_id: timer.vent_work action: - service: switch.turn_off target: entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 - service: timer.start target: entity_id: timer.vent_cooldown - alias: Вытяжка в ванной – периодическая проверка влажности mode: single trigger: # После перезапуска Home Assistant - platform: homeassistant event: start # Периодическая проверка каждые 5 минут - platform: time_pattern minutes: "/5" condition: # Вентиляция сейчас выключена - condition: state entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 state: "off" # Таймер отдыха закончился - condition: state entity_id: timer.vent_cooldown state: "idle" # Влажность выше порога по сезонам - condition: or conditions: # Лето → >50% - condition: and conditions: - condition: template value_template: "{{ now().month in [6,7,8] }}" - condition: numeric_state entity_id: sensor.datchik_temperatury_i_vlazhnosti_vanna_humidity above: 50 # Не лето → >60% - condition: and conditions: - condition: template value_template: "{{ now().month not in [6,7,8] }}" - condition: numeric_state entity_id: sensor.datchik_temperatury_i_vlazhnosti_vanna_humidity above: 60 action: - service: switch.turn_on target: entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 - alias: Вытяжка в ванной – резкий рост влажности mode: restart trigger: - platform: state entity_id: sensor.datchik_temperatury_i_vlazhnosti_vanna_humidity condition: - condition: template value_template: > {% if trigger.from_state is none or trigger.to_state is none %} false {% else %} {% set from_s = trigger.from_state.state %} {% set to_s = trigger.to_state.state %} {% if from_s in ['unknown','unavailable','none',''] or to_s in ['unknown','unavailable','none',''] %} false {% else %} {{ (to_s | float - from_s | float) >= 15 }} {% endif %} {% endif %} action: - choose: # Вытяжка уже работает → +10 минут - conditions: - condition: state entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 state: "on" sequence: - variables: remaining: "{{ state_attr('timer.vent_work','remaining') }}" - service: timer.start target: entity_id: timer.vent_work data: duration: > {% if remaining is none %} 00:10:00 {% else %} {{ (as_timedelta(remaining) + timedelta(minutes=10)) }} {% endif %} # Вытяжка выключена → включить на 20 минут (игнор cooldown) default: - service: switch.turn_on target: entity_id: switch.rele_zerkalo_i_ventiliatsiia_l2 - service: timer.start target: entity_id: timer.vent_work data: duration: "00:20:00"