Программа умный дом. Умный дом своими руками

24.04.2019

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

Обзор возможностей по управлению

Сценарии настраиваются на защиту и помощь владельцу дома. Их разработка довольно долгая, но для большей функциональности умного дома следует очень тщательно подходить к этому вопросу.

Самые популярные сценарии

Запрограммированная модель «поведения» датчиков обычно срабатывает в отношении следующих факторов:

  • определенное время суток (включается свет, компьютер, отключается микроволновка и так далее);
  • датчики могут реагировать на движение и изменение температуры;
  • поступила команда на выполнение (она может быть отдана с телефона или ноутбука, в том числе в online-режиме, а также голосом или при помощи пульта).

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

  • уход за аквариумными рыбками и комнатными растениями;
  • подсушивание крыши и подъездов к дому;
  • наполнение и нагрев бассейна и сауны.

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

Проектировка и программирование системы

Создание умного дома состоит из следующих пунктов:

  1. Набросок общего плана. В нем подробно рассматривают этапы взаимодействия внутренних составляющих сценария с пользователем и между собой, а также отклик программы на нестандартные ситуации.
  2. Подбираются или пишутся с нуля драйвера для дома, и подходящий интерфейс. Не для каждого устройства производитель предлагает оригинальный драйвер, поэтому задача специалиста – его создать. Дополнительно идет написание различных модулей. Что касается интерфейса – обычно все устройства управления разбиваются на отдельные группы; за каждой дальнейшее программирование закрепляет свой интерфейс. Его можно установить для каждого пульта, но это будет неудобно в первую очередь для самого пользователя.
  3. Затем идет непосредственно программирование на основе предыдущих пунктов. Используя ранее логически выверенный проект, подготовленное для него программное обеспечение, специалисты приступают к написанию собственно программы сценария.
  4. Монтаж, тестирование, сдача в эксплуатацию.

Интерфейс для создания сценария управления умным домом

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

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

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



Вкратце:

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, которая не требует знаний языков программирования и позволяет автоматизировать практически любой процесс, в том числе и поведение устройств в умных домах. Добавить метки

Программа Умный дом на ПК

2.9 (57.78%) 9 votes

Что такое ПО для Умного дома?

Программа «Умный дом» - комплекс программных утилит по управлению:

  • электричеством;
  • электроприборами;
  • охранной системой (сигнализацией, видеонаблюдением);
  • климат-контролем.

Система «Умный дом»

Логичное решение – на настольный компьютер. Его объем памяти справляется со всеми задачами по контролю и изменению параметров в доме. Из затрат в этом случае владелец дома тратится только на программу автоматизации, но и от них избавляются. Скачайте программное обеспечение для «умного дома» бесплатно. В интернете имеются демонстрационные версии и свободные для скачки утилиты.

Производители

В интернете существует возможность найти и скачать «умный дом» на бесплатной основе на официальных сайтах следующих производителей:

  • MajorDoMo . Его программа для компьютера является бесплатной и позволяет полноценно управлять всей автоматикой в жилье и мгновенно отображать текущее состояние комплекса. Разработчики ПО утверждают, что их программа «Умный дом» не имеет высоких требований к памяти, типу видеокарты и другим техническим характеристикам настольного ПК. MajorDoMo устанавливается на операционную систему Linux или Windows. Чтобы запустить ее, после скачивания установочного файла требуется его запустить (путь для установки не меняйте, иначе придется в ручном режиме изменить путь для каждого файла MajorDoMo). В MajorDoMo ведется контроль над электроприборами, сигнализацией, освещением и температурой;

Интерфейс программного обеспечения MajorDoMo

  • Home Sapiens . Это программное обеспечение для «умного дома» управляет домом при помощи голоса, предоставляет универсальный пульт для контроля над самыми частыми действиями, а также интегрируется с уже подключенными комплексами автоматизации. Управление Home Sapiens доступно из любой точки мира при помощи компьютера или смартфона. Производитель предоставляет бесплатное использование демоверсии;

  • «Умный дом 1.0» . На сайтах в ее описании сказано, что утилита управляет «умным домом» или офисом, а вся поступающая информация зашифровывается. Разработано оно было в 2008 году и до сих пор используется ввиду простоты интерфейса. Установка такой утилиты на ПК предусматривает ежедневник, который имеет голосовые напоминания, список заданий, пульт с дистанционным управлением для электроприборов, автоответчик для телефона или факса. Предоставляется доступ к электронной почте на сервере;

Системы контроля Умный дом

  • DIVISION Constructor . Этот редактор создает сценарии (управление работой телевизора, кондиционера или ночника), которые управляются посредством нажатия кнопки или работы датчика. После скачивания и создания схем функционирования директория проекта в автоматическом режиме создает файлы для сервера и клиента (владельца). В них имеются данные для управления «умным домом».
Похожие статьи