Статья

Управление отоплением и охлаждением дома с помощью термостата Nest

Добрый день, уважаемые читатели. Подходит к концу потихоньку летний сезон, и я, спустя почти год, наконец могу описать свое взаимодействие с термостатом Nest в полной мере, как в холодный период, так и в теплый. Сразу оговорюсь, что я живу в квартире с индивидуальным газовым поквартирным отоплением, поэтому реализовать управление газовым котлом мне было проще. Такой вариант для жителей с централизованным отоплением, наверное, не совсем подойдет.

Во время этой интеграции были использованы следующие компоненты:

И еще несколько простых устройств, вроде канального вентилятора для притока свежего воздуха и понижающего трансформатора до 24V переменного тока для питания самого термостата.

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

Получаем нужную информацию с Nest

После правильного подключения питания термостата (информацию о подключении можно найти в Инструкции), мы получаем сигнал в 24 вольта переменного тока между питающим проводом и управляющим.Схему подключения и маркировку выходов можно посмотреть как в мобильном приложении, так и в самом термостате.

Для получения сигнала с термостата мы и будем использовать модуль WBIO-DI-WD-14. Подаем на вход COM модуля сигнал с одного из проводов трансформатора, а ко входам 1-14 (в зависимости от количества термостатов) подключаем провода с Неста.

Для получения состояний датчиков, в HA были заведены четыре сенсора, по которым можно понять, надо включать тот или иной девайс или наоборот - выключить. Сенсоры были получены путем MQTT интеграции в HA, а основой сервера выступил установленный на Wirenboard образ Spruthub, который, не смотря на отличный свой софт, имеет возможность интеграции в сторонние системы управления умным домом.

binary_sensor: - platform: mqtt name: "Nest heater" state_topic: "/spruthub/accessories/85/10/ContactSensor/ContactSensorState" payload_on: "1" payload_off: "0" device_class: power - platform: mqtt name: "Nest Cooler" state_topic: "/spruthub/accessories/86/10/ContactSensor/ContactSensorState" payload_on: "1" payload_off: "0" device_class: power - platform: mqtt name: "Nest Humidity" state_topic: "/spruthub/accessories/87/10/ContactSensor/ContactSensorState" payload_on: "1" payload_off: "0" device_class: power - platform: mqtt name: "Nest Fan" state_topic: "/spruthub/accessories/88/10/ContactSensor/ContactSensorState" payload_on: "1" payload_off: "0" device_class: power

Управление отоплением

Самое простое и актуальное на данный момент, поэтому начнём, пожалуй, с него. Зима близко, как-никак :) В холодное время года обогреваюсь я газовым двухконтурным котлом, у которого есть возможность управления отопительным контуром с помощью сухих контактов. То есть все что от нас требуется - включать реле, когда необходимо поднимать температуру, и выключать, когда она опускается. Всю логику по времени включения и отключения я передал Несту.

В Home Assistant, соответственно, необходимо создать несколько устройтсв типа binary_sensor, которые будут сигнализировать о наличии напряжения на нужных контактах. Для полной работы добавляется пара вот таких автоматизаций:

#Включить котел если есть сигнал с неста - alias: Turn on heater trigger: platform: state entity_id: binary_sensor.nest_heater from: 'off' to: 'on' action: service: switch.turn_on entity_id: switch.heater_switch #Выключить котел если нет сигнала с неста - alias: Turn off heater trigger: platform: state entity_id: binary_sensor.nest_heater from: 'on' to: 'off' action: service: switch.turn_off entity_id: switch.heater_switch

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

Управление охлаждением

Тут получилось немного сложнее, и в идеале с этим лучше справится либо канальная вентиляция с возможностью охлаждения, либо самый простецкий и тупой кондиционер, в котором нет зачатков разума, ну или максимум, что есть - wifi или zigbee модуль.

У меня установлен инверторный кондиционер, который нет смысла дергать на включение/выключение после достижения необходимой температуры, поэтому мне пришлось использовать кастомный компонент для HA, который умеет интегрировать Nest, получать с него данные и передавать необходимые команды.

Второе обстоятельство, которое меня спасло - термостат стоит достаточно далеко от кондиционера, так что температура воздуха достаточно редко опускается ниже установленой, что не прерывает работу кондиционера.

Что я передаю при включении кондиционера нестом? Я слежу за сенсором включения кондиционера на Wirenboard, и при его активности в течение трех секунд (защита от дурака), передаю команду на включение:

#Включить охлаждение конциционера - alias: Set Nest cool to on trigger: platform: state entity_id: binary_sensor.nest_cooler from: 'off' to: 'on' for: seconds: 3 action: - service: climate.set_temperature data_template: entity_id: climate.aeronik temperature: '{}' hvac_mode: cool

А как быть, если хочется сделать похолоднее или потеплее? Для начала я создал отдельный датчик температуры, который показывает необходимую для достижения, установленую температуру охлаждения:

- platform: template sensors: temperature_nest_set: friendly_name: "Nest установленная температура" unit_of_measurement: "°C" value_template: "{{ state_attr('climate.living_room_thermostat', 'temperature') }}" device_class: temperature entity_id: climate.living_room_thermostat

При изменении этой температуры, у меня срабатывает следующая автоматизация:

#Синхронизация температуры охлаждения конциционера - alias: Sync Nest Cool temp trigger: platform: state entity_id: sensor.temperature_nest_set condition: condition: and conditions: - condition: state entity_id: climate.aeronik state: 'cool' - condition: state entity_id: binary_sensor.nest_cooler state: 'on' action: - service: climate.set_temperature data_template: entity_id: climate.aeronik temperature: '{}' hvac_mode: cool

Все необходимые команды передаются кондиционеру через интеграцию с LOOK.in Remote. Да, не так красиво, как в случае с отоплением, но это недостатки моего кондиционера.

Планы на будущее

Теперь надо пережить полный осенне-зимний период с этим термостатом и посмотреть, как он будет отрабатывать. В силу того, что установил я его в начале весны, я застал очень малую часть холодов и толком не оценил корректность работы системы. Nest умеет учитывать в своей логике температуру «за бортом», и в теории, это должно влиять на корректность работы системы, хоть и берётся она из прогноза погоды.

Также надо будет учесть момент с переводом термостата в режим экономии, при котором в помещении поддерживается температура «от x до y» градусов. Это важно для включения кондиционера, потому что передавать надо не заданную температуру, а ту, которая является верхним порогом.

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

2

Поправьте..если я правильно понял....

#Включить котел если есть сигнал с неста
- alias: Turn on heater
и
#Включить котел если есть сигнал с неста
- alias: Turn off heater

Наверное "выключить".....

Правильно, у меня опечатка) поправлю


Вернуться назад

Устройства


WirenBoard

Wiren Board 6

(4 отзыва)

WirenBoard

Модуль реле WB-MR6C

(1 отзыв)

LOOKin

Remote

(11 отзывов)

Вернуться назад