Программное обеспечение для умного дома / Хабр
Всем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:
Включение и выключение ZWave лампочки через мобильное приложение |
|
При появлении устройства в сети (по приходу пользователя домой) происходит включение ZWave лампочки, релейного модуля Modbus RTU, запуск компьютера через WakeOnLan и включение ТВ |
|
Запуск браузера, переход на яндекс.радио, |
Вкратце:
1. Основная часть ПО — сервер, который крутится на ОС Windows, написан на C#;
2. Клиент на ОС Android, написан на Java;
3. Планируются клиенты на UWP и IOS, web-клиент.
Некоторые особенности ПО:
1. Конструктор сценариев. Создание сложных сценариев с циклами и условиями;
2. Работа с устройствами ZWave и Modbus;
3. Вложенность сценариев. Можно один сценарий использовать в другом в качестве процедуры;
4. Запуск удаленного сценария. В сценарии текущего сервера можно запускать сценарий удаленного;
6. Запуск сценариев с помощью смартфона.
Конструктор сценариев
Программа позволяет создавать как сложный сценарий, так и одиночное действие.
Одиночное действие — это сценарий, который содержит только одно действие. В нем нет возможности создавать циклы и условия, а можно лишь “замапить” определенное действие на кнопку в UI клиента.
В качестве примера приведу свой способ их использования: создал категорию “Розетки”, в ней собрал все лампы, бытовой вентилятор, светильники, телевизор и компьютер. Теперь, чтобы включить одно из этих устройств, следует открыть клиент на андроиде, зайти в категорию “Розетки” и выбрать соответствующий пункт меню.
Обычно, одиночные действия использовать неудобно, так как различные устройства удобно запускать при каком-то условии или хотя бы не по одному. Именно для этого нужен “сложный сценарий”, о чем далее.
Конструктор сложного сценария позволяет создавать сценарии с циклами и условиями. Имеет два режима: просмотр и редактирование.
Пример сценария в режиме просмотра |
Пример сценария в режиме редактирования |
ЕСЛИ и ИНАЧЕ в конструкторе. В данных конструкциях можно создавать цепочки условий с логическими операторами НЕ, ИЛИ, И. Конструктор позволяет создавать группу условий и использовать операторы непосредственно с группой. Если условие остается пустым, то оно автоматом вычисляется как ложь.
Есть некоторое количество встроенных проверок (такие как проверка на дату, время и т.д.), а также некоторое количество в качестве подключаемых модулей.
Цикл ПОКА в конструкторе. Цикл состоит из условия и тела. Условие создается аналогично тому, как он создается в конструкции ЕСЛИ (группы условий, операторы НЕ, ИЛИ, И).
Оператор ЕСЛИ и возможные условия |
Оператор ПОКА |
Тела ЕСЛИ, ИНАЧЕ и ПОКА нужно чем-то заполнять. Собственно, это содержимое и есть самое важное в сценарии. |
Основное окно конструктора сценариев |
Также можно настроить следующие параметры сценариев:
— Запуск извне (вкл/выкл), позволяет запретить или разрешить запуск сценария с другой машины или из клиента;
— Автоматический запуск сценария при старте системы;
— Выбор категории сценария, позволяет отображать в UI клиента пункт меню для запуска сценария в определенной категории.
Работа с устройствами ZWave и Modbus
На данный момент система поддерживает устройства ZWave (на основе openzwave) и Modbus RTU (на основе nmodbus).
В моей программе модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.
Рынок ZWave устройств достаточно широк. Имеется множество исполнительных устройств, таких как релейные модули, лампочки, устройства для работы с кондиционером, терморегуляторы, регуляторы теплого пола, розетки, переключатели. Так же существует множество датчиков: датчик открытия двери, температуры, датчик протечки, датчик присутствия и т.д. В качестве контроллера ZWave можно использовать USB stick. |
|
Основное окно ZWave модуля |
|
Окно выбора контроллера и операций с ним |
|
Выбор узла (датчики, переключатели и т.д.) |
|
Выбор параметра узла (включен/выключен, различные числовые параметры, такие как температура, влажность и т.д.) |
Modbus — это проводной протокол, применяемый для связи между электронными устройствами, которые его поддерживают. В контексте нашей программы может быть полезен для работы с релейными модулями, для чего я его и использую у себя дома.
Релейный модуль Modbus. Соединяется с контроллером через COM-порт |
|
Основное окно Modbus RTU модуля |
Вложенность сценариев
Вложенность сценариев используется для декомпозиции сценариев умного дома. Часто бывают такие ситуации, когда одно действие участвует во многих сценариях (например, отключение всех бытовых устройств может происходить по нажатию на пункт меню в программе, по сценарию выхода всех wi-fi устройств из сети, просто по таймеру), и поэтому каждый раз создавать (или править) одинаковый алгоритм в каждом из сценариев не представляется удобным. Для этого существует такое встроенное действие, которое позволяет запускать уже созданный сценарий в текущем. Также это может быть удобно, когда часто добавляются новые бытовые устройства (или другие частые изменения в алгоритме работы “умного дома”), для изменения работы всех сценариев достаточно будет изменить лишь один сценарий, который используется в них.
Действие «Существующий сценарий» в списке |
Выбор существующего сценария |
Запуск удаленных сценариев
Посредством запуска удаленных сценариев можно запускать сценарий одного сервера в сценарии другого. В качестве примера хочу привести мой вариант использования этого функционала: создал сценарий (на домашнем сервере) под названием “свет+мультимедиа”, который включает свет в помещении, запускает мой десктоп (используя WakeOnLan), включает тв, к которому подключен десктоп и ждет пока на нем (десктопе) запустится экземпляр нашей программы, затем запускает на ней сценарии “включить музыку” и “звук на 20 единиц” с помощью запуска удаленных сценариев.
«Запуск удаленного сценария» в списке |
Выбор сервера и его сценария |
Написание собственных модулей
Помимо того, что пользователь может создавать сложные сценарии штатными средствами, программа позволяет “расширять” ее пользовательскими модулями на C#. Все элементы действий и проверок в сценариях (такие как “Проверка по дате”, “Показать сообщение”, “Действие Modbus”, “Действие ZWave” и т.п.) это классы, унаследованные от ICustomAction и ICustomChecker. Следуя определенным правилам, любой пользователь может создать свой модуль, который может быть как очень простым (например, озвучивание текущей температуры воздуха за окном), так и сложным, за которым может крыться целый фреймворк. Достаточно наследоваться от интерфейсов ICustomAction или ICustomChecker, расставить несколько атрибутов, скомпилировать DLL и добавить в программу через вкладку “МОДУЛИ” (полная инструкция создания модулей).
Вкладка «МОДУЛИ» |
Запуск сценариев с помощью смартфона
*пока только OS Android
Сценарии отображаются на главном экране и в категориях. Категория является виртуальной “папкой”. При запуске сценария обновляется статус соответствующей кнопки.
Экран настроек соединения |
Экран с запуском сценариев |
Помимо этого, есть возможность запускать сценарии из меню быстрого запуска на PC.
Меню быстрого запуска |
В дальнейшем планируется клиент для UWP, IOS, web, а так же голосовой модуль для управления устройствами (планы на ближайшее будущее) и создания сценариев с помощью голоса (стратегические планы).
Видео напоследок:
» Страничка программы
» Ссылка для скачивания
» Инструкция для пользования
» Инструкция для создания собственных модулей
P.S.: Если нашли ошибку в программе, то пожалуйста, перешлите её на почту.
Программное обеспечение для умного дома #2 / Хабр
Всем добрый день! Продолжая идею моего старого поста, я разработал программу, которую можно использовать в качестве системы для управления умным домом.
Чтобы сразу заинтересовать читателя, продемонстрирую некоторую часть сценариев использования ПО:
СЦЕНАРИИ
Lazurite позволяет создавать триггеры и сложные сценарии с условиями и циклами, т.е. пользователь может «запрограммировать» программу с помощью встроенного конструктора на любые свои нужды.
Любой сценарий имеет свой переключатель в пользовательском интерфейсе — «плитку». В зависимости от типа данных сценария переключатель будет выглядеть по-разному.
Примеры переключателей сценариев.
>> Подробнее о типах данных и переключателях.
Помимо этого, в Lazurite существует три разновидности сценариев: одиночное действие, сложный сценарий и удаленный сценарий.
Окно выбора типа создаваемого сценария.
Одиночное действие
Одиночные действия — это сценарии, не требующие сложной логики, такие как включение света или изменение уровня звука с помощью «плитки» в меню переключателей. В таком сценарии не получится создать цикл или условие, в нем можно лишь привязать отдельное действие из плагина (о них ниже) к переключателю.
Конструктор одиночного действия на примере создания переключателя ModbusRTU.
Сложный сценарий
Сложный сценарий — это сценарии со сложной логикой, в котором есть циклы и условия.
>> Подробно о создании сложного сценария.
Пока влажность в комнате меньше или равна 40%, то регулировать влажность.
Сложный сценарий на примере работы с Z-Wave устройствами.
Сложное условие с группами и сравнениями числовых значений.
Удаленный сценарий
Lazurite имеет встроенный сервер, на котором крутится WCF-сервис. Именно это позволяет клиентским приложениям получать информацию о сценариях и выполнять некоторые действия. Но, помимо этого, к серверу Lazurite может подключиться другой сервер Lazurite и использовать сценарии удаленного сервера. Для того, чтобы использовать этот функционал, необходимо создать удаленный сценарий.
Поддержка удаленных сценариев позволяет создать сеть из устройств с установленным Lazurite. Т.е. в сценарии одного сервера можно вызывать сценарии или получать значения сценариев другого сервера.
Например, в большом доме можно создать распределенную систему, в которой несколько узлов с установленным Lazurite будут стоять на разных этажах (комнатах, корпусах), с которыми будет связываться центральное устройство Lazurite. Администратор сконфигурирует систему и решит, насколько будут самостоятельными подчиненные устройства, будут ли они использоваться как простые исполнители или же в них будет заложена некоторая автономность.
ТРИГГЕРЫ
Триггеры — это определенные действия, которые запускаются при наступлении особых условий. От сценария отличаются тем, что не имеют типа данных и не имеют «плитки». Спусковым крючком для запуска триггера является изменение выбранного сценария, т.е. если мы захотим выполнить какие-либо действия при изменении температуры, изменении влажности, появлении пользователя дома и т.д., то нам нужно будет создать триггер на соответствующий сценарий. Конструктор триггера является копией конструктора сценариев, там можно создавать циклы, условия, действия.
Триггер на срабатывание датчика движения.
ДЕЙСТВИЯ
Любая строка, добавляемая в конструкторе сценария, является «действием». Каждый плагин, устанавливаемый в Lazurite, добавляет в программу некоторые новые возможности — действия. Любая работа с Z-Wave, Modbus, геолокацией и т.д. производится через этот функционал. Соответственно, любое действие, как и сценарий, имеет свой тип данных.
>> Список всех действий в Lazurite.
Окно выбора действия в конструкторе сценария.
БЕЗОПАСНОСТЬ
В Lazurite можно настроить доступ к просмотру и изменению значения сценария. Это может быть нужно, когда мы создаем пользователя в системе для нашего гостя или когда просто хотим скрыть сценарий, который выполняет вспомогательные функции и не должен быть отображен пользователям.
Окно настройки безопасности сценария.
Для настройки безопасности доступны следующие пункты:
- «Запретить для любого использования»;
- «Запретить для всех групп, кроме…» — запрет на использование сценария пользователям, не состоящим в выбранных группах;
- «Запретить для всех пользователей, кроме…» — запрет на использование сценария для всех пользователей, кроме выбранных;
- «Запретить для групп» — запрет на выполнение для выбранных групп пользователей;
- «Запретить для запуска из сети» — сценарии с этим ограничением не могут быть отображены в клиентских приложениях и не могут быть использованы как «удаленный сценарий»;
- «Запретить для меню быстрого запуска» — сценарий не будет отображаться в меню быстрого запуска;
- «Запретить для пользователей» — запрет на выполнение для выбранных пользователей;
- «Запретить использовать из другого сценария/триггера» — сценарий не может быть выполнен в другом сценарии или триггере.
По умолчанию любой сценарий запрещен для запуска из сети и для меню быстрого запуска.
ПОЛЬЗОВАТЕЛИ И ГРУППЫ
Пользователи в Lazurite являются неотъемлемой частью системы. Не имея учетной записи, пользователи не смогут получить доступ к нужным сценариям и управлять устройствами в доме. Если бы не было аутентификации, то любой человек подключился бы к системе и выполнил любые сценарии, что крайне нежелательно.
Для удобства настройки безопасности сценария пользователей можно объединять в группы, например, можно создать группу «Гости» и запретить этой группе выполнение некоторых сценариев.
>> Подробнее о пользователях и группах.
Z-WAVE
Z-Wave — это беспроводной протокол связи, использующийся в домашней автоматизации. Для реализации протокола используются миниатюрные маломощные радиочастотные модули. Сейчас на рынке ZWave представлен довольно обширный перечень устройств, таких как ZWave лампочки, розетки, релейные модули, переключатели, замки, датчики температуры (влажности, движения, протечки), терморегуляторы, устройства управления кондиционером и т.д. Также распространены мультисенсоры — устройства, сочетающие несколько датчиков (например, датчик освещенности, присутствия, температуры, дверной датчик и т.д.), что весьма привлекательно с точки зрения финансовых затрат и расположения в помещении.
В Lazurite модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.
На изображении выбран узел, мультисенсор — ZW100, затем выбран его пользовательский параметр, с помощью которого можно измерить температуру в комнате.
После того, как будет создан сценарий, использующий этот узел, появится плитка с информацией о температуре.
>> Подробнее о Z-Wave в Lazurite.
СТАТИСТИКА
Lazurite имеет функционал, который позволяет вести историю значений разных сценариев (например температура в гостиной, влажность в комнате, уровень ультрафиолета, обнаружение движений). Пользователь может выбрать сценарии, по которым необходимо вести статистику, затем посмотреть на графиках их динамику за определённый промежуток времени.
Отображение статистики в виде графиков.
Отображение статистики в виде круговой диаграммы.
>> Подробнее о статистике.
ГЕОЛОКАЦИЯ ПОЛЬЗОВАТЕЛЯ
В Lazurite присутствует функционал GPS-трекера. Любое клиентское приложение отправляет информацию о геоданных на сервер Lazurite, где эти данные можно обработать, сохранить и отобразить. Действия, представленные в плагине UserGeolocationPlugin, созданы для работы с геолокацией пользователей и позволяют вычислять такие значения, как расстояние пользователя до места, нахождение пользователя в определенном месте и т.д.
Некоторые действия предполагают наличие не только пользователя, но и места, или «локации», которое должно быть заведено и настроено в программе. Таким местом может быть дом, работа, город, станция метро. Действия с таким параметром нужны для того, чтобы произвести какое-либо действие по появлению или отдалению пользователя от этой «локации». Место имеет три параметра: координаты центра, радиус и наименование.
Пример созданных мест (дом и работа) и маршрут пользователя между ними в выбранную дату.
Позицию пользователя можно просматривать через приложение Lazurite на смартфоне.
Помимо этого, можно вести историю перемещений, если добавить соответствующий сценарий в статистику.
Перемещения пользователя за большой промежуток времени.
>> Подробнее о плагине.
>> Подробнее об истории перемещений.
РАЗНОЕ
В программе присутствует возможность создавать сценарии для обмена сообщениями между пользователями и получать нотификации от системы о разных событиях.
Окно отображения входящих сообщений.
Отправка сообщения другому пользователю.
Помимо этого, присутствуют разные другие функции, например Wake-on-Lan, эмуляция мультимедиа клавиш на Windows, управление звуком на Windows, работа с процессами Windows, управление устройствами Modbus и т.д.
О том, как создавать плагины, можно узнать здесь.
Дальнейшее развитие системы на данный момент видится следующим образом:
- модернизация архитектуры программы будет проведена таким образом, чтобы можно было использовать готовые движки или сервисы распознавания речи как плагины;
- дальнейшая декомпозиция и модернизация функционала плагинов и сценариев в будущем позволит создавать сценарии с планшета или смартфона;
- планируется создать модуль видеонаблюдения, в котором был бы функционал записи видео, трансляции видеопотока на мобильные устройства, распознавание движения и т.д.
>> WIKI проекта
>> Веб-сайт проекта
>> На GOOGLE PLAY
>> Последняя версия
Open Source — бесплатный умный дом. Качай и пользуйся
Выводы
Основной вывод — вам придется подтягивать свои навыки программирования. Придется читать много на английском языке, так как оказывается даже самые «безумные», на первый взгляд, автоматизации для вашего дома, кто-то уже придумывал и задача так или иначе была решена. Но придется продираться через обсуждения различных вариантов решений задачи, и они будут содержать значительные куски кода, которые вам надо будет переписывать под себя. Это не так сложно, как может показаться, но занимает много времени. Хотя это, скорее, полезный навык в сегодняшних реалиях, когда даже для простейших автоматизаций в HomeKit уже необходимо понимание машинной логики. Иначе никак.
Второй основной вывод — бесплатность. С одной стороны — вам не придется покупать программное обеспечение. С другой — вы будете тратить свое время, а оно тоже стоит денег. Поэтому все подобные решения можно считать условно-бесплатными. К тому же, на железо все равно придется тратиться. Просто выбор намного богаче. И это несомненный плюс.
Третий основной вывод — установленная система без датчиков и исполнительных устройств вам ничего не даст. Вам все равно нужно покупать устройства. Плюс в том, что вы теперь не ограничены одним производителем и вольны выбирать любые подходящие вам решения. И подключать устройства вы сможете как через купленные ранее шлюзы (если они поддерживают эту функцию), так и через USB стики для соответствующих протоколов. Полная свобода.
Поэтому если вы все-таки решили остановить свой выбор на OpenSource решениях, то на данный момент, среди нашего сообщества, наибольшей популярностью пользуются 3 системы: Home Assistant, Homebridge и MajorDoMo.
Если вы хотите немного покодить, хотите хорошую поддержку большинства устройств, продаваемых на рынке, большое и дружное сообщество, которое вам всегда поможет, то ваш выбор — это Home Assistant.
Если перед вами стоит задача только сделать доступными ваши устройства в приложении Дом на вашем iPhone или iPad, то ваш выбор очевиден — HomeBridge. Возиться с кодом все равно придется, но намного меньше, чем в других вариантах.
Если вам нравится веб интерфейс, вы придерживаетесь классических подходов к визуализации, немного знаете язык программирования PHP и обладаете временем и терпением, то ваш выбор — MajorDomo.
Если хотите более функциональную систему с красивым дизайном, но с плохой русскоязычной поддержкой, то это openHAB.
Хотите систему функциональную, но более менее поддерживаемую русскоязычным сообществом, но с убогим дизайном, Domoticz — ваше все. Хотя, сомнительный выбор.
Ну и если вы хотите программировать визуально, то для вас подходит NodeRed.
А вот если для вас определяющим выбором является голосовой ассистент, с помощью которого вы хотите управлять своим умным домом, то в принципе Open Source системы как раз являются лучшим выбором для интеграции, так как у них, обычно, есть поддержка нескольких ассистентов одновременно. И это огромный такой плюс для тех, у кого члены семьи пользуются, например, и Android и iPhone.
Home Assistant интегрируется с Яндекс Алисой, Siri и Google Assistant
HomeBridge — только Siri и Яндекс Алиса
OpenHAB — Яндекс Алиса, Google Assistant и Siri
MajorDomo — Яндекс Алиса, Google Assistant и Siri
ioBroker — Яндекс Алиса, Siri и Google Assistant
Domoticz — Siri и Google Assistant
NodeRED — вообще с чем угодно, зависит от того, как вы его ставите и с чем он взаимодействует.
Так что выбор за вами. Удачи!
Мы попросили Вадима Ерёмина, руководителя департамента «Гаджеты и инновации», рассказать о его опыте построения умного дома. Под катом только то, что было проверено на собственном опыте.
Но сначала несколько слов о протоколах и стандартах, а затем про производителей и конкретные модели.
Wi-Fi, Bluetooth, ZigBee, Z-Wave
На данный момент самые популярные устройства умного дома используют технологии Wi-Fi, Bluetooth, ZigBee и Z-Wave. У каждой из технологий есть свои плюсы и минусы, и никто не запрещает использовать их вместе, компенсируя недостатки каждой. Но для разных задач и разных типов умных устройств используются разные технологии.
Например, в бытовой технике (телевизор, холодильник и кофеварка) обычно используют Wi-Fi или Bluetooth, которые также есть в любом телефоне. Причина — этой техникой пользуются, даже не имея полноценной системы умного дома. Для автоматизации освещения и климата больше подходят встраиваемые модули ZigBee или Z-Wave, так как они специально разработаны для интеграции с существующим световым и климатическим оборудованием. Но для их полноценной работы нужен специальный хаб.
Wi-Fi
Без Wi-Fi не обойтись в IP-камерах, телевизорах, аудио/медиа-плеерах и другой технике для передачи видеосигнала. Конечно, Wi-Fi может использоваться и в выключателях света, датчиках, термостатах, но отсутствие ретрансляции сигнала и высокое энергопотребление не позволяют делать на нем датчики, работающие годами. Каждый производитель для своего Wi-Fi-устройства, будь то умная лампочка, чайник, холодильник или робот-пылесос, выпускает свое собственное приложение, и нет единого стандарта, чтобы управлять всей техникой из одного приложения. Это не позволяет сделать умный дом только на Wi-Fi по-настоящему удобным.
Bluetooth
Актуальная версия Bluetooth Low Energy 4.2 имеет малое энергопотребление, благодаря этому работают крошечные беспроводные наушники, колонки и различные датчики на батарейках. Проблемы тут те же что и с Wi-Fi: отсутствие общего стандарта управления вынуждают каждого производителя делать свое собственное приложение, что неудобно для пользователя. Очень важная для умного дома технология Mesh (ячеистая сеть) появилась только в версии 5.0, которая еще мало где используется, но, возможно, будущее умных домов именно за Bluetooth LE 5.
ZigBee
ZigBee изначально разрабатывался для применения в сетях из датчиков, таких как счетчики электроэнергии, воды, газа, датчики температуры. Топология сети может быть разная, в том числе ячеистая (mesh). Это означает, что любой датчик видит все другие датчики и может передавать сигнал через них, т.е. использовать ретрансляцию, что сильно увеличивает надежность передачи. В 2007 году появился стандарт команд для управления умным домом, так называемый профиль «Домашней автоматизации». С ZigBee выпускают почти все устройства для создания домашней автоматизации: реле, диммеры, лампы, термостаты, замки, датчики. Но бытовых приборов типа холодильников и телевизоров с ZigBee вы не найдете. По сравнению с другими протоколами для умного дома у ZigBee-устройств самые привлекательные цены, однако отсутствие 100% совместимости между устройствами и хабами разных производителей не позволяет собрать умный дом только на ZigBee.
Z-Wave
Беспроводной протокол, разрабатываемый с 2001 года специально для домашней автоматизации. Главным его преимуществом является полная совместимость между устройствами разных производителей. Так датчик движения от Fibaro может управлять диммером Qubino, а вся автоматизация при этом базироваться на контроллере RaZberry от Z-Wave.Me. На данный момент продается более 3000 разных Z-Wave устройств, которые покрывают все нужды умного дома. Это самый популярный протокол для объектов площадью от 10 до 500 м². В Z-Wave, так же как и в ZigBee, используется топология mesh с поддержкой ретрансляции сигнала и автоматическим нахождением лучшего маршрута. Главный минус — цена. В среднем, стоимость устройства составляет 60-80 евро, что примерно вдвое выше, чем у аналогов с ZigBee.
Популярные производители
С каждым годом технологии умного дома завоевывают все больше фанатов. Ассортимент стремительно растет, и выбрать действительно есть из чего, даже не обязательно заказывать заграницей. Когда начинаешь планировать сборку умного дома обычно возникает вопрос, а какие производители есть на рынке? Чье решение выбрать? Чем один отличается от другого?
Xiaomi
Одним из самых популярных производителей умных устройств является Xiaomi. В их ассортименте присутствуют почти все бытовые приборы подключаемые к умному дому, а также специализированные IP-камеры, розетки и лампочки, различные датчики (температуры, влажности, CO2) и многие другие устройства.
Xiaomi не применяет какую-то одну беспроводную технологию для своих устройств, а выбирает оптимальную для каждого типа. Например, для управления освещением, розетками и шторами используется ZigBee, и для их подключения обязательно нужен хаб от Xiaomi с поддержкой этого протокола. Телевизоры, пылесосы и IP камеры подключаются по Wi-Fi через роутер, ведь не всем нужен полноценный умный дом, а Wi-Fi есть почти у всех.
Датчики температуры, влажности, качества воздуха и замки работают по Bluetooth. Такие устройства можно подключить напрямую к телефону и только просматривать показания, а можно подключить к хабу Xiaomi с поддержкой Bluetooth, тогда появляется возможность использовать датчик в сценариях управления климатом.
Казалось бы, умный дом от Xiaomi отличное решение, ведь компания предлагает множество хороших устройств для создания умного дома и удобную настройку автоматизации. Но хаб Xiaomi не позволяет настраивать сложную автоматизацию и использовать скрипты. Только ZigBee-устройствами можно управлять с телефона без интернета (через хаб), а вот Wi-Fi лампы и розетки работают только через интернет. Снять эти ограничения позволяют ZigBe-хабы других производителей.
Apple
Apple не производит устройства для умного дома, но она создала протокол HomeKit, который используют другие производители для создания совместимых устройств. HomeKit-устройства работают по протоколам Bluetooth и Wi-Fi. С поддержкой HomeKit выпускаются замки, термостаты, модули управления освещением, RGBW-лампы, камеры и множество датчиков. Помимо устройств существуют еще и шлюзы, которые преобразуют команды от устройств ZigBee и Z-Wave в команды HomeKit. Такие шлюзы есть у Xiaomi, Ikea, Philips и многих других. Благодаря этому расширяется ассортимент устройств для умного дома от Apple. Пока что возможности автоматизации у Apple очень скромные и не позволяют создать абсолютно произвольный сценарий. Однако большим преимуществом является интеграция HomeKit с голосовым ассистентом Siri. Также HomeKit, по понятным, причинам не подходит пользователям Android.
Fibaro
Fibaro — производитель самых популярных Z-Wave-устройств и центров домашней автоматизации. Все устройства Fibaro имеют множество настроек и дополнительных функций. В линейке оборудования присутствуют датчики открытия, движения, протечки, дыма, микро-модули реле, диммеры, rgbw и др. Контроллер домашней автоматизации Home Center 2 имеет приятный и понятный пользовательский интерфейс и позволяет настроить сценарии любой сложности. Т.к. протокол Z-Wave предусматривает совместимость между устройствами разных производителей, то Fibaro может работать с любыми другими Z-Wave-устройствами.
Выбор устройств: личный опыт
Вадим Ерёмин, руководитель департамента «Гаджеты и инновации» в М.Видео-Эльдорадо
Перед выбором устройств нужно определиться с задачами, которые будет решать умный дом. Мне потребовалось в основном обезопасить и частично автоматизировать загородный дом. Вот на каких устройствах я остановился:
Наиболее простой гаджет, с которого я начал — умная лампочка. Поскольку потолочные светильники подключаются к электросети напрямую, достаточно вкрутить лампу в патрон.
Смарт-лампы позволяют регулировать яркость света, цвет и цветовую температуру. Благодаря светодиодам они невероятно энергоэффективны, а срок службы может превышать 10 лет.
Разумеется, лампы можно сделать ещё умнее. Например, вставив в цепь датчик движения.
Умный свет Rubetek RL-3103 1990р.
Примеры устройств:
Датчики температуры и влажности. Выезжая на дачу, проверяю температуру в доме и при необходимости могу задать нужные параметры. Дистанционное управление особенно удобно для поддержания минимального тепла, чтобы трубы зимой не промёрзли.
Включив этот датчик в схему умного дома, также можно автоматизировать запуск увлажнителя воздуха, кондиционера, обогревателя, мойки воздуха и прочей климатической техники.
Примеры устройств:
Датчик открытия дверей и окон. Конечно, безопасность превыше всего. Контактный сенсор, закрепил на оконные рамы и дверь. Хотя его главная задача — сообщать о несанкционированном проникновении, датчик пригодится, к примеру, чтобы дать команду на отключение кондиционера, когда открывают окно.
У нас на даче несколько датчиков на каждом этаже. Если кто-то попытается проникнуть в дом, я получу уведомление на смартфон. С него также удобно подключаться к камере слежения и активировать сигнализацию, чтобы спугнуть воров и подать знак соседям.
Smart home Perenio Датчик открытия дверей/окон (PECWS01) 1690р.
Примеры устройств:
Датчик дыма. Установил в гостиной с камином. Использую в паре с температурным датчиком. Он обеспечивает противопожарную безопасность, регистрируя задымление. В автономном режиме может выступать в роли пожарной сирены и кроме того, дать команду на отключение электроприборов при возгорании.
Smart home Perenio Датчик дыма (PECSS01) 2990р.
Примеры устройств:
Датчик протечки воды. Ему место в ванной, под мойкой на кухне, у стиральной машины или отопительной батареи — словом, везде, где может случиться протечка. Потоп — дело серьёзное, и эти датчики лучше всего устанавливать с электромагнитными кранами. В случае неприятности датчик скомандует крану перекрыть воду.
Примеры устройств:
Датчик движения. Регистрирует движение людей и животных по тепловым волнам. Не реагирует на собак и кошек. Устройство можно прикрутить на один саморез или приклеить к стене на двухстороннюю клейкую ленту. Одной батарейки хватает примерно на 2-3 года в зависимости от частоты срабатывания. Датчик настолько компактен, что почти незаметен в коридоре и санузле.
Smart home Hommyn Сенсор движения (MS-20-Z) 2390р.
Примеры устройств:
Задачи «умного дома» часто сводятся в к включению или отключению электроприборов — без умных розеток тут не обойтись. Они играют роль переходника от обычной комнатной розетки к прибору и не требуют монтажа.
Умная розетка TP-Link HS100
Функционал таких розеток довольно широкий. Так, Hommyn PL-20-W, Rubetek RE-3301 и TP-Link HS100 могут включать электроприборы по таймеру, например, во время действия самого выгодного тарифа. И, конечно же, собирают статистику по энергопотреблению.
А ещё можно использовать умное реле Rubetek RE-3312 — к нему можно подключить что угодно, от духовки до тёплого пола.
Есть еще приборы, встраиваемые в систему и без умных розеток. У нас на кухне несколько устройств из экосистемы Redmond на платформе Ready For Sky, в частности, смарт-чайник и мультиварка. Сварить кашу, не вылезая из кровати, или вскипятить чайник, не отрываясь от газонокосилки — проще простого.
А теперь самое важное
Производителей много, датчиков, розеток и лампочек — еще больше. Они все используют разные технологии, и, чтобы объединить их в одну систему, понадобится дополнительное устройство — шлюз. Он играет роль центра сети, собирает данные со всех датчиков, отправляет их в облако для доступа через смартфон, перенаправляет команды между устройствами.
Но есть и проблема. Единого стандарта для объединения разных устройств в одну систему не существует. Поэтому придётся либо остановиться на каком-то одном производителе с его экосистемой, либо строить умный дом с помощью IoT-роутера, который поддерживает сразу несколько протоколов: Wi Fi, Z-wave, Zigbee, Bluetooth — например, Rubetek CC1.
Голосовое управление устройствами. Достаточно сказать «включить свет» и свет включится, даже если вы находитесь на другом конце Земли
Чтобы не морочить себе голову протоколами и шлюзами, проще всего купить готовый комплект решений для умного дома. Например, комплект Perenio PEKIT01 включает в себя шлюз, датчик дыма, датчик открытия двери, датчик движения и датчик протечек. В набор Rubetek RK-3515 входит то же самое, кроме датчика движения. Hommyn Антипротечка Pro KS-32-WZ — это датчики протечек, электроприводные краны, реле и шлюз.
В планах у меня еще протестировать несколько умных устройств, возможно, самые перспективные появятся в нашем ассортименте.
Замок
Начал подбор простого варианта, чтобы легко устанавливать без апгрейда самой двери. Модель Danalock V3 ставится вместо барашка, т.е. с обратной стороны двери обычная личинка, при такой установке никто не догадается, что у вас умный замок. Замок поддерживает управление по Z-Wave и Bluetooth. Это позволяет давать временный доступ к замку вашим родственникам или друзьям. Кроме Danalock V3 я бы установил датчик открытия двери Fibaro Door Sensor 2, теперь при закрытии двери замок автоматически закрывается через пять секунд.
Электрокарнизы
Для управления мотором штор или жалюзи есть микромодули от Fibaro, Zipato и Qubino. Я рассматриваю обычный мотор с фазным управлением и выбрал бы модуль Qubino Shutter, потому что у него больше всего функций. Модуль измеряет энергопотребление и может автоматически определить крайние положения у жалюзи. Бонус — синхронизирую с будильников в смартфоне, чтобы сразу проснуться и петь).
Открытое ПО для управления умным домом
По мере развития оказалось, что сетей из умных гаджетов и узлов на основе Arduino или других открытых микрокомпьютерных платформ недостаточно, чтобы построить полноценную систему умного дома. Нехватало центральных процессоров и качественных пользовательских интерфейсов, которые играют заметную роль в популярных проприетарных системах умного дома, таких как Control4 или Vantage. Благодаря усилиям энтузиастов по всему миру стали появляться открытые программные платформы, которые решают и эту проблему. В настоящее время среди таких DIY-платформ (Open-source DIY home automation platform) наиболее известны:
- OpenHAB — одна из наиболее популярных открытых платформ с большим и активным сообществом разработчиков и последователей. Платформа реализована на Java и из-за этого считается тяжеловесной. Вместе с тем, именно это обстоятельство позволяет разворачивать OpenHAB на любых системах с поддержкой Java (Windows, Linux, MacOS, Raspberry Pi, PINE и др.). Разработано большое количество драйверов под эту платформу для подключения самого разного оборудования. Поскольку платформа не ориентирована ни на одного производителя, то наличие драйвера под определенное устройство определяется в большей степени его популярностью. Чем более известен и распространен на рынке конкретный гаджет, тем выше вероятность, что под него уже есть (или скоро будет написан) драйвер под OpenHAB. Система имеет достаточно аскетичный дизайн, поддерживает голосовое управление, мобильные приложения для iOS и Android, интегрируется с Apple HomeKit (то есть управление возможно с устройств Apple вообще без установки каких-либо приложений). Имеется возможность увязать друг с другом события, происходящие в доме, и настроить поведение устройств в зависимости от таких событий.
- MajorDoMo — динамично развивающаяся открытая платформа, имеющая большое сообщество русскоязычных пользователей. MajorDoMo поддерживает множество протоколов связи и большое количество оборудования от различных производителей. В целом концепция MajorDoMo не сильно отличается от концепции OpenHAB, но она реализована на совершенно другой программной архитектуре. Здесь используется Apache + PHP + MySQL, что также позволяет развертывать MajorDoMo на множестве разных платформ (Windows, Linux, Raspberry Pi). Поддерживается голосовое управление, есть возможность интеграции с Apple HomeKit. В целом развитие MajorDoMo подпитывается теми же идеями, которые реализуются в системе OpenHAB. Вместе с тем, MajorDoMo больше ориентируется на русскоязычное сообщество, а в плане архитектуры обладает несколько большей гибкостью, но и требует более специфического программирования при построении системы умного дома. MajorDoMo может брать на себя любые фунции по управлению устройствами, реагировать на события, рассылать уведомления. Сервер с системой MajorDoMo по сути берет на себя роль главного процессора в системах с централизованной архитектурой.
- ioBroker — один из «новичков», который быстро завоевывает авторитет и популярность, благодаря своей продуманной и универсальной архитектуре. ioBroker разработан на платформе Node.js (также как и HomeBridge). Благодаря этому, его можно развернуть и запустить практически на любой операционной системе или виртуальной машине: Windows, Mac, Linux, в контейнере Docker и даже на Android. Это позволяет масштабировать систему исходя из потребностей. Система имеет визуальный редактор планов помещений. Легко интегрируется с любыми MQTT-серверами (или брокерами), а также сама выступает в качестве MQTT-сервера/брокера для IoT-устройств, поддерживающих протокол MQTT. Большой упор сделан на возможности удобной настройки и конфигурации, что по сути составляет не менее половины функциональности всей системы, в отличие от OpenHAB или, например, FHEM, где настройки задаются посредством конфигурационных файлов. Имеется русскоязычное сообщество.
-
IoT Manager — это программное обеспечение для домашней автоматизации, которое не является полноценной системой управления умным домом, но может использоваться как средство мониторинга и передачи простых команд посредством протокола MQTT. Продукт сфокусирован на визуализации управления, отображении графиков и пр. на мобильных устройствах. Сами мобильные приложения не имеют собственной логики, которая должна быть реализована исключительно в оконечных устройствах. Приложение обращается непосредственно к устройствам с использованием шины MQTT и через нее же получает ответы, которые тут же визуализирует в графическом виде. IoT Manager представляет из себя гибридное (не нативное) приложение, созданное с помощью Ionic Framework, на HTML5 и AngularJS, обмен с брокером реализован на Paho, который обеспечивает полное соответствие стандарту MQTT.
- Domoticz — еще одна широко известная и распространенная система управления умным домом. В сравнении с другими популярными системами, такими как OpenHAB или MajorDoMo, является предельно легковесной (не требующей значительных ресурсов в процессе работы) и при этом обеспечивает все основные функции. Domoticz написана на C/C++ с очень достойным графическим интерфейсом. Минусом данной системы можно считать ограниченный набор драйверов/модулей для поддержки различного оборудования. Система может быть развернута под Windows, Linux, MacOS, Raspberry Pi и др.
- Home Assistant (HASS) — одна из новых разработок с быстро растущим и вполне дружелюбным сообществом. Система написана на Python по идеологии, аналогичной Domoticz. Декларируется максимальная простота при широкой функциональности. Возможности системы расширяются с помощью плагинов. Для конфигурирования используется YAML. Система развертывается под Windows, Linux, MacOS, Raspberry Pi и др.
- HomeGenie — мощная и полнофункциональная система для домашней автоматизации. Написана с использованием C#, Python и Ruby. Включает сервер с web-интерфейсом и мобильные приложения для iOS и Android. Сервер может работать под управлением Windows, Linux, MacOS. HomeGenie поддерживает протоколы X10, Insteon, Z-Wave, Philips Hue, UPnP/DLNA, RFXCom, KNX, может взаимодействовать с внешними Web-сервисами и интегрировать все в рамках единого подхода. У системы есть неплохая документация, поддерживаются различные API для интеграции и добавления собственных расширений.
- FHEM — довольно популярная в Германии система, написанная на PERL. Система относительно проста, но вполне пригодня для автоматизации основных задач по управлению умными устройствами. Представляет из себя сервер, доступ к которому осуществляется посредством Web-интерфейса. Работает под управлением Linux, Windows или MacOS.
- Misterhouse — еще одна система автоматизации, написанная на PERL. Работает под управлением Linux, Windows или MacOS. Это одна из старейших открытых платформ, разработка которой начиналась еще в 1998 году. Поддерживает довольно широкий спектр протоколов и оборудования. Легко поддается глубокой кастомизации.
- Homebridge — это небольшой Node.js сервер, который эмулирует Apple Home Kit API и позволяет, благодаря сотням доступных плагинов, управлять с помощью устройств Apple устройствами, которые изначально не были предназначены для интеграции с Apple HomeKit. При этом основным достоинством данного сервера является то, что он может быть запущен практически на любом железе (обычный домашний ПК, небольшой сервер, микрокомпьютер типа RaspberryPi и т.п.).
Данный список является далеко не полным. Энтузиастами по всему миру также разработаны такие системы как: Calaos, DomotiGa, Freedomotic, Jeedom, MyController.org, PiDome, Pimatic и другие.
Важно понимать, что все перечисленные выше системы представляют из себя только лишь программные оболочки и предназначены для того, чтобы управлять каким-то оконечным оборудованием, из которого и состоят подсистемы умного дома. Концепция DIY предполагает совместное использование самых разнообразных устройств, в качестве которых могут выступать и умные гаджеты от известных производителей, и noname-оборудование со всех концов света, и какие-то подсистемы и исполнительные механизмы, полностью собранные пользователем самостоятельно из отдельных блоков и компонентов. Такая программная оболочка должна быть установлена на каком-то компьютере, в качестве которого может выступать обычный ПК или небольшой сервер. Очень часто в качестве упомянутого «сервера» принято использовать недорогие микрокомпьютеры типа Raspberry Pi или подобные.
Данный микрокомпьютер с установленной на нем программной составляющей становится по сути центральным процессором умного дома и берет на себя задачи по управлению логикой работы и взаимодействию различных подсистем умного дома. Для непосредственного взаимодействия с самими этими подсистемами управляющий микрокомпьютер должен быть оснащен соответствующими интерфейсами (Z-Wave, ZigBee, USB, Ethernet, Modbus, 1-Wire и т.п.).
DIY. Умный дом своими руками
Мы продолжаем цикл статей, которые помогут вам сделать выбор относительно того, каким образом вы хотите построить свой Умный дом. Если вы не совсем понимаете о чем речь, то советуем вам ознакомиться с первой статьей цикла, которая описывает наш взгляд на концепцию Умного дома. Что касается вариантов, из которых можно выбрать, то мы подробно разобрали самые популярные варианты создания умного дома в отдельной статье. А если вы все это уже читали, то тогда добро пожаловать в дивный новый мир самостоятельного создания собственных устройств для Умного дома, ведь DIY расшифровывается как «Do It Yourself», что в переводе означает «Сделай это сам».
Сама концепция DIY являет собой создание чего-то нового, ранее не существующего. С этого начинаются стартапы и новые, революционные продукты. С идеи, которая впоследствии воплощается в реально работающее устройство.
В разрезе Умного дома — это не только электронные компоненты, это напечатанные на 3D принтере детали и механизмы и многое другое. Причем даже если вы умеете работать только с деревом или металлом, то ничто не мешает вам придумать устройство для своего дома и сделать его в дальнейшем умным. Все довольно просто и чаще всего требуется просто собрать устройство по инструкции, и по ней же сделать определенные шаги по настройке. В целом это означает, что вам необходимо базовое умение так или иначе обращаться с паяльником (хотя и это не всегда необходимо) и обладать хотя бы минимальными навыками программирования (ну или просто понимать, как залить прошивку в контроллер, опять же — по инструкции).
А так как компоненты стоят феерически дешево, то конечная стоимость готового устройства получается настолько низкой, что если сравнивать с готовыми решениями — это окупает временные затраты (если вы конечно действительно получаете кайф от «ковыряния с железками»).
С учетом сложившейся практики, одними из самых популярных направлений DIY в сфере Умный дом, являются всего два:
Программа для управления всеми системами Умного Дома. Устанавливается на планшетный компьютер на Windows, Android, iOs. Подключается к контроллеру через Wi-Fi или интернет (протокол связи ModBus TCP).
Работает с практически любыми промышленными контроллерами, в том числе Beckhoff, ОВЕН, EasyHomePLC.
Интерфейс (внешний вид) программы полностью изменяем. Иконки, фоны, расположение элементов, надписи — всё изменяется самим пользователем или установщиком. Возможно создавать разный интерфейс для разных устройств. Количество устройств, на которые устанавливается программа в пределах одного контроллера, не ограничено.
Программа может быть установлена и настроена самостоятельно, не требуются знания программирования или обучение. Инструкции представлены с разделе «Документация» этого сайта.
Функции программы EasyHome:
- управление системами освещения (в том числе разноцветными светодиодными лентами и лампами с изменяемой яркостью свечения)
- управление климатом каждого помещения
- связь с системеми охранной и пожарной сигнализации
- связь с системами вентиляции и кондиционирования
- контроль потребляемой мощности по нескольким фазам с автоотключением неприоритетных нагрузок
- управление розетками и прочими электроприборами
- установка на любое количество устройств, управление через Wi-Fi или интернет
- контроль и предотвращения аварий: протечка воды, утечка газа, электроаварии
- сбор информации со счётчиков воды, газа и электричества
- управление по сценариям и предустановкам
- доступ к контроллеру через локальную сеть или через внешний IP адрес (автовыбор при запуске программы)
- отображение изображения с IP видеокамер (в версии для Windows, поддерживается видеопоток MJPEG и h364, не все модели камер)
- возможность запуска разных интерфейсов (запрос при запуске программы)
- интеграция с Open Hab для реализации голосового управления
… и многое другое!
Скачать EasyHome для iOS (iPhone и iPad): EasyHome для iPhone и iPad (ссылка на Apple AppStore)
Скачать EasyHome для Android: EasyHome для Android
Чтобы загрузить в приложение демонстрационную версию интерфейса, надо в окне добавления конфигурации набрать адрес:
http://easysmartbox.com/downloads/EH_DEMO.ehpa
Новое в версии EasyHome 7.9.8 для iOS (декабрь 2019):
- Добавлена поддержка h364 для ip камер
- Появилась возможность работы приложения как sip-клиент
- Улучшена страница загрузки проекта
- Добавлена поддержка http для загрузки проекта с сервера
- Улучшено отображение шрифтов на iOS
- Появилась возможность настройки второго (альтернативного) ip адреса в меню подключения
- Появилась возможность загрузки проектов через iCloud и передача между устройствами через Air Drop
- Множество мелких улучшений и исправлений в работе программы
Новое в версии EasyHome 7.9.5 для iOS:
- Добавлен удобный контрол светодиодной ленты RGB с выбором цвета
- Улучшена функция автомасштабирования элементов
- Улучшена панель аварийных сообщений
- Множество мелких улучшений и исправлений в работе программы
Новое в версии EasyHome 7.9.1 для iOS:
- Загрузка файлов конфигурации через интерфейс самой программы
- Выбор конфигурации при запуске и быстрая смена интерфейса
- Новый контрол управления RGB лентами
- Функция автоповорота экрана (удобно для iPhone)
- Прочие мелкие улучшения и исправления
Демо версия EasyHome 7.9.5 для Windows
Как пользоваться ДЕМО версией:
1. Скачать архив
2. Распаковать архив в любое место (например, на рабочий стол)
3. Запустить файл EasyHomeEditor.exe
В ДЕМО версии можно делать следующее: менять интерфейс, двигать элементы, перемещаться между окнами и т.д. Но поскольку связи с контроллером нет, то икноки не будут меняться при нажатии, а все значения (температуры, токи, состояния) будут равны нулю. Для возможности подключения к контроллеру надо приобрести лицензию (информация о цене — внизу этой страницы).
Новое в версии EasyHome 7.8:
- Возможность отправки контроллером произвольных смс-сообщений на русском языке для контроллеров ОВЕН (ранее было доступно только для Beckhoff)
- Появились свободные функции. Можно задавать любую логику работы входов и выходов через интерфейс EasyHome. Ранее это было доступно только через изменение кода контроллера нашим инженером.
- Появились мультисцены
- Добавлен удобный драйвер для работы с инфракрасными передатчиками по интерфейсу RS485. 4 режима управления любыми кондиционерами через ИК-команды.
- Возможность подключения инмерителя параметров электросети к контроллеру ОВЕН на одну или три фазы.
- Можно подключать до 10ти модулей расширения ОВЕН в любой комбинации, общее количество дискретных входов и выходов может быть теперь до 255.
- Появился астрономический датчик освещённости по высоте солнца.
- Всякие мелкие улучшения.
Новое в версии EasyHome 7.7:
- Многочисленные улучшения интерфейса
- Увеличение скорости работы на системах Windows 10 и iOS 9
- Появилась возможность перекрывания разных стояков водоснабжения при срабатывании разных датчиков протечки воды
- Появилась возможность постановки на охрану произвольного набора датчиков движения
- Появилась функция мультиинтерфейс — предзагрузочное графическое меню в котором можно выбрать, какой именно интерфейс запустить