Об умном доме
Я строю умный дом в своей новой квартире и буду описывать процесс здесь.
Название
Во-первых: я недолюбливаю это движение с названиями Интернет Чего-то, IoT, IoE и так далее. Всё это просто рекламная фигня и не несёт никакой смысловой нагрузки.
Наиболее подходящим названием, по моему мнению, будет "промышленная автоматизация", однако оно применимо только к промышленности, где никого не интересует цена, совместимость или возможность подключения к другим системам. Я имею в виду, что пытаясь внедрить автоматизацию на завод по производству стали, вы готовы заплатить скажем за создание нового сетевого стандарта или выпуска кабеля нового типа, если он понадобится. Однако, когда вы просто хотите несколько улучшить качество своей жизни, приходится идти на некоторые компромиссы.
В целом это просто автоматизация домашней жизни, однако я собираюсь расширить эту систему ограниченными возможностями по самостоятельному принятию решений, поэтому могу гордо называть её Умной, собственно получается Умный Дом.
Ключевые моменты
Моё видение умного дома базируется на нескольких ключевых вещах
Полностью самодельный
При создании умного дома нельзя использовать никаких серийных решений от известных брендов.
- Безопасность
Уже есть поговорка "The letter S in IoT stands for Security" (буква "S" в аббревиатуре "IoT" обозначает Безопасность). И это правда: крупные производители не обращают ни малейшего внимания на безопасность их решений, на данный момент их цель — наводнить рынок огромной массой устройств и заставить пользователей покупать их, с помощью рекламы.
- Отношение к пользовательским данным
Любая компания, будь это огромная корпорация, вроде Google, или небольшой стартап, в первую очередь хочет собирать ваши данные. Все устройства, которые вы можете купить преследуют ровно одну цель: собрать все возможные данные, чтобы заставить рекламу работать более эффективно (или кому-нибудь эти данные перепродать). И в целом я не слишком беспокоюсь о рекламе (всё равно я не целевая аудитория), но, поскольку практически в каждом сервисе и устройстве есть уязвимости и дыры в безопасности, эти данные доступны всем желающим, что уже совсем нехорошо.
- Зависимость от интернет-подключения
Практически все серийные решения для умного дома жёстко требуют наличия интернет-подключения для работы. Это абсолютно неприемлемо: даже если не принимать во внимание цензурирование интернета в России, которое не так давно просто выключило все устройства для умного дома от Xiaomi, дома невозможно иметь провайдера со стопроцентной доступностью, быть уверенным, что ничего не случится с проводом и так далее.
- Настраиваемость
Этот пункт сейчас относится практически ко всему оборудованию: вы больше не покупаете устройства, вы берёте их в аренду. Каждый производитель делает всё возможное, чтобы заманить вас в свою экосистему и там закрепить, запретить вам менять настройки, поведение по умолчанию, и тому подобное. Это может быть вполне допустимо для больших закупок вместе с поддержкой и, скажем при оборудовании бизнес-центра, когда вы можете подписать подходящий контракт и производитель согласится на донастройку под ваши цели. Однако это довольно плохо, когда у вас всего лишь квартира или дом и вы просто хотите управлять вашими устройствами так, как вам нравится.
Полная автономность
Система, которую я создаю, будет полностью автономной и не будет требовать ничего, кроме электроэнергии для работы:
- Соединения с интернетом не требуется
Использование облака для управления умным домом — очень плохая идея, как я уже говорил выше. Локального сервера должно быть достаточно для работы всех систем.
- Соединение с интернетом не используется при работе
Для увеличения безопасности, все устройства должны быть подключены к отдельной, физически изолированной сети, чтобы ни одна уязвимость нулевого дня не могла повлиять на работу умного дома.
- Сервер не требуется
Даже если сервер упал, у устройств должна быть возможность аварийного управления. Повторюсь: единая точка отказа — не вариант.
- Отсутствие беспроводной связи
Все устройства должны быть подключены по проводам.
Достигнуть этого не слишком сложно, когда вся система строится с нуля, однако этот подход решает множество проблем:
- Независимость от окружения, что сейчас в больших городах уже является проблемой: например частоты wi-fi забиты и качество соединения не слишком хорошее.
- Невозможен взлом снаружи: нужно физически войти в комнату и подключиться к сети.
- Решение проблемы с питанием датчиков: когда вы используете какой-нибудь ESP8266, приходится думать о питании и либо постоянно менять батарейки, либо организовывать электрическую розетку, что не менее ужасно.
Полностью открытое и свободное программное обеспечение
Из моего личного опыта, решения на основе открытого ПО — лучшее решение, когда вы понимаете, что вы делаете. Я не фанатичный последователь GPL, однако, когда есть возможность самому управлять поведением программы, любую проблему всегда решить сильно проще. Можно, конечно, попробовать купить проприетарное решение, которое будет работать прямо из коробки, да ещё и иметь великолепный дизайн (а может быть даже и поддержку первое время), однако как только вы захотите что-нибудь настроить чуточку не так, как хочет хозяин (производитель, не вы), вы попали. А ещё вы никогда не узнаете, что находится внутри и что устройство сделает в следующий момент, а самая худшая часть — у вас нет возможности об этом узнать.
Дополнительные плюсы
Настраиваемость
Не уверен, насколько широко должен распространяться этот пункт, но я не сторонник подхода "сделал раз, работает вечно". Мы живём в меняющемся мире, поэтому запихивать провода внутрь бетонных стен — не мой выбор. С другой стороны, я прекрасно понимаю, что пойду и на это, если будет значительная разница в цене.
Если же речь о ПО, то не вижу никакой проблемы, открытый исходный код полностью решает эту проблему.
Воспроизводимость
Со стороны производителей и разработчиков компонентов я ожидаю подробной технической спецификации, а не просто руководства пользователя с несколькими примерами, как любят делать некоторые компании. Как я уже упоминал, я хочу иметь возможность управлять каждый устройством в системе и иметь возможность заменить его чем-нибудь другим.
Со своей стороны, постараюсь описывать все мои приключения в этом блоге и публиковать исходный код и описание железа, создаваемое в процессе. Чем больше историй успеха (или провала) напишем мы, тем больше возможностей мы дадим тем, кто придёт за нами. Я считаю такую возможность поделиться опытом замечательной штукой.
There is an english version