Как я делаю свой дом умным

5bb32f66fb9b6df441bc711b57f557a6.png

В этой заметке хочу поделиться и сохранить на память:

В августе 2018 года я переехал из квартиры в собственный дом, и практически сразу мне стал интересен вопрос внедрения технологий «умного дома». При выборе и покупке дома с супругой сразу решили покупать дом с уже сделанным чистовым ремонтом, что с одной стороны сэкономило нам кучу времени и нервов — и с другой стороны очень сильно ограничило меня в возможностях доработки моего дома (штробить стену чтобы прокинуть какой-нибудь кабель или положить датчик — уже не хочется).

Знакомство с технологиями умного дома я начал с выключателей от Xiaomi — это одна из редких фирм, которые производят выключатели для света без нулевой линии — т.е. обычные кнопки, которые сейчас стоят в 99% жилых помещений в России и просто разрывают цепь — можно без изменений в проводке заменить на эти выключатели и всё будет работать. Большинство других производителей требуют «нулевую линию» — чтобы отдельно запитать именно кнопку.

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

Лестница

После установки выключателей — поставил на первый и второй этаж датчики движения от того же Xiaomi и сделал чтобы с 18 до 6 утра при обнаружении в коридоре одного из этажей — включался свет на лестнице. Удобно, но называть это «умным домом» также считаю некорректно — по сути это просто автоматический выключатель, срабатывающий по времени суток и по движению. Того же самого можно было бы добиться, не используя никакие «умные» компоненты, на обычных датчиках движения, встроенных в обыкновенные выключатели света

Уличный свет

Первый шаг к действительно «умному» дому я сделал, когда обнаружил в приложении возможность автоматизации по GPS датчику, встроенному в смартфон. Жена у меня в это время работала дома, и в комнате, которая использовалась как её мастерская, стоял один из шлюзов Xiaomi.

Я настроил автоматизацию — если в вечернее время я (т. е. мой телефон) въезжал в круг радиусом 500 метров от дома — включался уличный свет, и у жены в мастерской загорался шлюз Xiaomi — таким образом она знала, что я скоро буду дома, и меня всегда встречала освещенная парковка и теплый ужин :-)

Прихожая

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

Для того, чтобы полноценно реализовать эту автоматизацию, мне понадобилось уже 3 дополнительных компонента:

  • два датчика открытия дверей (с улицы в прихожую и с прихожей в дом)

  • датчик движения (совмещенный с датчиком света)

Алгоритм автоматизации:

Если уровень освещенности в прихожей менее 80 люкс
Если открылась одна из дверей или в прихожей замечено движение — включить свет
Если обе двери закрыты и в течение 15 минут не было никакого движения — выключить свет
Если открывается дверь из прихожей в дом и уровень освещенности в доме менее 80 люкс — включить свет на лестнице

В принципе, можно было бы обойтись и одним датчиком движения -, но в таком случае пропадает «магия» того, что свет включается когда ты только начинаешь открывать дверь, и к моменту полного открытия двери — свет внутри уже горит.

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

Эту автоматизацию я настроил примерно 2 года назад, и с тех пор вот уже 2 года как я ни разу не пользовался выключателем света в прихожей — свет сам включается и выключается. При этом благодаря уходу от ограничений типа «работать после начала сумерек» или точной настройки времени, как у меня было на лестнице — свет хорошо срабатывает и в течение дня, если например солнце ушло за тучи и идет сильный дождь — датчик освещенности позволяет «заметить», что в прихожей темно, и включить свет даже в полдень.

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

Domoticz

Реализовать такой алгоритм работы, используя встроенные средства автоматизации от Xiaomi у меня не получилось — поэтому я поставил контроллер умного дома Domoticz, в который завел все шлюзы и устройства Mi Home — также этот контроллер пригодился для моих дальнейших доработок, потому что он позволяет «подружить» инфраструктуру Xiaomi с внешними устройствами, работающими по другим протоколам (например MQTT). Кроме Domoticz есть еще другие решения, например Home Assistant, но я выбрал Domoticz просто потому что это было первое полностью работоспособное решение которое я нашел, и он меня полностью устраивает.

Также с помощью Domoticz я переписал и автоматизацию лестницы — сделал, чтобы она зависела от освещенности дома, а не включалась по времени.

Кроме того, Domoticz с помощью Homebridge я подключил к Apple Home, а homebridge с помощью G-On я подключил к Алисе — теперь я могу удобно управлять всем светом дома используя айфон, а также голосом. Ну и автоматическое включение света я тоже переделал — теперь оно включается не через автоматизацию в Mi Home, а через автоматизацию в Apple Home — работает в целом быстрее и надежнее, потому что не использует китайские серверы в своей работе, а также не требует перезахода в приложение после каждого его обновления (видимо, Mi Home это нужно чтобы обновить права на доступ к GPS в фоновом режиме).

Режим просмотра кино

Диван в гостиной я оборудовал контурной подсветкой с умной светодиодной лентой от Xiaomi — она умеет менять цвета, и может включаться программным способом через Domoticz или Mi Home (ну и Apple Home конечно и даже Алисе можно сказать «Алиса, включи диван и сделай его зеленого цвета»). Выглядит примерно вот так (почему-то угол засветился):

adbbef72e8ae27a543cd3fd33b1aff3f.jpg

На специальную кнопку я завел автоматизацию — при первом нажатии выключается весь свет на первом этаже, и включается контурная подсветка дивана. Это я назвал «режимом просмотра кино». При следующем нажатии — диван выключается и включается свет в гостиной.

Позже мы с женой обнаружили, что для комфорта той яркости света, которую дает подсветка дивана — недостаточно, и стали включать еще лампочку на вытяжке. У нас гостиная совмещена с кухней, вытяжка стоит вдалеке и добавляет немного приятного света. Ну, а потом я заморочился, вскрыл вытяжку и переделал выключатель на еще один Sonoff — чтобы вытяжка включалась сама при переходе в режим «просмотра кино», и чтобы ей можно было управлять в рамках других сценариев.

Самодельный термостат

Пока что, самая интересная и сложная автоматизация из всех, что есть у меня дома. Когда я переехал в свой дом — у меня стоял котел для отопления и горячей воды, который работал «сам по себе», без каких-либо внешних датчиков. При изменении температуры на улице приходилось постоянно подходить к котлу и регулировать температуру теплоносителя. Из-за этого дома постоянно было то жарко, то холодно, а котел грел и гонял по трубам теплоноситель непрерывно, тем самым увеличивая счета за электроэнергию и газ.

Оборудование

С помощью wi-fi реле от Sonoff я подключил газовый котел Baxi к своему контроллеру умного дома Domoticz — для этого пришлось немного переделать реле, чтобы оно стало с «сухими контактами». После этого я получил возможность программно включать и выключать отопление на котле, и мне осталось только запрограммировать алгоритм его включения.

Для этого я установил датчики температуры воздуха в 2 комнатах первого этажа и в спальне на втором этаже, написал первую версию своего термостата, взяв за основу вот этот код:

https://gist.github.com/lourou/ab26f3718d2d5a47ab169d097f42fa7c

По сути он очень простой — включает отопление, когда температура в помещении падает ниже, чем заданная минус гистерезис и потом его выключает, если температура поднимается выше заданной плюс гистерезис. В интервале ± гистерезис от заданной котел просто сохраняет свое состояние (включен или выключен).

Плюсы и минусы

Использование такого «термостата» уже дало серьезный плюс — температура в доме стабилизировалась, потребление газа упало почти в 2 раза и потребление электричества тоже сократилось. Температуру теплоносителя я при этом выставил на 50 градусов, и регулировать её больше не было необходимости.

Есть и минус при использовании такого термостата — оказалось, что спальня это самая холодная комната в моём доме, и по сути всё отопление работало на основании показателей всегда только 1 датчика, потому что на первом этаже температура стабильно на 1.5–2 градуса выше чем на втором. Если жена днем хотела проветрить спальню, и забывала закрыть окно — котел начинал молотить как бешеный, пытаясь повысить температуру в спальне до «нормальной», прогревая при этом первый этаж до состояния «сауны».

Тем не менее, одну зиму я прожил с такими настройками, оставшись в целом довольным его работой — ведь в большинстве случаев дома получалось поддерживать заданную температуру (с учетом разницы на 1 и 2 этажах), а также у меня снизилось потребление газа и электричества, и возрос комфорт от жизни дома благодаря тому, что отпала необходимость постоянно регулировать температуру теплоносителя.

Самодельный термостат v2

Этой осенью я решил всё-таки попробовать побороть недостатки первой версии моего термостата, и модернизировать его для лучше работы.

Основные проблемы, которые я хотел исправить:

  • бесконечная работа отопления во всем доме при проветривании отдельных комнат

  • большая разница температур между 1 и 2 этажом

По идее, вторую проблему нужно решать с помощью регулировки системы отопления в доме (установки специальных клапанов, которые позволят делать разную температуру теплоносителя на 1 и 2 этаже), но т. к. я купил дом с готовым ремонтом — у меня уже нет возможности каким то простым способом добавить в систему эти клапаны, поэтому я решил пока обойтись программным методом решения этой проблемы.

Для решения первой проблемы я решил оборудовать датчиками температуры все комнаты в доме, кроме ванных. Кроме того, вместо понятия «желаемая температура» я ввел понятия «минимально комфортная температура», которую установил в 23.5 градуса и «максимально комфортная температура», которую установил в 25 градусов. Также ввел понятие «критического отклонения», которое приравнял к 0.5 градуса.

Новый алгоритм автоматизации:

Проверяем температуру в каждой комнате, и смотрим, к какому из классов она относится:

  1. Критически низкая

  2. Температура ниже комфортной

  3. Температура комфортная

  4. Температура выше комфортной

  5. Температура критически выше комфортной

По каждому из 5 классов считаем количество комнат, которые к ним относятся (всего в доме 6 комнат)

Определяем необходимое действие:
ЕСЛИ хотя бы в 1 комнате температура критически низкая: включить отопление
ИНАЧЕ, ЕСЛИ в 3 и более комнатах температура ниже комфортной — включить отопление
ИНАЧЕ, ЕСЛИ в 2 комнатах t ниже комфортной и ни в одной из комнат t критически выше — включить отопление
ИНАЧЕ, ЕСЛИ в 2 и более комнатах температура выше комфортной выключить отопление

Во всех остальных случаях котел сохраняет своё состояние:
Либо греет пока не прогреет 2 комнаты до t выше комфортной и все выше минимальной
Либо не греет, пока комнаты не остынут

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

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

Кроме того, я ввел разделение по времени суток — с 7 утра до 19 часов мы в основном проводим время на первом этаже, где находится гостиная, мастерская жены и пр., а с 19 до 7 утра — в основном на втором этаже, где находится спальня.

В зависимости от времени суток я уменьшаю или увеличиваю границы комфортной температуры — днем я даю второму этажу остыть немного сильнее (нижнюю границу комфортной температуры снижаю до 23 градусов), и в 19 часов снова его подогреваю, чтобы когда мы придем туда спать — там уже было комфортно. За счет этого и первый этаж днем остывает сильнее и находиться на нем комфортнее.

Бюджет

Думаю, бюджет всех доработок — это то, что волнует многих при планировании своего «умного дома».

В данный момент у меня в системе 40 различных устройств (выключатели и датчики) со средней стоимостью в районе 1000 рублей — что-то дороже (например выключатели Xiaomi или шлюзы), а что-то дешевле — те же реле sonoff, которых у меня уже 6 штук, можно купить по 350 рублей на Aliexpress.

Apple TV и Яндекс.Станцию мне подарили коллеги, за что им огромное спасибо. В принципе, у меня всё работает и без них, но станция добавила мне в дом возможность голосового управления, а Apple TV является удобным шлюзом для Apple Home.

Итого на всё описанное я потратил в данный момент около 40–50 тысяч рублей. + Собственное время на настройку и программирование.

Что дальше

Следующие мои планы — это улучшение атмосферы в доме (заказал датчики CO2 и планирую попробовать автоматизировать проветривание, скрестив его с термостатом), а также автоматизация света в санузлах. На следующее лето — автоматический полив газона.

Газон

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

Санузлы

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

Поэтому я пока продумываю алгоритм, который позволит раз и навсегда решить вопрос света в ванной, по аналогии со светом в прихожей.

Пока что я вижу его как комбинацию из двух датчиков движения и датчика открытия двери. Один датчик движения должен смотреть в сторону двери, а другой — от неё.

Датчик открытия двери определяет моменты, когда человек мог войти или выйти из ванной.

Если дверь открыта — то свет должен гореть всегда (при условии недостаточной освещенности в помещении). Освещенность брать как среднее из показаний 2 датчиков.

Когда дверь закрыта — надо понять, есть ли у нас человек в помещении или нет. Для этого использовать датчики движения, и если после закрытия двери в помещении наблюдалось какое-то движение — то считать, что в помещении есть человек, пока дверь снова не откроется. Соответственно не выключать свет. Когда в следующий раз дверь откроется-закроется — снова проверить, есть ли внутри человек, и выключать свет в случае, если в течение 5 минут после закрытия движение обнаружено не будет.

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

Видите ли вы еще какие-то изъяны в этом алгоритме?

© Habrahabr.ru