Найти тему
Smart Home 53

Автоматизация отопления с помощью умного дома Home Assistant

Я уже писал в предыдущих статьях о том, как сделал термостат для газового котла и о том, как реализовал выбор датчика, по которому контролирую температуру в квартире.

-2

Теперь речь зайдет о сценариях управления этим термостатом для настройки комфортного климата.

Первая автоматизация переключает отопление в режим “Нет дома”, если жильцы покидают жилище. Выглядит это так:

# Переключить котёл в режим "Нет дома" (19 градусов) если никого нет дома
- alias: "Turn off heat when nobody at home"
  initial_state: true
  trigger:
    - platform: state
      entity_id: group.trackdevice
      to: 'not_home'
      for:
        minutes: 3
  condition:
    - condition: state
      entity_id: climate.gasboiler
      state: 'heat'
    - condition: template
      value_template: "{{is_state_attr ('climate.gasboiler', 'preset_mode', 'none')}}"
  action:
    - service: climate.set_preset_mode
      data:
        entity_id: climate.gasboiler
        preset_mode: 'away'
    - service: automation.trigger # Отправить уведомление
      entity_id: automation.notify_turn_off_heat_when_nobody_at_home

Также включение режима “Не дома” я назначил на “мастер-кнопку” в коридоре, которой выключается все освещение в квартире перед выходом из нее.

# Выключение отопления правой клавишей выключателя в коридоре
- alias: "Turn_off_heat_by_aqara_wall_switch"
  initial_state: true
  trigger:
    - platform: state
      entity_id: sensor.0x00158d0003433cdf_click
      to: 'right'
  condition:
    - condition: state
      entity_id: climate.gasboiler
      state: 'heat'
    - condition: template
      value_template: "{{is_state_attr ('climate.gasboiler', 'preset_mode', 'none')}}"
  action:
    - service: climate.set_preset_mode
      data:
        entity_id: climate.gasboiler
        preset_mode: 'away'

По возвращении домой котёл необходимо переключить в обычный режим отопления. Это делается следующей автоматизацией:

# Переключить котёл в обычный режим, если вернулись домой
- alias: "Turn on heat when anybody at home"
  initial_state: true
  trigger:
    - platform: state
      entity_id: group.trackdevice
      from: 'not_home'
      to: 'home'
  condition:
    - condition: state
      entity_id: climate.gasboiler
      state: 'heat'
  action:
    - service: climate.set_preset_mode
      data:
        entity_id: climate.gasboiler
        preset_mode: 'none'

Через некоторое время я заметил еще один кейс, который не предусматривался умным домом. Если уйти из дома, выключить свет с отоплением, а в подъезде в этот момент возвращается жена, то технически никакого “Возвращения домой” может не произойти, так как информация о том, что я покинул дом могла еще не поступить на сервер, а жена уже пришла. Таким образом отопление не вернется в обычный режим работы. Для того, чтобы такого не произошло я добавил следующую автоматизацию: 

# Переключить котёл в обычный режим если ненадолго уходили из дома
- alias: Turn on heat when I came home
  initial_state: true
  trigger:
    - platform: state
      entity_id: binary_sensor.0x00158d0004184c6c_contact
      to: 'on'
      from: 'off'
  condition:
    - condition: state
      entity_id: binary_sensor.0x00158d0003f1ccc1_occupancy
      state: 'off'
    - condition: state
      entity_id: group.trackdevice
      state: 'home'
    - condition: template
      value_template: "{{is_state_attr ('climate.gasboiler', 'preset_mode', 'away')}}"
  action:
    - service: climate.set_preset_mode
      data:
        entity_id: climate.gasboiler
        preset_mode: 'none'

При открытии двери снаружи (так как в коридоре нет движения) отопление перейдёт в нормальный температурный режим.

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

# Включение ночного режима отопления
- alias: "Turn on night mode heat"
  initial_state: true
  trigger:
    platform: time
    at: "00:00:00"
  condition:
    - condition: state
      entity_id: climate.gasboiler
      state: 'heat'
    - condition: template
      value_template: "{{is_state_attr ('climate.gasboiler', 'prese_mode', 'none')}}"
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.gasboiler
        temperature: 23

А также возвращаем температуру назад утром, в разное время, в зависимости от того будни это или выходные.

        

# Выключение ночного режима отопления
- alias: "Turn off night mode heat"
  initial_state: true
  trigger:
    - platform: time
      at: "06:00:00"
    - platform: time
      at: "09:00:00"
  condition:
    - condition: state
      entity_id: climate.gasboiler
      state: 'heat'
    - condition: template
      value_template: "{{is_state_attr ('climate.gasboiler', 'preset_mode', 'none')}}"
  action:
    - choose:
      - conditions:
        - condition: state
          entity_id: binary_sensor.workday_sensor
          state: 'on'
        - condition: time
          after: '05:59:00'
          before: '06:01:00'
        sequence:
          - service: climate.set_temperature
            data:
              entity_id: climate.gasboiler
              temperature: 24
      - conditions:
        - condition: state
          entity_id: binary_sensor.workday_sensor
          state: 'off'
        - condition: time
          after: '08:59:00'
          before: '09:01:00'
        sequence:
- service: climate.set_temperature
data:
entity_id: climate.gasboiler
temperature: 24

Автоматизации можно сделать еще более гибкими, некоторые наверняка можно объединить, а в местах, где жестко задается температура вставить какой-нибудь хитрый шаблон, но пока мне достаточно и этого :)

Подписывайтесь на мой канал и страницу в инстаграм @smart.home53, чтобы не пропустить новые статьи.

#умный дом #smart home #home assistant #отопление #климат #термостат #автоматизация #технологии #интернет вещей