TLDR: Схожих постов на Хабре десятки, но мне хотелось показать, что внезапно можно
очень быстро сделать классные штуки, которые не ради вау эффекта, а реально помогают жить.


Будет про:


  • Home Asistant
  • Алису и её станции
  • Ардуины и MQTT
  • управление воротами Came
  • локальное управление яндекс розетками
  • датчики движения
  • Влажность, температуру и CO2
  • Автоматический полив цветочков
  • Как при помощи всего этого развлечь детей и как они находят свои способы с этим играть.

Предпосылки


Мне всегда казалось, что умный дом это и сложно и какой-то бессмысленный выпендрёж.


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


Выпендрёж — потому что меня всегда смущал основной вариант умного дома — управление светом. До сих пор не могу понять, зачем управлять им голосом, хлопками или датчиками движения. Поднять пятую точку и нажать выключатель — хоть какая-то разминка!


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


Тем не менее, накопилось значительное количество несистематизированных огрызков:


  1. Ещё в далёком 2016 я собрал свой датчик CO2, темпераруты и влажности.
  2. На новый год ребёнок выпросил себе светодиодную ленту. Потратив какое-то время, я выбрал RGB ленту с умным контроллером MagicHome, которая внезапно сопряглась с Алисой. И это было прикольно.
  3. На новый год мы украсили на улице ёлку гирляндами. Когда мне надоело включать её руками, я заказал розетку яндекса и составил расписание включения. Заодно подключил так же уличный свет, выключатель которого висел крайне неудобно. К слову, розетки с честью выдержали нерегламентированные -15 на улице и продолжали бодро щёлкать реле.
  4. Периодически я призывал домой клининговый сервис, и каждый раз был квест с тем, как им оставить и забрать ключи. Очень хотелось решить это при помощи какого-то способа удалённого управления раздвижными воротами.
  5. У детей завелось две Яндекс.Станции, с которыми они активно общаются и слушают музыку.

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


Сердце умного дома


Какое-то время я листал имеющиеся решения, и в глазах рябило от жутких разноцветных квадратов и прочих решений, интерфейсы к которым писали очевидно враждебные рептилоиды. В конце концов я нашёл то, что не вызывало отторжения и даже выглядело симпатично — Home Assistant. Выглядеть инсталлиция может, например, так.


Рассказывать долго про него буду, на хабре уже есть десятки статей, скажу лишь, что установка заняла примерно полчаса. Из которых 20 минут я придумывал, как мне работать с машинкой без клавиатуры и удалённого доступа.


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


Скажи «друг» и войди


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


Забудьте про безопасность, динамические ключи и прочие вещи, которые давали вам спокойно спать. Пара трансмиттер-ресивер за 200 рублей может считать ключ от ворот CAME при нажатии на кнопку открытия ворот, и воспроизвести сигнал. Остаётся дело за малым — затащить это в Home Assistant.


Мне казалось, что MQTT это какая-то страшная аббревиатура, и сейчас я обложусь литературой и буду вникать, но… Оказалось, что это обычный pubsub, для которого есть библиотеки Arduino, и который цепляется в Home Assistant парой строчкой конфига. Всё это есть в репозитории по ссылкам выше, так что не буду останавливаться здесь подробнее. За вечер мне удалось и считать сигнал и воспроизвести его и затащить кнопкой в Home Assistant.


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


Алиса, открой ворота


Въедливый читатель наверняка заметил, что Алиса на текущем этапе мне ворота не откроет. Она по них не знает. И здесь нам на помощь приходит интеграция с умным домом яндекса. Которая тоже настраивается за 10 минут и передаёт туда все устройства, которые ты указал, и которые ему понятны.



Теперь я могу управлять домом тремя способами:


  1. Админка Home Assistant через локальную сеть;
  2. Та же админка через интернет, выкинутая туда штатными средствами Keenetic — KeenDNS;
  3. Алиса, которая дёргает Home Assistant через пункт 2.

Видел много статей, которые предлагали другие средства вроде использования Blink или "домовёнка кузи" — но зачем умножать сущности, если можно этого не делать?


Как дополнительный неочевидный бонус, такая интеграция позволяет раздать управление умным домом через Алису всему семейству, чего штатно в Умном Доме Яндекса до сих пор, кажется, нет.


Влажность, температура, CO2


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


Управление яндекс станциями


Это уже в общем-то из серии "потому что могу". Заметил, что есть интеграция с яндекс станциями, которая позволяет говорить в них Алисой. Вроде бы фигня, но настроил, чтобы Алиса говорила мне о том, что пора проветрить, и предупреждала, что пора заваривать чай к стендапу (очень помогает его не продолбать).


Автоматический полив цветочков


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


Локальное управление Яндекс.Розетками


Вокруг красота, и я всем могу управлять через HA. Кроме розеток, что в целом пофигу, но я начал комплексовать и начал думать, что можно с этим делать. И тут подумал о том, что Keenetic и HA оба находят у меня устройства tuya, и это ЖЖЖ явно не спроста!


Долго ли коротко ли, оказалось, что Яндекс Розетки построены на OEM решении Tuya. Что в общем скорее хорошо, чем плохо, поскольку работает это решение хорошо, и добавочной стоимости это не создаёт.
Но мне хотелось управлять ими через HA, то что я сначала переподцепил их через родное приложение и попробовал интеграцию с облачной туей. У меня она не взлетела, и тут я обнаружил, что есть хитрый способ подключить их локально через расширение LocalTuya — но тут потребовались пляски с бубном, девелоперский аккаунт и получение локального ключа. Однако, всё заработало, и теперь я могу ими управлять как из локальной сети, так и через УДЯ (Умный Дом Яндекса), куда прокинул их через тот же HA и KeeneticDNS.


Умный дом и дети


Детям очень зашла эта несложная магия, а старшая даже написала в УДЯ небольшой сценарий:


  1. Заходишь к ней, и колонка говорит "закрой дверь и выключи свет!" — и повторяет это, пока не сделаешь, как велено.
  2. Включается стробоскопическое красно-синее освещение и страшная музыка.
  3. Колонка говорит "Её я уже съела, а теперь и ты попался!"

Управляется это, правда, не хитрой автоматикой, а ребёнком, спрятавшимся в шкафу. Но вау эффект на детей делает. Тут мог бы быть смайлик, но сами знаете.



Кроме того, можно придумывать небольшие игры и шутки:


  • Весь вечер мы играли в шпионскую игру, где надо было обмануть датчик движения, который тоже был написан очень быстро. Когда он тебя замечал, то лента мигала, и Алиса говорила фразой из случайного набора вроде "Попался!" — вроде мелочь, но радости и адреналина много.
  • Один раз на ночь я положил в холодильник пауэрбанк с тем же датчиком движения, и при открытии двери холодильника сзади раздавался голос, порицающий обжорство.
  • Ещё очень удобно призывать ребёнка с другого этажа миганием ленты. Это гораздо менее инвазивно, чем заходить или звонить.

Что можно сделать ещё


Так же у меня возникали следующие мысли:


  • Поставить сервопривод на регулятор котла, чтобы менять температуру воды. У меня нет бойлера, так что регулировать температуру надо на котле. И бывает нужно тёплую, а бывает — кипяток. Бегать крутить ручку неудобно. Так же можно регулировать и отопление, но меня не обламывает это делать руками при изменении погоды. Хотя можно было бы приглушать отопление на ночь...
  • Ребёнок просил сделать алярм на случай, если проспал все будильники. Думаю, что датчик движения плюс станция вполне решат эту задачу.
  • Иногда хочется умных штор, но пока что это из той серии, что проще сделать руками. Да и для них надо добавлять специальные устройтва, от которых скорее всего останутся следы в стенах. Так что отложим.
  • Ещё наверное дойду до того, чтобы поставить датчики протечек, газа и огня. Протечки уже случались, и было бы неплохо хотя бы оперативно на это смочь среагировать.

Что можно было бы сделать лучше


Наверняка — почти всё. У меня всё получилось всё настолько быстро, что я не успел прочитать, как это делать правильно. Очевидные косяки есть такие:


  • Можно было бы использовать зигби. Но при моём количестве устройств две точки Keenetic в меш сети вполне тянут всё на вайфае, так что не хотелось дополнительной магии. А проблемы интерференции сетей в отдельном домике в подмосковье не существует.
  • Можно было бы писать в один топик все показатели от датчика CO2/температуры/влажности. А потом парсить. Но было лень, да и места в очереди не жалко.
  • Все устройства на микроконтроллерах можно было сделать с self discovery, чтобы не писать конфиг в HA, а он сам их находил и отрисовывал нужные иконки и контролы. Но лень.
  • Можно было бы использовать что-то вроде ESPHome, что позволяет прошивку и обновление устройств по воздуху. Но с моим пятком датчиков мне стало лень в этом разбираться, так что сделал как шесть лет назад.
  • Наверняка, ты, читатель, тоже увидел, что можно было сделать лучше или проще — подскажи!

Итог


Меня поразило, насколько всё это внезапно легко и быстро делается в 2022 году. Несколько расслабленных вечеров после работы — и ты получаешь реально полезные штуки, которые обладают внезапными синергетическими эффектами.


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


Ну и отдельные лучи радости — экосистеме Яндекса, ребятам из Keenetic и сообществу Home Assistant. Работать с этими устройствами и софтом — просто счастье — как будто тебе вместо железного детского конструктора тебе вдруг дали приятные деревянные кубики.


Ну и вопрос напоследок. Какие у вас есть нетривиальные или неожиданные интеграции, и какие забавные истории про детей и умный дом можете поведать вы?

Комментарии (30)


  1. swaftrade
    07.02.2022 13:10
    +1

    Было очень много слов "лень". Вот она и двигает прогрессом :)


  1. Lecort
    07.02.2022 16:17
    +2

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


    1. jehy Автор
      07.02.2022 16:59

      Не учите меня жить, лучше помогите материально!

      Там даже кнопочка есть!


  1. Genix
    07.02.2022 19:07
    +1

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

    Но так как это все же свой дом, то пошел я по другому пути: а именно выбрал приводы ворот с поддержкой сухих контактов на открытие и закрытие. Оказалось, что при всем разнообразии приводов, не так то и много тех кто имеет контакты под open/close а не просто так называемое "пошаговое" управление воротами. Nice для откатных умеет, для подъемных секционных - через перерограммирование входов (с помощью фирменного адаптера можно переопределить поведение штатных функций и входов). Ну а дальше все почти как у автора с небольшими не принципиальными отличиями: openhab+homeassistant, google home, голосовое управление.


    1. jehy Автор
      07.02.2022 19:10
      -1

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


    1. RTFM13
      07.02.2022 20:02

      У nice есть отдельно кнопки открыть и закрыть, кнопка открыть/стоп/закрыть которая умеет работать по разным алгоритмам и выход 24В по которому можно определить текущее состояние ворот (у меня он свет на парковке включает на пол часа + аларм если ворота открыты больше 15 минут, всё это изначально было сделано на релюшках на дин рейку).


    1. usa_habro_user
      08.02.2022 12:00

      Ну, а расскажите подробнее, как у вас пошло "почти как у автора"? Ну, чтобы не "на мотоцикле для этого надо остановиться, найти нейтраль, снять перчатки, растегнуть куртку или карман, нажать кнопку и повторить все в обратном порядке чтобы заехать во двор" - просто любопытно ;)

      P.S. Для вашего случая, безусловно, есть решение, но только не такое, как вы описали (и без программирования не обойдешься).


      1. jehy Автор
        08.02.2022 12:04

        Дык вроде по комментарию понятно - голосом через Google assistant. Можно через него, можно через Алису. Просто говоришь в телефон, который на моте и так обычно в качестве навигатора стоит.


      1. RTFM13
        08.02.2022 15:39

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

        Как я понимаю нужен пульт с креплением на руль и с большой кнопкой которую можно нажать в перчатках?


    1. jehy Автор
      08.02.2022 13:31

      Кстати, есть ещё способ. Открывать ворота, если подцепился долго отсутствовавший девайс.


      1. telobezumnoe
        09.02.2022 22:16

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


  1. michalbl4
    07.02.2022 19:07
    +1

    Свой дом, конечно, дает огромное количество возможностей поразвлечься с "умным домом". Я лично всегда мечтал, но ни в собственной, ни в съемной квартире "развернуться" было негде. Но купили дом, и теперь я и Home Assistant там развернул, и датчики на ESP паяю, и "Алису" вот недавно прикупил. Она у меня в основном свет включает - если надо много сразу включить, например свет плюс гирлянды во дворе. И чайник умеет ставить)
    А по серьезному умный дом регулирует котел, например, по OpenTherm. А летом еще и автополивом управляет.
    Так что я автора понимаю - начав, уже трудно остановиться)


    1. jehy Автор
      07.02.2022 19:08
      +1

      С чайником у меня был лютейший облом. Умный чайник Xiaomi умеет всё, вообще всё. Кроме того, чтобы удалённо включаться и выключаться...


      1. duckhawk
        08.02.2022 05:59
        +1

        Тут вроде бы спасает смена его на какой нибудь Redmond, но когда я так сделал - возникла новая проблема: воду удаленно в него не зальешь:)


      1. AlexTOPMAN
        09.02.2022 08:41

        Разве термопот в этом случае не эффективнее? (с ним кому-то м.б. даже и удалённое управление не понадобится)


        1. jehy Автор
          09.02.2022 09:34

          У термопота есть минус. Его нет. А чайник есть.


  1. SantaClaus16
    07.02.2022 20:11

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


  1. Satyricon
    07.02.2022 21:59

    Хочу научить Алису напоминать о собраниях в аутлуке, но никак не придумаю как.


    1. jehy Автор
      07.02.2022 22:56

      Там явно должно быть какое-то API для выгребания данных.


  1. usa_habro_user
    08.02.2022 08:37

    но внезапно всё получилось буквально за пару вечеров

    Думаю, что вы все врете изрядно "кокетничаете" и таки говорите неправду. Впрочем, не буду настаивать - доказать ни я, ни вы это не можете, так, что зачем "упираться"? Соглашусь в том, что "умный дом" (в разумном понимании) это не "rocket science", и вполне можно имплементировать, грубо говоря, "за копейки" (имея ввиду пару-тройку сотен $), но вот на счет "пары вечеров" вы явно горячитесь. Впрочем, у вас есть шанс "фактически поквитаться" со мной - вы упомянули об "умных шторах" (я как-то сделал такую). Будет интересно узнать, сколько секунд (ну, или минут, учитывая занятость) вам потребуется, чтобы "прикрутить" подобную штору к вашему дому (у меня заняло немало времени, о чем я и не вру, а честно описал).


    1. jehy Автор
      08.02.2022 12:16

      У меня шторы висят на убогих советских крючках в деревянной рейке. Их и руками двигать сложно, а автоматикой тем более. Так что надо ставить нормальный карниз, да и шторы нормальные покупать. Так что всё упирается в шторы, а не в автоматику. Долго, муторно, дорого, и неохота делать в съёмном доме. Так что делать буду не скоро.

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

      В целом насчёт времени - да, на самом деле пококетничал, это были вечера в течении недели. Но по большей части из-за тупняка. То esp32 оказался с почти не работающим вай-фаем, то алгоритм расшифровки сигнала для ворот оказался нерабочим в том источнике, где я его нашёл, то надо было придумать отдельное питание для насоса.

      Но воспроизвести всё описанное я бы смог бы за вечер. Верю, что у читателя при наличии моих скетчей на это уйдёт два вечера.

      Но в целом посыл был в том, что это порядок дней, а не недель или тем паче месяцев.


    1. jehy Автор
      08.02.2022 12:23

      Посмотрел на ваше решение - вы управляете большой тяжелой шторой-рулоном (не знаю, как оно называется). Я бы обычную плотную тканную дёргал туда-сюда. Хотя эффекта полного затемнения это бы конечно не дало. Но ваше решение я бы собирал долго - подобрать адаптеры, серво, питание, чтобы точно наматывалось и разматывалось... Думаю, пару вечеров на подбор компонентов, вечер на сбор, вечер на отладку, потом понял бы что что что-то не подошло и прошёл ещё итерации 3 таких же. Потому что я рукожоп и не умею в электронику.


    1. RTFM13
      08.02.2022 15:45

      Разве электрокарнизы не продаются с пультами? Они вроде даже есть из коробки с привязкой ко всяким алексам/гуглам чеерез китайское облако.


  1. dimnsk
    08.02.2022 09:22
    +1

    HA + ESP захватил мир SmartHome
    напоминает Linux в OC


    1. usa_habro_user
      08.02.2022 09:52

      ESP32 (и его клоны) действительно хорош: кроет оригинальную "Ардуину" по цене и функциональности, "как бык овцу".


      1. dimnsk
        08.02.2022 10:16

        да и ESP8266 перекрывает все возможности учитывая Wifi на борту


        1. jehy Автор
          08.02.2022 10:28

          Поэтому я и на и том и на другом собираю, разницы в целом нет. Что было в шкафу, то и пошло в ход.


          1. dimnsk
            08.02.2022 10:35

            esp можно обновлять и добавлять новый функционал
            без физического вмешательства по воздуху (как в случае с ардуино)


            1. jehy Автор
              08.02.2022 10:37

              И на том и на другом - имелось в виду - и на esp32 и на esp8266. Вроде они обе по воздуху умеют, но пока не пробовал, хотя выглядит вкусно. Для меня больше роляет вопрос стоимости.


  1. AlexTOPMAN
    09.02.2022 07:19

    Наконец-то, про умный дом "мысли в правильном направлении" о реальном повышении удобства и комфорта. А не все эти рекламные навязанно офисные датчики протечки, дыма и пр.