Я хочу поговорить с вами о наболевшем. О теме, которая очень популярна в последнее время и стала отчасти предметом для спекуляций, недомолвок и зачастую откровенного обмана. Я хочу поговорить о умных домах.
Что такое «умный дом»? Вопреки уверениям некоторых производителей, это вовсе не «возможность выключать свет с телефона». Умный дом — это нечто, что снимает головную боль с тех, кто живет в нем. Какая умность заключается в возможности выключать свет со смартфона? Для пользователя это всего лишь еще один выключатель, такой же, как настенный, только, сенсорный и лежит обычно в кармане. Если для включения света в комнате пользователю все равно надо осознать факт «надо включить свет», понять-найти, где выключатель, и лишь после этого в него ткнуть — то умности в доме тут ни на грош. И тут уже нет разницы, где именно находится включатель, который надо ткнуть — на стене, висит на ключах в виде брелка, или лежит в качестве смартфона в кармане.
Нет. «Умность» дома, это когда человеку не надо даже думать о том, что надо включить свет, а он включается сам.
Когда не надо помнить, что уходя из дома, надо снизить температуру отопления и выключить весь свет. Когда кондиционер летом и обогреватель зимой сам включается незадолго до возвращения домой. Когда ночью по дороге в туалет свет сам включается с малой яркостью, чтобы не бил по глазам. Когда все это управляется с единого интерфейса… стоп. Кажется, я забежал немного вперед. Давайте пока поговорим немного о том, как можно примерно определить, насколько ваш дом умный.
Условно, технологии умного дома можно разделить на несколько «стадий». Заранее скажу, что такое разграничение нигде, кроме этой статьи, не используется, и служит только для демонстрации различий разных систем.
► Первая стадия
Первая стадия — это совсем «глупые» системы, когда выключатель управляет устройством напрямую. Уровень «ноль». Максимум, что можно сделать тут сколько-нибудь умного, это проходные выключатели, с помощью которых можно сделать безумно крутую вещь — проходя по коридоре, включить свет выключателем в его начале, а потом выключить в конце. Сарказм моде офф.
Основной критерий, по которому системы можно отнести к этой условной «первой стадии» — у каждого устройства есть выключатель, который им управляет. Устройства же могут управлять только сами собой, исходя из внутренней логики(как холодильник автоматически включается и выключается, поддерживая нужную температуру).
► Вторая стадия
Второй стадией можно назвать схемы на разных реле. Тут уже можно делать логику сложнее, например, кнопки «Включить все» и «Выключить все». Сюда же можно отнести лампы с датчиками движения, или, например, ворота гаража с радио-пультом.
Критерий этой стадии — это отдельное управления каждым типом устройств. Если это выключатель света, то он управляет только светом. Если в лампе есть датчик движения — то он управляет только этой лампой, и ничем больше. Хотите, чтобы освежитель воздуха работал только тогда, когда никого нет в туалете — придется купить освежитель воздуха с датчиком движения, и работать они с лампой будут независимо друг от друга. Пультиком от гаражных ворот вы сможете управлять только гаражными воротами, если хотите удаленно выключить свет, то нужен будет второй пульт для света. Если у вас два кондиционера в доме — вы будете вынуждены управлять ими по отдельности.
Используя, например, ПЛК, можно сделать что-то вроде 2.1 — с несложной логикой и таймерами, но единой системы все равно не будет.
► Третья стадия
Третья стадия «умности» домов — дома, построенные(полностью или частично) на разных шинах — например, DALI, KNX, MODBUS, CAN и так далее(хотя, я ни разу не видел умных домов на MODBUS и CAN — это промышленные протоколы, заточенные немного под другое). Это уже гораздо более умные системы — за счет того, что у всех устройств есть единый интерфейс и стандарт связи, они могут уже гораздо больше общаться друг с другом.
Например, к шине KNX можно подключить одновременно выключатели, светильники, контроллеры жалюзи, контроллер ворот, кондиционер и автоматику полива.
Главный признак этого поколения — универсальное управление. Устройства уже могут управлять другими устройствами. Больше нет понятия «выключатель света», есть просто «выключатель». Одним и тем же настенным пультом с равным успехом могут управляться как люстры в гостинной, так и настраиваться температура кондиционера или теплого пола. Этим же пультом можно настроить громкость колонок и открыть ворота гаража — все зависит от того, какие адреса для управления вводятся в пульт при настройке. И устройствами может управлять не только пульт — точно такую же команду «включить свет» может отправить и датчик движения.
Кстати, датчик движения, в этом случае, будет нужен только один, а все остальные устройства смогут пользоваться его данными, так как сидят с ним на одной шине. Минус такой системы в том, что она не очень расширяемая — адреса пультов и исполнительных устройств жестко вводятся в память каждого устройства, и без знаний о системе и специфичного софта для настройки вы уже не сможете легко изменить конфигурацию системы. Если вы в этом не разбираетесь, то для того, чтобы изменить функцию выключателя, вам придется вызывать инсталляторов вашей системы умного дома.
Еще один минус это то, что такие системы обычно раздроблены — каждое устройство знает только о том, что ему необходимо. Термостат, например, знает о температуре на улице, о влажности дома, но совершенно не в курсе того, какое текущее энергопотребление квартиры и включена ли плита на кухне.
Казалось бы, зачем термостату знать, включена ли плита на кухне? А вот и нет, в случае большого дома с несколькими кондиционерами может сложиться ситуация, когда включение трех кондиционеров, чайника, насоса и плитки просто выбьет автомат на входе в дом. Поэтому, прежде чем включать очередного мощного потребителя энергии, неплохо бы узнать, какой ток уже потребляют все остальные устройства, и либо отключить что-то маловажное, либо подождать.
К недостаткам этой системы можно отнести то, что для любого нового функционала в нее приходится добавлять дополнительные блоки. Хотим включать свет по сложному таймеру — покупаем, устанавливаем и конфигурируем таймер. Хотим управление с телефона — нужен дополнительный блок для сопряжения шины с каким-нибудь сетевым протоколом — Ethernet или WiFi.
Таким образом, мы плавно переходим к четвертой стадии умных систем — система с центральным контроллером. Разумеется, такое деление очень условно, потому что в жизни, как я уже говорил, встречаются чаще всего гибриды вышеперечисленных вариантов. Например, когда в одной комнате выключатели, освещение и контроллеры штор подключены к KNX, на кухне лампочка, управляемая со смартфона, котлом в подвале управляет ПЛК и кучка реле, а на крыльце свет вообще включается выключателем. Куда отнести такой гибрид — не знаю.
Так вот, системы с центральным контроллером.
► Четвертая стадия
Как их узнать, понятно по названию — их отличает неких хаб, центральное устройство, которое содержит в себе всю логику. Выключатели на стенах уже не подают питание на лампочку, и даже не отправляют лампочке команду «зажгись». Они сообщают контроллеру «Нажатие кнопки на выключателе №1», а контроллер, получая это сообщение, сверяется со своей логикой, и отправляет команду уже непосредственно устройству: «блок питания №2, зажги лампу №1».
Ну и конечно, логика контроллера не ограничивается примитивным сопоставлением «кнопка №1 — лампочка №3». Она может включать в себя сколько угодно сложные скрипты, обрабатывающие информацию с датчиков, например «ЕСЛИ нажата кнопка, И датчик на улице говорит, что там темно, то зажечь свет в коридоре и на улице. ЕСЛИ нажата кнопка, И датчик на улице говорит, что там светло, зажечь свет только в коридоре. Выключить весь свет через пять минут».
В общем, на контроллер можно просто завести все выходы и все входы, а дальше просто писать любую логику:
1)Обработка данные с датчиков движения. Когда дома никого нет — охранные функции. Когда дом с охраны снят — автоматически включать свет в туалете и коридоре.
2)Получение данные с датчиков температуры и управление котлом отопления и теплым полом. С информацией от датчиков движения контроллер знает, есть ли дома люди, и в случае, если их нет, понижает температуру для экономии топлива. А при поломке котла, он замечает резкое снижение температуры и оповещает владельца, предотвратив разморозку системы отопления. Летом тот же самый контроллер включает кондиционер за час до приезда хозяина, с одной стороны сэкономив электроэнергию, а с другой стороны — обеспечив прохладу дома.
Кроме этого, контроллер дает возможность проще(и дешевле) стыковать разные системы — например, датчики могут работать по Z-Wave, кнопки на стенах по EnOcean, данные с пользовательских устройств собираться по BLE, а лампы управляться по DALI.
Минус этой системы, пожалуй, только в том, что если центральный контроллер выключается, то дом не просто становится глупым, в нем становится невозможно жить. Поэтому стабильность работы становится довольно важным фактором в выборе контроллера. Под стабильностью работы я имею ввиду как отлаженность программной части, так и проектирование железа в расчете под постоянную бесперебойную работу в течении многих лет без необходимости проверять и производить обслуживание.
Конечно, разными хитростями можно избежать ситуации «у нас умер контроллер, и теперь мы не можем ни включить свет, ни открыть воду(потому что датчик протечки тоже завязан на контроллер)». Самое простое решение — добавить в систему «ручные» выключатели, которые будут посылать команды системам, минуя контроллер. Они не будут использоваться в обычной жизни, но в проблемной ситуации всегда можно будет открыть щиток и включить свет.
Пример из реальной жизни:
Решение в офисе Mail.ru, где для управления освещением используется система с центральным контроллером: светильники на шине DALI управляются с настенных планшетов, интерфейс для которых реализует контроллер Logic Machine 2. Схему управления можно представить вот в таком виде:
В «железе» это выглядит вот так:
Голубая стрелка — это сам контроллер, зеленая — шлюз Modbus-DALI, желтая — DALI-передатчик, запрограммированный на команды «включить свет» и «выключить свет», синяя — кнопка, подключенная к передатчику.
Таким образом, при поломке контроллера, сети или настенных пультов, система продолжает свою работу, правда, в несколько урезанном режиме. В ней по-прежнему можно включать и выключать свет, но делать это только кнопками. Тут эти кнопки расположены в щитке серверной, однако, ничего не мешает подключить DALI-передатчики например к обычным настенным выключателям.
Если сделать так, то получится гибридная система. Выключатель света посылает команду не контроллеру, а так же светильнику. Отличие в том, что контроллер все равно видит эту команду и знает о том, когда она была подана, и горит ли сейчас лампа в гостинной. Это позволяет делать сложную логику, но система все равно остается работоспособной после отключения контроллера. Минус — тот же самый, что в системах с общей шиной: поменять назначение выключателя двумя командами становится уже невозможно.
► Что делаем мы
Собственно, пришла пора представиться. Мы — компания Embedded Systems, которая разрабатывает контроллеры для автоматизации и умных домов, известные на рынке под брендом Logic Machine.
Контроллер Logic Machine Re:actor 3
Мы делаем это уже 18 лет, и смеем надеяться, что накопили большой опыт как в понимании того, какие устройства нужны рынку и пользователям, так и в разработке встраиваемых систем.
Сейчас мы хотим рассказать вам о нашем новом проекте — Logic Machine Wall, контроллере для «малой» домашней автоматизации.
В отличии от старших собратьев, он больше ориентирован на беспроводные протоколы — Z-wave, BLE, EnOcean, а из проводных имеет только OneWire и Ethernet. За счет отказа от промышленных протоколов(KNX, Dali, Modbus) его стоимость снизилась(если сравнивать со «старшими» контроллерами, то почти в десять раз), и стала доступной для любого энтузиаста умного дома.
Что наш контроллер может противопоставить конкурентам — хабам от Archos, Z-Wave.Me, Prestigio, Wink, SmartThings, Iris и так далее?
► Во-первых, элегантное решение по передаче данных внутри системы — технологию объектов, взятую из промышленного протокола KNX. Никаких переменных, баз данных с прямым доступом, файлов для сохранения состояния между перезагрузками, ничего такого, за чем надо было бы следить. Но, в то же время, гибкость и удобство.
Объекты, если говорить просто, это такие глобально-системные переменные, обладающие адресом, именем, типом данных, содержимым и еще несколькими настройками.
Пример: Страница объектов в панели управления моего домашнего LM
Что важно: объекты имеют строго определенные типы(например, boolean, 2 bit, scale, angle, RGB color, 3 byte date и так далее), которые частично определяют то, что можно делать с этим объектом: если это boolean, то его можно переключать, если scale — то устанавливать значение от 1 до 100, если RGB color, то выбирать цвет. Это позволяет очень быстро и просто создавать и изменять визуализации, а так же передавать данные внутри системы, не отвлекаясь на создание собственных стандартов.
► Во-вторых, очень гибкое решение для создания пользовательской логики — систему скриптов. Скрипты это программы на языке Lua, который достаточно прост, и уже успел заслужить признание в разных областях — от встраиваемых систем до игровых движков.
Пример: Часть скрипта, обрабатывающего логику включения света у меня дома
С одной стороны, такой способ программирования логики сложнее в освоении, чем выбор в меню, как, например, описанный тут. Но с другой стороны, полноценный скрипты дают очень большую гибкость в построении логики — в одном скрипте можно собрать десяток параметров, запросить внешний сервер, тут же все обсчитать, и включить свет или обогрев.
► В-третьих, система создания визуализаций. За счет интересных решений(о которых я обязательно расскажу позже) она одновременно простая и гибкая. Самую простую визуализацию можно сделать за буквально за 5 минут, и она будет хорошо смотреться как на компьютере, так и на телефона. Для этого достаточно всего лишь указать, какие объекты должны в ней присутствовать, а система сама сделает все остальное.
Пример: Так называемая «touch visualization», на создание которой ушло порядка 10 минут
Уровнем выше вам предоставляется поле, на котором вы можете как располагать картинки, объекты, текст, внешние ссылки, mjpeg-потоки с камер наблюдения, фреймы, и так далее.
Пример: Сложная кастомная визуализация
Ну, и наконец, если вам нужно что-то большее, вы можете генерировать HTML-страницы вручную, используя тот же язык Lua, и управляя их содержимым как угодно, вплоть до сложных многопользовательских сайтов с Ajax.
► В-четвертых, для подключения внешних устройств существует универсальный интерфейс драйверов, который позволяет(с помощью тоже же Lua) легко писать интерфейсы взаимодействия с другими системами и устройствами, подключающимися по BLE, TCP, HTTP, и другим протоколам. Его мы тоже обязательно рассмотрим в следующих статьях.
Суммируя вышесказанное, можно представить систему «умного» дома в очень упрощенно виде такой схемой:
Мы видит тут несколько разноплановых задач, который легко решаются с помощью LM. Первая — это интеграция разных протоколов. Датчик освещения подключен по Z-Wave, а беспроводной диммер — по BLE. Внешний сервер статистики/мониторинга принимает данные по TCP, а визуализация для подключенных устройств работает по HTTP. А на самом нижнем уровне все превращается в универсальные объекты, с которыми можно делать что угодно.
Напоследок я оставил еще несколько «фишек» нашей компании, которые, как мне кажется, будут интересны потенциальным пользователям нашей системы:
► Промышленные решения
Изначально мы пришли на этот рынок с промышленными решениями, и для нас одним из очень важных характеристик устройств является надежность работы. В условиях, когда на твоем оборудовании работает свет, СКД и системы жизнеобеспечения зданий, отказ оборудования выливается в простой мощностей(будь то это завод, в котором отказала система вентиляции, или офис, в котором нет освещения). Любой серьезный простой — это рекламация инсталлятору/интегратору, которая автоматически снижает доверие к устройствам производителя.
В таких условиях любой производитель или учится делать надежные решения, или уходит с рынка и умирает. Мы все еще живы.
Конечно, для домашнего применения надежность уже не играет такой роли, как для, например, завода. Если контроллер ломается у вас дома, то почти всегда есть время на замену или покупку нового. Однако, согласитесь, гораздо приятнее осознавать, что оборудование у вас дома гарантированно проживет 10 лет, чем думать о запланированном устаревании.
Кроме того, концепция надежности подразумевает не только надежность железа как такового, но и возможность наиболее быстро восстановить работу системы при каких-то проблемах. В том числе это означает и средства резервного копирования/восстановления, которые позволяют быстро ввести в строй замену умершему или убитому оборудованию.
► Локальная поддержка
Одной из самых важных вещей для изучения новой технологии является документация и поддержка. И с тем, и с другим у нас все хорошо: есть достаточно подробные руководства для программистов и разработчиков, библиотека примеров кода и разработанных решений, а ключевые моменты документации существуют на русском языке.
Наша локальная вики для документации(скоро будет выложена в общий доступ)
Более того, ключевые разработчики русскоязычные или понимают русский язык, что очень положительно влияет на скорость реакции на действительно сложные вопросы или на баг-репорты.
► Не продукт, но платформа
А еще мы не ограничиваемся просто производством пользовательского продукта. Мы создаем платформу, экосистему, в рамках которой разработчики могут создавать проекты, используя наши контроллеры. Мы никогда не скажем «вот вам интерфейс пользователя, а все что глубже — трогать нельзя». Мы с вниманием относимся к нуждам каждого разработчика и готовы принимать предложения, помогать, обучать, и делать кастомизированные решения(как в программном смысле, так и в аппаратном) под нужды клиентов. Мы хотим дать разработчикам инструмент, который бы позволил им зарабатывать, создавая умные дома для клиентов на наших решениях — по сути, превратить заинтересованных людей в мини-инсталляторов, умеющих делать интересные проекты автоматизации и умных домов. Благо(как мы покажем в следующих статьях), это совсем не сложно.
► Better Call Saul
Если вы разработчик железа для умного дома, и ваша железка уже продается, пишите солу мне на vvzvlad@gmail.com. В рамках нашей программы Сompanion & Сompatible мы заключаем партнерства с производителями и поставщиками устройств умного дома, предоставляя API и SDK для написания драйверов, консультируем в процессе написания драйверов, и после окончания работ добавляем драйвер в стандартную поставку контроллера, а ваши устройства в список совместимых. После этого вы тоже сможете ставить шильдик «Compatible with LM» на вашу продукцию.
Если у вас разработка устройств для умного дома только в планах, то тоже пишите мне на vvzvlad@gmail.com. Расскажем как делать устройства с максимальным функционалом, поможем советом, подскажем ответы на животрепещущие вопросы, чтобы не получались вот такие устройства :)
Если вы инсталлятор или планируете им стать… да, вы угадали. Пишите! У нас есть курсы по обучению программированию под LM, на которых вы сможете научиться и попрактиковаться в разработке.
Автор: LogicMachine Foundation