В первой статье я рассказал, как пришел к теме умного дома и что из этого получилось.

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

Сегодня мой умный дом уже давно вышел за рамки хобби и превратился в полноценную систему управления квартирой. В ней работает контроллер и больше 100 модулей ввода-вывода. Если говорить языком цифр — это свыше 700 входных сигналов и около 300 выходных. Умный дом охватывает практически все инженерные системы квартиры.

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

Сценарии, создающие атмосферу

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

В квартире работает многоуровневая система освещения: утренний, дневной, вечерний и ночной режимы. Ночной режим разделен на два сценария:

  • «До сна» — мягкое теплое освещение во всех помещениях. Для этого использую светодиодные ленты с диммированием через WB-LED.

  • «После отбоя» — свет остается только в проходных зонах: коридоре и санузле. Подсветка вдоль плинтуса включается по датчику движения на 2–3 минуты, чтобы не слепить и не мешать домашним.

Режим «Курьер» и автоматизация доступа

Я интегрировал модуль управления домофоном ESPDomofon — подключил его к контроллеру Wiren Board по Modbus RTU.

Когда кто-то звонит в подъездный домофон, сигнал дублируется в умные колонки. Дверь можно открыть голосом через Алису, после чего активируется режим ожидания курьера.

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

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

Через 10 минут замок возвращается в обычный режим, а система подает звуковое уведомление.

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

Микроклимат

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

Управление построено на частотных преобразователях T13-750W-12-H, подключенных к контроллеру по Modbus. Они управляют простыми и надежными канальными вентиляторами ВК 150 в металлическом корпусе.

Система регулирует производительность вентиляции по показаниям датчиков качества воздуха WB-MSW v.4: при росте CO₂ увеличивает подачу воздуха, а при нормализации — снижает.

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

Здесь я тоже использую датчики WB-MS v.4 в помещениях. По их показаниям система управляет увлажнителями. В резервуарах стоят поплавковые датчики уровня воды: когда воды становится мало, система открывает электроклапан и автоматически доливает воду из водопровода.

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

В отопительный период система регулирует температуру воздуха по датчикам WB-MSW v.4. На радиаторах установлены термоэлектрические приводы, через которые контроллер управляет подачей теплоносителя. При открытии окон система снижает подачу тепла, чтобы не греть улицу.

На окнах установлены цепные приводы Giesse. Они позволяют открывать окна голосом или автоматически — по сценарию.

Окна оснащены приводами, которые позволяют их приоткрыть и проветрить помещение
Окна оснащены приводами, которые позволяют их приоткрыть и проветрить помещение
Дополнительные фото
Увлажнитель включается через умную розетку
Увлажнитель включается через умную розетку
Кондиционер в гостиной
Кондиционер в гостиной
Датчики WB-MS и WB-MSW на кухне
Датчики WB-MS и WB-MSW на кухне
Датчик WB-MSW в кабинете
Датчик WB-MSW в кабинете

Полезные кнопки

Многие делают мастер-выключатель, который отключает все при выходе из дома. У меня такой тоже есть.

Но чаще я пользуюсь другим сценарным выключателем — «Сон». Он установлен рядом с кроватью. Нажимаю кнопку — и дом постепенно переходит в ночной режим:

  • отключаются неприоритетные розетки и приборы;

  • освещение переключается в ночной сценарий;

  • звуковые уведомления приглушаются;

  • система желает «Приятного сна».

При этом сценарий привязан ко времени суток: если нажать кнопку днем, ничего не произойдет.

Утром срабатывает сценарий «Будильник». К моменту, когда пора вставать, дом «просыпается»: на розетки снова подается питание, включаются нужные устройства, открываются шторы, а система говорит: «Доброе утро».

Кнопка с ключом на входе работает как мастер выключатель в паре с красным индикатором
Кнопка с ключом на входе работает как мастер выключатель в паре с красным индикатором
Дополнительные фото
«Пианино» в гостиной 
«Пианино» в гостиной 
Каждым устройством можно управлять своей клавишей
Каждым устройством можно управлять своей клавишей
А это мое решение для детской: достал карточку, и свет больше не включить
А это мое решение для детской: достал карточку, и свет больше не включить

Уши вместо глаз

Для зрячего человека интерфейс умного дома — это экран. Для меня — звук.

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

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

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

Для этого я установил датчики протечки «Нептун» во всех потенциально опасных местах: под ванной, под стиральной машиной, рядом с унитазом и в сантехническом шкафу, а на кухне — под мойкой и посудомоечной машиной.

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

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

Привод перекрывает подачу воды в случае срабатывания датчика протечки
Привод перекрывает подачу воды в случае срабатывания датчика протечки
Дополнительные фото
Шаровый кран на обратке прибора отопления
Шаровый кран на обратке прибора отопления
 Термоэлектрический привод на подаче
 Термоэлектрический привод на подаче

Сценарии, подсказанные жизнью

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

Битва за печенье

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

Решение получилось простым: геркон на дверце, модуль дискретных входов и 12-вольтовый бипер.

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

Берегите лоб

Одна из самых неприятных бытовых ловушек для незрячего человека — навесные шкафы с распашными дверцами. Забыл закрыть — гарантированно встретишься с дверцей лбом.

Теперь дом следит и за этим. Если дверца открыта больше трех минут, система голосом напоминает: «Вы забыли закрыть шкафчик».

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

Каждая открытая дверца и каждый выдвинутый ящик для меня опасны, поэтому оснащены датчиками открытия
Каждая открытая дверца и каждый выдвинутый ящик для меня опасны, поэтому оснащены датчиками открытия

Холодильник тоже под контролем

Двери холодильника я тоже контролирую — отдельно для холодильной и морозильной камер.

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

На дверцах установлены герконы, подключенные к модулю WBIO-DI-WD-14. Если дверь остается открытой дольше заданного времени, контроллер запускает голосовое уведомление через USB-звуковую карту и колонки по всей квартире.

В итоге я сразу слышу, что холодильник или морозилка остались открытыми, где бы ни находился.

Голосовые ассистенты

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

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

Контроль нагрузки

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

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

В автоматическом режиме нагрузки отключаются по приоритетам:

  • сначала кондиционер;

  • затем бойлер;

  • после — духовой шкаф или микроволновка.

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

Все важные уведомления дополнительно отправляются через push-сообщения и, при необходимости, по SMS.

Спорт в умном доме

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

У нее есть штатное управление, но мне хотелось встроить ее в общую логику дома.

Интеграция получилась довольно простой. При включении дорожки замыкается реле на модуле WB-MR6C, после чего контроллер запускает таймер тренировки и воспроизводит голосовое уведомление о начале занятия.

По умолчанию тренировка рассчитана на 30 минут. Можно спокойно заниматься и не следить за временем.

За минуту до окончания система подает еще одно голосовое уведомление — остается время подготовиться к остановке. После этого дорожку нужно выключить вручную.

Для меня это важно: дорожка не тормозит резко, и нет риска потерять равновесие из-за неожиданной остановки. Даже такой простой сценарий делает тренировку заметно удобнее и безопаснее.

Дорожка помогает поддерживать форму
Дорожка помогает поддерживать форму

Интеграция неинтегрируемых электроприборов

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

В итоге решил использовать косвенные признаки — отслеживать потребление электроэнергии.

На фазный провод я установил трансформатор тока и написал правило: если потребляемая мощность падает до нуля и остается такой не меньше пяти минут, система считает, что стирка завершилась, и подает голосовое уведомление.

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

По тому же принципу я контролирую посудомоечную машину и духовой шкаф. Такой подход работает практически с любой техникой, даже если у нее нет интерфейсов для интеграции.

Кормушка для кошки
Кормушка для кошки
Дополнительные фото
Кофе-машина на кухне
Кофе-машина на кухне
Колонка с Алисой на кухне
Колонка с Алисой на кухне
Автоматический дозатор мыла и сушилка для рук в санузле
Автоматический дозатор мыла и сушилка для рук в санузле
Какая квартира айтишника обходится без пиводильника
Какая квартира айтишника обходится без пиводильника
Рабочее место в гостиной легко превращается в диджейский пульт
Рабочее место в гостиной легко превращается в диджейский пульт
Винный шкаф в гостиной
Винный шкаф в гостиной
Лестница на второй уровень квартиры
Лестница на второй уровень квартиры
Комната на первом уровне
Комната на первом уровне
Выдвижной шланг пылесоса
Выдвижной шланг пылесоса
Сам пылесос на лоджии
Сам пылесос на лоджии

Мой фетиш: пульт управления

С детства мне нравились кнопки, тумблеры и переключатели. Я всегда любил собирать вокруг себя панели с физическими органами управления — «крутилками», клавишами и рычажками.

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

Например, компьютер я включаю настоящим замком зажигания от «Москвича-412». Контакты «стартера» подключены к кнопке включения ПК.

Вторая группа контактов заведена на дискретный вход модуля WB-MR6C. Когда я поворачиваю ключ, система активирует отдельный режим: включает панель управления и разрешает управление домом с программируемой клавиатуры.

Получился не просто рабочий стол, а полноценный аппаратный интерфейс управления.

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

Пульт управления умной квартирой в моем кабинете
Пульт управления умной квартирой в моем кабинете
Дополнительные фото
Есть и настоящий ключ зажигания
Есть и настоящий ключ зажигания
Отдельное внимание я уделил мультирум акустике
Отдельное внимание я уделил мультирум акустике
Я за работой
Я за работой
На столе специальная клавиатура с командами
На столе специальная клавиатура с командами
Различные кнопки и тумблеры
Различные кнопки и тумблеры
Еще кнопки
Еще кнопки
У меня много раритетных модулей, часть еще используется
У меня много раритетных модулей, часть еще используется
За рабочим столом я сижу в автомобильном кресле, как пилот гоночного болида
За рабочим столом я сижу в автомобильном кресле, как пилот гоночного болида

Щит

Щит — это центральная точка системы: сюда сходятся все кабели и здесь установлена вся автоматика. 

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

Розетки я не объединял в группы — каждую линию завел отдельно в щит. Это увеличивает объем кабеля и количество реле, но дает адресное управление: любую нагрузку можно включать и отключать отдельно. 

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

Сейчас в щите установлено почти сто модулей:

  • релейные модули;

  • модули дискретных входов;

  • диммеры;

  • измерительные устройства;

  • блоки питания.

Модули разных поколений работают вместе: часть установлена много лет назад и до сих пор используется, новые появляются по мере необходимости. Систему я расширял постепенно — вместе с новыми задачами. 

Модули в щите
Модули в щите
Дополнительные фото
Модули в щите
Модули в щите
Щиты установлены за дверцами слева, а справа за поворотом расположена лестница на второй уровень
Щиты установлены за дверцами слева, а справа за поворотом расположена лестница на второй уровень
Состав щита

Используемые модули Wiren Board

Модуль

Функции в системе

WB-MR6C / WB-MR6C v.2

Релейные модули для управления нагрузками (освещение, розетки)

WB-MR3-HV

Трехканальный релейный модуль с входами 230 В

WB-MR6LV/I

Шестиканальный релейный модуль для низковольтных нагрузок

WB-MR3LV/I / WB-MR3LV/S

Релейные модули для низковольтных цепей с различными типами входов

WB-MR14

14-канальный релейный модуль 

WB-MR11

Релейный модуль предыдущего поколения

WB-MRWM2

Двухканальный релейный модуль с измерением параметров нагрузки

WB-MDM3

Трехканальный диммер освещения

WB-LED

Диммер светодиодных лент

WB-MAP6S

Многоканальный измеритель электрических параметров 

WBIO-DI-WD-14

Модуль дискретных входов

WBIO-DO-R10A-8

8-канальный релейный модуль

WBIO-DO-R1G-16

16-канальный релейный модуль для слаботочных нагрузок 

WBIO-DO-R3A-8

Релейный модуль средней мощности

WB-MIO

Преобразователь интерфейсов для подключения модулей WBIO по RS-485 (Modbus)

Wiren Board 5

Контроллер раннего поколения 

Wiren Board 8

Основной контроллер

Программные особенности реализации

Моя система состоит из нескольких уровней.

Контроллер Wiren Board — это нижний уровень логики. Он выполняет сценарии и реагирует на события. По сути, это «спинной мозг» системы: все работает локально и практически без задержек.

Уровнем выше работает Home Assistant. Его я использую для интеграций. Через него подключены мультимедиа, телевизоры, аудиотехника, роутеры, принтеры, погодная станция и другие устройства, которые напрямую не поддерживаются Wiren Board. Через HA также отправляются push-уведомления на смартфон.

Недавно у меня появился отдельный сервер для локального искусственного интеллекта. Сейчас я постепенно интегрирую его в систему.

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

Работа без экрана

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

Сейчас основная программа для меня — NVDA (NonVisual Desktop Access). При перемещении по интерфейсу с клавиатуры она озвучивает элементы, на которых находится фокус.

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

В контексте умного дома NVDA дает мне возможность не только управлять системой, но и постоянно ее дорабатывать: писать код, конфигурировать устройства и тестировать сценарии.

Проблема доступности интерфейсов

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

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

Чтобы интерфейс оставался доступным, разработчики должны соблюдать стандарты WCAG или ГОСТ Р 52872-2019.

Я сам тестирую различные решения на доступность, но это уже тема для отдельной статьи.

Где я пишу логику

Для работы с системой я использую несколько инструментов:

  • встроенный веб-интерфейс Wiren Board 8;

  • движок правил wb-rules;

  • веб-интерфейс Home Assistant;

  • конфигуратор Wiren Board для работы с конфигурационными файлами.

Несмотря на возможности Home Assistant, основную логику я пишу именно в wb-rules.

Почему не Home Assistant

В Home Assistant сценарии обычно пишутся на Python. С точки зрения screen reader этот язык доступен, но у него есть особенность — строгая зависимость от отступов.

Каждая строка должна иметь правильное количество пробелов. Формально это не проблема, но на практике при работе с большими сценариями на сотни строк ошибиться очень легко.

Почему WB Rules

В WB Rules используется JavaScript (EcmaScript), и такой проблемы там нет.

Я могу писать код так, как удобно мне: выравнивать все по левому краю и ориентироваться по фигурным скобкам. По ним я быстро понимаю структуру сценария и легко нахожу ошибки.

С точки зрения доступности и скорости работы такой подход для меня намного удобнее.

Как я помог команде Wiren Board улучшить доступность интерфейса

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

Когда я начал активно работать с Wiren Board, быстро выяснилось: даже хороший веб-интерфейс может быть неудобным для незрячего пользователя.

Проблема обычно не в отсутствии функций, а в деталях:

  • скринридер не понимает, где находится фокус;

  • кнопка визуально выглядит нормально, но для программы экранного доступа остается «неизвестным объектом»;

  • часть элементов нельзя использовать с клавиатуры;

  • после открытия окна или вкладки фокус «теряется»;

  • у полей ввода нет подписей.

Поэтому я начал напрямую отправлять разработчикам замечания по конкретным проблемам и проверять изменения после исправлений.

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

Вместе с командой Wiren Board мы постепенно сформировали набор практических правил, которые теперь используют при разработке компонентов интерфейса.

Набор практических правил

Кнопки

Кнопка должна:

  • получать фокус;

  • работать с клавиатуры;

  • корректно озвучиваться скринридером.

Если у кнопки нет текстовой подписи, нужно добавить aria-label.

❌ Неправильно

<div onClick={save}>Сохранить</div>
<button type="submit"><save-icon></button>

✅ Правильно

<button type="button">Сохранить</button>
<button type="submit" aria-label="Сохранить"><save-icon></button> 

Если кнопка открывает модальное окно или разворачивает скрытый блок, важно правильно связать элементы между собой через aria-haspopup, aria-controls и aria-expanded. 

❌ Неправильно

<!-- Кнопка открытия модалки -->
<button type="button">Редактировать в модальном окне</button>
<!-- Модальное окно -->
<div id="edit-dialog" hidden>Содержимое диалога</div>
<!-- Кнопка раскрытия -->
<button type="button">Развернуть скрытый текст</button>
<!-- Скрытый блок -->
<div hidden>Скрытый текст</div>

✅ Правильно 

<!-- Кнопка открытия модалки -->
<button
  type="button"
  aria-haspopup="dialog"
  aria-controls="edit-dialog"
>
  Редактировать
</button>

<!-- Модальное окно -->
<div
  id="edit-dialog"
  role="dialog"
  aria-modal="true"
  aria-labelledby="edit-title"
  hidden
>
  Содержимое диалога
</div>

<!-- Кнопка раскрытия -->
<button
  type="button"
  aria-expanded="false"
  aria-controls="details"
>
  Развернуть скрытый текст
</button>

<!-- Скрытый блок -->
<div id="details" hidden>
  Скрытый текст
</div>

Тогда screen reader сможет озвучивать состояние элемента и объяснять пользователю, что именно происходит. 

Поля ввода 

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

❌ Неправильно

<div>IP адрес</div>
<input type="text" />

✅ Правильно

<label for="ip">IP адрес</label>
<input id="ip" placeholder="Введите IP" type="text" />

Уведомления

Обычные всплывающие сообщения screen reader часто просто игнорирует. Поэтому уведомления нужно помечать через aria-live или role="status". 

❌ Неправильно 

<div>Сохранено</div>

✅ Правильно

<div aria-live="polite">Сохранено</div>

После этого скринридер автоматически зачитает сообщение. 

Панель вкладок

Панель вкладок должна полностью работать с клавиатуры и корректно озвучиваться. 

❌ Неправильно 

<div>Tab 1</div>
<div>Tab 2</div>
<div>Контент 1</div>
<div>Контент 2</div>

✅ Правильно

<div role="tablist">
  <button
    role="tab"
    id="tab-1"
    aria-selected="true"
    aria-controls="panel-1"
    tabindex="0"
  >
    Tab 1
  </button>

  <button
    role="tab"
    id="tab-2"
    aria-selected="false"
    aria-controls="panel-2"
    tabindex="-1"
  >
    Tab 2
  </button>
</div>

<div
  id="panel-1"
  role="tabpanel"
  aria-labelledby="tab-1"
>
  Контент 1
</div>

<div
  id="panel-2"
  role="tabpanel"
  aria-labelledby="tab-2"
  hidden
>
  Контент 2
</div>

В таких интерфейсах особенно важно правильно управлять фокусом — иначе пользователь просто «теряется» внутри страницы. 

Модальные окна

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

Пример, когда фокус не выходит за границы модального окна

❌ Неправильно

<div class="modal">
  Содержимое диалога
</div>

✅ Правильно 

<dialog id="dialog">
  Содержимое диалога
</dialog>
dialog.showModal();

Кнопка «Перейти к содержанию»

При навигации с клавиатуры пользователь каждый раз проходит через весь верхний интерфейс: меню, логотипы, панели навигации.

Чтобы не нажимать Tab десятки раз, используют кнопку «Перейти к содержанию». Обычно она скрыта визуально и появляется только при навигации с клавиатуры. Это небольшая деталь, но она сильно ускоряет работу со сложными веб-интерфейсами.

Заключение

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

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

Меня часто спрашивают: «Ну что, все настроил и теперь просто лежишь на диване?». На практике все наоборот. Как только я дописываю один сценарий, сразу появляется идея для следующего.

Наверное, в этом и есть главный смысл — не прийти к состоянию «все готово», а постоянно двигаться дальше.

Поэтому я не уверен, что вообще когда-нибудь захочу сказать: «Я сделал все». Пока есть идеи и задачи — есть развитие.

Если коротко: мечтайте, автоматизируйте и не бойтесь сложных решений. Если код работает — значит, все сделано правильно.