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

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



Вкратце:

1. Основная часть ПО - сервер, который крутится на ОС Windows, написан на C#;
2. Клиент на ОС Android, написан на Java;
3. Планируются клиенты на UWP и IOS, web-клиент.

Некоторые особенности ПО:

1. Конструктор сценариев. Создание сложных сценариев с циклами и условиями;
2. Работа с устройствами ZWave и Modbus;
3. Вложенность сценариев. Можно один сценарий использовать в другом в качестве процедуры;
4. Запуск удаленного сценария. В сценарии текущего сервера можно запускать сценарий удаленного;
5. Возможность добавлять в систему свою функциональность посредством создания модулей;
6. Запуск сценариев с помощью смартфона.

Конструктор сценариев

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

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

В качестве примера приведу свой способ их использования: создал категорию “Розетки”, в ней собрал все лампы, бытовой вентилятор, светильники, телевизор и компьютер. Теперь, чтобы включить одно из этих устройств, следует открыть клиент на андроиде, зайти в категорию “Розетки” и выбрать соответствующий пункт меню.

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

Конструктор сложного сценария позволяет создавать сценарии с циклами и условиями. Имеет два режима: просмотр и редактирование.

Пример сценария в режиме просмотра
Пример сценария в режиме редактирования





ЕСЛИ и ИНАЧЕ в конструкторе . В данных конструкциях можно создавать цепочки условий с логическими операторами НЕ, ИЛИ, И. Конструктор позволяет создавать группу условий и использовать операторы непосредственно с группой. Если условие остается пустым, то оно автоматом вычисляется как ложь.

Есть некоторое количество встроенных проверок (такие как проверка на дату, время и т.д.), а также некоторое количество в качестве подключаемых модулей.

Цикл ПОКА в конструкторе . Цикл состоит из условия и тела. Условие создается аналогично тому, как он создается в конструкции ЕСЛИ (группы условий, операторы НЕ, ИЛИ, И).


Основное окно конструктора сценариев



Также можно настроить следующие параметры сценариев:

Запуск извне (вкл/выкл), позволяет запретить или разрешить запуск сценария с другой машины или из клиента;
- Автоматический запуск сценария при старте системы;
- Выбор категории сценария, позволяет отображать в UI клиента пункт меню для запуска сценария в определенной категории.

Работа с устройствами ZWave и Modbus

На данный момент система поддерживает устройства ZWave (на основе openzwave) и Modbus RTU (на основе nmodbus).

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

В моей программе модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.



Рынок ZWave устройств достаточно широк. Имеется множество исполнительных устройств, таких как релейные модули, лампочки, устройства для работы с кондиционером, терморегуляторы, регуляторы теплого пола, розетки, переключатели. Так же существует множество датчиков: датчик открытия двери, температуры, датчик протечки, датчик присутствия и т.д. В качестве контроллера ZWave можно использовать USB stick.


Основное окно ZWave модуля


Окно выбора контроллера и операций с ним


Выбор узла (датчики, переключатели и т.д.)


Выбор параметра узла (включен/выключен, различные числовые параметры, такие как температура, влажность и т.д.)

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

Вложенность сценариев

Вложенность сценариев используется для декомпозиции сценариев умного дома. Часто бывают такие ситуации, когда одно действие участвует во многих сценариях (например, отключение всех бытовых устройств может происходить по нажатию на пункт меню в программе, по сценарию выхода всех wi-fi устройств из сети, просто по таймеру), и поэтому каждый раз создавать (или править) одинаковый алгоритм в каждом из сценариев не представляется удобным. Для этого существует такое встроенное действие, которое позволяет запускать уже созданный сценарий в текущем. Также это может быть удобно, когда часто добавляются новые бытовые устройства (или другие частые изменения в алгоритме работы “умного дома”), для изменения работы всех сценариев достаточно будет изменить лишь один сценарий, который используется в них.

Запуск удаленных сценариев

Посредством запуска удаленных сценариев можно запускать сценарий одного сервера в сценарии другого. В качестве примера хочу привести мой вариант использования этого функционала: создал сценарий (на домашнем сервере) под названием “свет+мультимедиа”, который включает свет в помещении, запускает мой десктоп (используя WakeOnLan), включает тв, к которому подключен десктоп и ждет пока на нем (десктопе) запустится экземпляр нашей программы, затем запускает на ней сценарии “включить музыку” и “звук на 20 единиц” с помощью запуска удаленных сценариев.

Написание собственных модулей

Помимо того, что пользователь может создавать сложные сценарии штатными средствами, программа позволяет “расширять” ее пользовательскими модулями на C#. Все элементы действий и проверок в сценариях (такие как “Проверка по дате”, “Показать сообщение”, “Действие Modbus”, “Действие ZWave” и т.п.) это классы, унаследованные от ICustomAction и ICustomChecker. Следуя определенным правилам, любой пользователь может создать свой модуль, который может быть как очень простым (например, озвучивание текущей температуры воздуха за окном), так и сложным, за которым может крыться целый фреймворк. Достаточно наследоваться от интерфейсов ICustomAction или ICustomChecker, расставить несколько атрибутов, скомпилировать DLL и добавить в программу через вкладку “МОДУЛИ” (полная инструкция создания модулей).

Запуск сценариев с помощью смартфона

*пока только OS Android

Сценарии отображаются на главном экране и в категориях. Категория является виртуальной “папкой”. При запуске сценария обновляется статус соответствующей кнопки.

Экран настроек соединения
Экран с запуском сценариев





Помимо этого, есть возможность запускать сценарии из меню быстрого запуска на PC.
Меню быстрого запуска



В дальнейшем планируется клиент для UWP, IOS, web, а так же голосовой модуль для управления устройствами (планы на ближайшее будущее) и создания сценариев с помощью голоса (стратегические планы).

Видео напоследок:

P.S.: Если нашли ошибку в программе, то пожалуйста, перешлите её на

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



Вкратце:

1. Основная часть ПО - сервер, который крутится на ОС Windows, написан на C#;
2. Клиент на ОС Android, написан на Java;
3. Планируются клиенты на UWP и IOS, web-клиент.

Некоторые особенности ПО:

1. Конструктор сценариев. Создание сложных сценариев с циклами и условиями;
2. Работа с устройствами ZWave и Modbus;
3. Вложенность сценариев. Можно один сценарий использовать в другом в качестве процедуры;
4. Запуск удаленного сценария. В сценарии текущего сервера можно запускать сценарий удаленного;
5. Возможность добавлять в систему свою функциональность посредством создания модулей;
6. Запуск сценариев с помощью смартфона.

Конструктор сценариев

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

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

В качестве примера приведу свой способ их использования: создал категорию “Розетки”, в ней собрал все лампы, бытовой вентилятор, светильники, телевизор и компьютер. Теперь, чтобы включить одно из этих устройств, следует открыть клиент на андроиде, зайти в категорию “Розетки” и выбрать соответствующий пункт меню.

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

Конструктор сложного сценария позволяет создавать сценарии с циклами и условиями. Имеет два режима: просмотр и редактирование.

Пример сценария в режиме просмотра
Пример сценария в режиме редактирования





ЕСЛИ и ИНАЧЕ в конструкторе . В данных конструкциях можно создавать цепочки условий с логическими операторами НЕ, ИЛИ, И. Конструктор позволяет создавать группу условий и использовать операторы непосредственно с группой. Если условие остается пустым, то оно автоматом вычисляется как ложь.

Есть некоторое количество встроенных проверок (такие как проверка на дату, время и т.д.), а также некоторое количество в качестве подключаемых модулей.

Цикл ПОКА в конструкторе . Цикл состоит из условия и тела. Условие создается аналогично тому, как он создается в конструкции ЕСЛИ (группы условий, операторы НЕ, ИЛИ, И).


Основное окно конструктора сценариев



Также можно настроить следующие параметры сценариев:

Запуск извне (вкл/выкл), позволяет запретить или разрешить запуск сценария с другой машины или из клиента;
- Автоматический запуск сценария при старте системы;
- Выбор категории сценария, позволяет отображать в UI клиента пункт меню для запуска сценария в определенной категории.

Работа с устройствами ZWave и Modbus

На данный момент система поддерживает устройства ZWave (на основе openzwave) и Modbus RTU (на основе nmodbus).

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

В моей программе модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.



Рынок ZWave устройств достаточно широк. Имеется множество исполнительных устройств, таких как релейные модули, лампочки, устройства для работы с кондиционером, терморегуляторы, регуляторы теплого пола, розетки, переключатели. Так же существует множество датчиков: датчик открытия двери, температуры, датчик протечки, датчик присутствия и т.д. В качестве контроллера ZWave можно использовать USB stick.


Основное окно ZWave модуля


Окно выбора контроллера и операций с ним


Выбор узла (датчики, переключатели и т.д.)


Выбор параметра узла (включен/выключен, различные числовые параметры, такие как температура, влажность и т.д.)

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

Вложенность сценариев

Вложенность сценариев используется для декомпозиции сценариев умного дома. Часто бывают такие ситуации, когда одно действие участвует во многих сценариях (например, отключение всех бытовых устройств может происходить по нажатию на пункт меню в программе, по сценарию выхода всех wi-fi устройств из сети, просто по таймеру), и поэтому каждый раз создавать (или править) одинаковый алгоритм в каждом из сценариев не представляется удобным. Для этого существует такое встроенное действие, которое позволяет запускать уже созданный сценарий в текущем. Также это может быть удобно, когда часто добавляются новые бытовые устройства (или другие частые изменения в алгоритме работы “умного дома”), для изменения работы всех сценариев достаточно будет изменить лишь один сценарий, который используется в них.

Запуск удаленных сценариев

Посредством запуска удаленных сценариев можно запускать сценарий одного сервера в сценарии другого. В качестве примера хочу привести мой вариант использования этого функционала: создал сценарий (на домашнем сервере) под названием “свет+мультимедиа”, который включает свет в помещении, запускает мой десктоп (используя WakeOnLan), включает тв, к которому подключен десктоп и ждет пока на нем (десктопе) запустится экземпляр нашей программы, затем запускает на ней сценарии “включить музыку” и “звук на 20 единиц” с помощью запуска удаленных сценариев.

Написание собственных модулей

Помимо того, что пользователь может создавать сложные сценарии штатными средствами, программа позволяет “расширять” ее пользовательскими модулями на C#. Все элементы действий и проверок в сценариях (такие как “Проверка по дате”, “Показать сообщение”, “Действие Modbus”, “Действие ZWave” и т.п.) это классы, унаследованные от ICustomAction и ICustomChecker. Следуя определенным правилам, любой пользователь может создать свой модуль, который может быть как очень простым (например, озвучивание текущей температуры воздуха за окном), так и сложным, за которым может крыться целый фреймворк. Достаточно наследоваться от интерфейсов ICustomAction или ICustomChecker, расставить несколько атрибутов, скомпилировать DLL и добавить в программу через вкладку “МОДУЛИ” (полная инструкция создания модулей).

Запуск сценариев с помощью смартфона

*пока только OS Android

Сценарии отображаются на главном экране и в категориях. Категория является виртуальной “папкой”. При запуске сценария обновляется статус соответствующей кнопки.

Экран настроек соединения
Экран с запуском сценариев





Помимо этого, есть возможность запускать сценарии из меню быстрого запуска на PC.
Меню быстрого запуска



В дальнейшем планируется клиент для UWP, IOS, web, а так же голосовой модуль для управления устройствами (планы на ближайшее будущее) и создания сценариев с помощью голоса (стратегические планы).

Видео напоследок:

P.S.: Если нашли ошибку в программе, то пожалуйста, перешлите её на

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

Очень быстро я выяснил, что в мире нет единого стандарта, либо же «эталонного» производителя умных устройств и мне придется объединить в одну экосистему «зоопарк» из нескольких десятков гаджетов от разных производителей. Nest делает лучшие в мире термостаты и умные камеры, китайцы производят отличные розетки с кучей полезных функций, ABB и Schneider производят лампочки - список можно продолжать долго и об этом речь пойдет в следующей статье. Самый важный момент состоит в том, что каждый из производителей предлагает соственный софт для управления своими гаджетами и какого-то простого решения, чтобы управлять ими централизованно просто нет.

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

В странах Восточной Европы ситуация несколько иная. «Умный дом» - это в первую очередь комфорт, а затем экономия. Электричество в Киеве стоит копейки, горячая и холодная, тоже и экономия в двухкомнатной холостяцкой квартире мне ни к чему. А вот система видеонаблюдения с датчиками движения, лампочки, которыми можно управлять с дивана, розетки, умеющие включаться и выключаться по расписанию, кондиционер, поддерживающий в помещении устойчивую температуру, бытовая техника, работающая по расписанию, управляемые шторы и другие подобные гаджеты – это именно то, что мне нужно.

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

  1. Оплатить услуги специализированной компании и не погружаться в суть процесса
  2. Купить все необходимые устройства и настроить их на базе либо полноценного сервера, либо Arduino\ Raspberry PI
  3. Самостоятельно нарисовать приложение для управления умным домом на базе мессенджера Sender и прописать логику работы гаджетов на облачной ОС Corezoid
Теперь я хочу пройтись по порядку по каждому из трех вариантов и пояснить логику своего выбора.

Вариант 1. Заплати и свободен

По отзывам большинства опрошенных мной экспертов, лучше всего проектировать «умный дом» на этапе строительстве или ремонта помещения. Это нужно для того, чтобы «зашить» в стену все необходимые кабели, завести резервные источники электропитания и водоснабжения, установить датчики на трубы и котлы, и так далее. Это наиболее дорогой, но в то же время функциональный вариант. Вот краткий перечень его возможностей.
  • регулировка температуры в помещении и освещения, в зависимости от погоды, времени суток и наличия хозяев дома
  • автоматическое открытие и закрытие штор, жалюзи, шлагбаума
  • включение/выключение системы обогрева пола, ступенек, подъезда к гаражу, полива газона
  • контроль работы всех электроприборов, инженерных систем и экономия электроэнергии
  • предотвращение утечек газа и воды
  • удаленный прогрев сауны или бани
  • переход на резервные источники электроэнергии
  • защита от перенапряжения, и утечки газа
  • датчик заполнения выгребной ямы и забивки слива
  • пожарная сигнализация
  • удаленный контроль видеокамер, умная система безопасности
Такая система требует серьезного проектирования и самостоятельно расписать концепт «умного дома» – задача малореальная. Как я уже писал выше, в США и Европе производители оборудования разрабатывают решения под каждый конкретный случай и контролируют процесс монтажа. Стоимость «под ключ» начинается от нескольких тысяч тысяч евро и зависит от площади помещения и количества используемых датчиков. По этой ссылке можно почитать про решения от Siemens. Похожие комплексы предлагают IBM, Bosch, Cisco, Panasonic, Logitech, ABB, Philips и другие бренды.

К сожалению, в Украине, этот вариант работает лишь наполовину. У нас можно купить или заказать все необходимое оборудование, но проектировать и строить «умный дом» будет компания, не имеющая отношения к производителю. Это означает, что мне придется положиться на везение и профессионализм подрядчиков. Я не понаслышке знаю про факапы строителей, а в случае с умным домом раздолбайство помноженное на недостаток знаний может привести к самым печальным последствиям. Впрочем, мне этот вариант все равно не подходит – в моей квартире уже сделан ремонт, поэтому я хочу интегрировать технологии умного дома в уже готовое помещение и не заниматься обновлением коммуникаций.

Вариант 2. Умный китайский дом

В Китае можно купить решительно все – начиная от брелков-шпионов (за которые в Украине почему-то сажают в тюрьму) и заканчивая атомными батарейками. На alibaba.com , aliexpress.com , dx.com , taobao.com и прочих подобных сайтах можно купить как готовые системы, так и их отдельные элементы. Большинство китайских гаджетов встраиваются в уже готовые дома и перепланировка для их установки не нужна.

Как пример «коробочного решения» можно привести «умный дом» от Meizu. Это совокупность гаджетов от разных компаний, которые объединены программным комплексом LifeKit. Это весы RyFit, лампа X-Light Plus, очиститель воздуха Air Cube, розетки и другие устройства. Аналогичную систему недавно выпустил и Xiaomi.

Что касается одиночных «девайсов», то здесь все еще интереснее. На китайском аналоге Kickstarter – площадке Demohour регулярно появляются просто потрясающие вещи. Недавно «умная розетка» Smart Plug K установила рекорд китайского краудфандинга и собрала около $270 000. Розетка поддерживает все популярные типы вилок, умеет удаленно включать и выключать любую технику, поддерживает доступ по 3G и Wi-Fi и работает как Wi-Fi повторитель для усиления сигнала. Хороший набор устройств предлагает и китайская компания BroadLink. На Amazon.com можно купить набор нужных гаджетов и собрать с их помощью собственную версию «умного дома». По этим ссылкам ( , , ) можно почитать и про другие устройства.

Минус этого варианта заключается в том, что на рынке единого простого решения, которое позволит объединить все доступные на рынке гаджеты в единую систему. Приходится делать выбор – покупать набор гаджетов от одного производителя, либо покупать устройства разных брендов и управлять каждым из них по-отдельности. Первый вариант плох тем, что в мире нет «эталонного» разработчика «умных домов», который производит лучшие в своем классе гаджеты, а второй тем, что управление каждым из устройств по отдельности противоречит самому принципу умного дома.

На Хабре описаны десятки способов самостоятельно создать «умный дом» на основе Linux-подобных систем, Arduino, Raspberry PI или полноценных серверов. Это отличное решение, но я являюсь скорее продвинутым пользователем, чем разработчиком и вряд ли смогу воплотить в жизнь подобные схемы. Я решил найти способ, который не требует специфических знаний.

Вариант 3. Сделай сам

В процессе поиска мне попалась на глаза разработка украинских программистов - мессенджер Sender. Принцип работы Sender схож с китайским WeChat, он позволяет создавать полноценные мобильные приложения с помощью простого конструктора форм. Сам конструктор далек от идеала, но кое-что с его помощью сделать уже можно. На выходе у меня должно получиться «приложение в приложении», которое получает данные от устройств через встроенный API и выводит их на экран смартфона. Логику работу гаджетов я хочу описать с помощью облачной операционной системы Corezoid, которая не требует знаний языков программирования и позволяет автоматизировать практически любой процесс, в том числе и поведение устройств в умных домах. Добавить метки 4 октября 2011 в 19:06

«Умный дом» собственными руками

  • Компьютерное железо

Представьте картину: вы входите домой, автоматически включается свет и приятный женский (мужской, впрочем - кому как) голос приветствует вас. Вы небрежно бросаете фразу в сторону микрофона: «Дом, включи мой компьютер». Через несколько секунд слышите привычный шелест кулеров своего родного железного коня.

Будущее - сейчас

Все мы когда-нибудь видели подобные картины в зарубежных фантастических фильмах и мечтали: «Когда-нибудь такое будет и у нас». Спешу вас обрадовать - подобие увиденного можно реализовать уже сейчас и без гигантских затрат.

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

«У́мный дом (англ. digital home) - жилой автоматизированный дом современного типа, организованный для удобства проживания людей при помощи высокотехнологичных устройств. Под «умным домом» следует понимать систему, которая должна уметь распознавать конкретные ситуации, происходящие в здании, и соответствующим образом на них реагировать: одна из систем может управлять поведением других по заранее выработанным алгоритмам. Основной особенностью интеллектуального здания является объединение отдельных подсистем в единый управляемый комплекс.

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

В этом случае исключается необходимость пользоваться несколькими пультами при просмотре ТВ, десятками выключателей при управлении освещением, отдельными блоками при управлении вентиляционными и отопительными системами, системами видеонаблюдения и сигнализации, воротами и прочим. В доме оборудованном системой „Умный дом“ достаточно одним нажатием на настенной клавише (или пульте ДУ, сенсорной панели и т. д.) выбрать один из сценариев. Дом сам настроит работу всех систем в соответствии с Вашим пожеланием, временем суток, Вашим положением в доме, погодой, внешней освещённостью и т. д. для обеспечения комфортного состояния внутри дома.»

В моем случае, я расскажу как организовать управление нагрузкой (розетки, лампы накаливания, etc) при помощи распознавания голосовых команд и озвучить все это неплохим русским голосом.

Технические подробности

1-wire

Для начала нам, конечно же, необходимо определиться с технологиями управления электропитанием устройств. На текущий момент таких имеется множество. Самая, пожалуй, простая, популярная и недорогая в реализации, это 1-wire от компании Maxim/Dallas. Технология 1-wire далеко не нова и известна уже около 10 лет. 1-wire широко применяется как в быту, так и в промышленных системах.

Преимущества 1-wire
  • Простая и понятная архитектура сети
  • Низкие требования к кабелям
  • Большая протяженность линии
  • Низкая стоимость и простота компонентов
  • Открытый протокол и доступное ПО для программирования
  • Возможность в определенных ситуациях обходиться без питания
Как известно, плюсов без минусов не бывает. Вот они:
  • Низкая скорость передачи данных
  • Обязательное наличие мастера, ведущего сети
Видно, что плюсов технологии гораздо больше, чем минусов. Остановимся подробнее на обязательном требовании к наличию мастера сети.

Дело все в том, что устройства с точки зрения организации обмена данными пассивные элементы цепи. Компоненты 1-wire не могут без специального запроса посылать в сеть данные. Таким образом устройства не могут общаться друг с другом без «активного» ведущего. Элементы сети являются всегда ведомыми. Мастер в сети 1-wire только один. Именно он инициирует, контролирует и управляет работой сети и подключенных к сети устройств. В зависимости от используемого программного обеспечения, мастер 1-wire линии может по-разному работать со своими подопечными, но только он в конечном итоге может опросить состояние конкретного элемента, а также послать запроса на получение от этого элемента какой-либо информации. Например, если нам необходимо в режиме реального времени выводить значение температуры с множества датчиков, то мастер сети в цикле будет по очереди опрашивать эти датчики. Отвечать мастеру по сети может только одно устройство. В качестве мастера может выступать МК (микроконтроллер), который может при соответствующем ПО напрямую включаться в сеть 1-wire к одному из своих портов ввода-вывода. Мастером может выступать также ПК (персональный компьютер), использующий специальные элементы сопряжения, позволяющие соединять 1-wire с COM-портом или USB-портом компьютера, такие как DS9097 или DS9490.

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

Как видно, это небольшой переходник, имеющий с одной стороны USB, с другой - разъем RJ-11 для подключения элементов сети 1-wire (элементы 1-wire мы можем вешать на стандартный телефонный кабель - дешево и сердито).

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

Плюсы:

  • Легка в установке
  • Никаких дополнительных проводов в квартире
  • Распространенный стандарт, много исполнительных элементов
  • Относительно низкая стоимость и простота компонентов
  • Не требует дополнительного электропитания

Минусы:

  • Медленная передача данных
  • Большинство элементов не поддерживает команду статуса (т.е. не узнать текущее состояние устройства)
  • Дороже чем 1-wire

Х10 подойдет ленивым и тем, кто не желает по каким-то причинам тянуть дополнительные кабеля. Я попал в ту и другую категорию, поэтому мой выбор остановился на Х10 =)

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

В первую очередь - компьютер. Он будет ядром, головой нашей системы «умный дом». Именно к нему мы подключим управление электропитанием наших домашних устройств посредством мастера сети 1-wire или Х10, к нему же мы подключим и камеры видеонаблюдения. В моем случае, я выбрал обычные простые web-камеры среднего качества. Подключаться все будет через USB. Ограничение на длину кабеля в 5 м, обходилось мной в виде покупки длинных активных USB кабелей, где возможно, и связкой кабелей через USB-хабы с внешним питанием (возможно, кто-то предложит другое решение - буду рад услышать). У меня вышло в итоге 4 веб-камеры для всех помещений квартиры.

Учим компьютер понимать нас и разговаривать
Для меня «умный дом» в первую очередь - это интерактивность. Для этого мы его научим разговаривать и понимать в свою очередь нас.
Мои исследования показали, что достойный уровень распознавания речи в данный момент может дать только Google. Я думаю, все знакомы с его замечательным голосовым поиском и переводчиком, которые могут здорово упростить жизнь владельцу мобильного устройства. Народные умельцы вычислили, что, куда и как надо отправить, чтобы получить из звукового файла текст.
То же самое и с синтезом - я не стал сильно заморачиваться и воспользовался тем же Google. На мой взгляд, синтезированная речь на достаточно неплохом уровне.
Объединяем
Самым удобным интерфейсом управления умным домом и связкой ПО я счел веб-интерфейс. Координированием работы ПО будет заниматься специально написанный демон на perl

Подводим итоги

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

Программа для управления всеми системами Умного Дома. Устанавливается на планшетный компьютер на Windows, Android, iOs. Подключается к контроллеру через Wi-Fi или интернет (протокол связи ModBus TCP).
Работает с практически любыми промышленными контроллерами, в том числе Beckhoff и ОВЕН.

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

Функции программы EasyHome:

  • управление системами освещения (в том числе разноцветными светодиодными лентами и лампами с изменяемой яркостью свечения)
  • управление климатом каждого помещения
  • связь с системеми охранной и пожарной сигнализации
  • связь с системами вентиляции и кондиционирования
  • контроль потребляемой мощности по нескольким фазам с автоотключением неприоритетных нагрузок
  • управление розетками и прочими электроприборами
  • установка на любое количество устройств, управление через Wi-Fi или интернет
  • контроль и предотвращения аварий: протечка воды, утечка газа, электроаварии
  • сбор информации со счётчиков воды, газа и электричества
  • управление по сценариям и предустановкам
  • доступ к контроллеру через локальную сеть или через внешний IP адрес (автовыбор при запуске программы)
  • отображение изображения с IP видеокамер (в версии для Windows, поддерживается видеопоток MJPEG и H264, не все модели камер)
  • возможность запуска разных интерфейсов (запрос при запуске программы)

И многое другое!

Скачать EasyHome для iOS (iPhone и iPad):

Чтобы загрузить DEMO версию интерфейса приложения надо в окне добавления конфигурации набрать адрес:

http://сайт/downloads/EH_DEMO.ehpa

Новое в версии EasyHome 7.9.5 для iOS (январь 2018):

  • Добавлен удобный контрол светодиодной ленты RGB с выбором цвета
  • Уоучшена функция автомасштабирования элементов
  • Исправлен адрес скачивания Демо интерфейса (сайт был переведен на защищенный протокол https)
  • Улучшена панель аварийных сообщений
  • Множество мелких улучшений и исправлений в работе программы

Новое в версии EasyHome 7.9.1 для iOS (апрель 2017):

  • Загрузка файлов конфигурации через интерфейс самой программы
  • Выбор конфигурации при запуске и быстрая смена интерфейса
  • Новый контрол управления RGB лентами
  • Функция автоповорота экрана (удобно для iPhone)
  • Прочие мелкие улучшения и исправления

Как пользоваться ДЕМО версией:

1. Скачать архив

2. Распаковать архив в любое место (например, на рабочий стол)

3. Запустить файл EasyHomeEditor.exe

В ДЕМО версии можно делать всё, что угодно: менять интерфейс, двигать элементы, перемещаться между окнами и т.д. Но поскольку связи с контроллером нет, то икноки не будут меняться при нажатии, а все значения (температуры, токи, состояния) будут равны нулю. Для возможности подключения к контроллеру надо приобрести лицензию (информация о цене - внизу этой страницы).

Новое в версии EasyHome 7.8 (апрель 2017):

  • Возможность отправки контроллером произвольных смс-сообщений на русском языке для контроллеров ОВЕН (ранее было доступно только для Beckhoff)
  • Появились свободные функции. Можно задавать любую логику работы входов и выходов через интерфейс EasyHome. Ранее это было доступно только через изменение кода контроллера нашим инженером.
  • Появились мультисцены
  • Добавлен удобный драйвер для работы с инфракрасными передатчиками по интерфейсу RS485. 4 режима управления любыми кондиционерами через ИК-команды.
  • Возможность подключения инмерителя параметров электросети к контроллеру ОВЕН на одну или три фазы.
  • Можно подключать до 10ти модулей расширения ОВЕН в любой комбинации, общее количество дискретных входов и выходов может быть теперь до 255.
  • Появился астрономический датчик освещённости по высоте солнца.
  • Всякие мелкие улучшения.

Новое в версии EasyHome 7.7 (декабрь 2016):

  • Многочисленные улучшения интерфейса
  • Увеличение скорости работы на системах Windows 10 и iOS 9
  • Появилась возможность перекрывания разных стояков водоснабжения при срабатывании разных датчиков протечки воды
  • Появилась возможность постановки на охрану произвольного набора датчиков движения
  • Появилась функция мультиинтерфейс - предзагрузочное графическое меню в котором можно выбрать, какой именно интерфейс запустить


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: