- Открытое ПО для управления умным домом
- Программа Умный дом на ПК
- Что такое ПО для Умного дома?
- Мнение специалиста
- Производители
- Программное обеспечение для умного дома
- Конструктор сценариев
- Работа с устройствами ZWave и Modbus
- Вложенность сценариев
- Запуск удаленных сценариев
- Написание собственных модулей
- Запуск сценариев с помощью смартфона
Открытое ПО для управления умным домом
По мере развития оказалось, что сетей из умных гаджетов и узлов на основе 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.
Данный список является далеко не полным. Энтузиастами по всему миру также разработаны такие системы как: Calaos, DomotiGa, Freedomotic, Jeedom, MyController.org, PiDome, Pimatic и другие.
Важно понимать, что все перечисленные выше системы представляют из себя только лишь программные оболочки и предназначены для того, чтобы управлять каким-то оконечным оборудованием, из которого и состоят подсистемы умного дома. Концепция DIY предполагает совместное использование самых разнообразных устройств, в качестве которых могут выступать и умные гаджеты от известных производителей, и noname-оборудование со всех концов света, и какие-то подсистемы и исполнительные механизмы, полностью собранные пользователем самостоятельно из отдельных блоков и компонентов. Такая программная оболочка должна быть установлена на каком-то компьютере, в качестве которого может выступать обычный ПК или небольшой сервер. Очень часто в качестве упомянутого «сервера» принято использовать недорогие микрокомпьютеры типа Raspberry Pi или подобные.
Данный микрокомпьютер с установленной на нем программной составляющей становится по сути центральным процессором умного дома и берет на себя задачи по управлению логикой работы и взаимодействию различных подсистем умного дома. Для непосредственного взаимодействия с самими этими подсистемами управляющий микрокомпьютер должен быть оснащен соответствующими интерфейсами (Z-Wave, ZigBee, USB, Ethernet, Modbus, 1-Wire и т.п.).
Программа Умный дом на ПК
Что такое ПО для Умного дома?
Программа «Умный дом» — комплекс программных утилит по управлению:
- электричеством;
- электроприборами;
- охранной системой (сигнализацией, видеонаблюдением);
- климат-контролем.
Система “Умный дом”
Логичное решение – установить систему «Умный дом» на настольный компьютер. Его объем памяти справляется со всеми задачами по контролю и изменению параметров в доме. Из затрат в этом случае владелец дома тратится только на программу автоматизации, но и от них избавляются. Скачайте программное обеспечение для «умного дома» бесплатно. В интернете имеются демонстрационные версии и свободные для скачки утилиты.
Мнение специалиста
Если вы ищете максимально простую и нетребовательную к характеристикам компьютера систему, то ваш выбор, безусловно, «Умный дом». Из всех представленных программ она самая простая и «легкая». Если же вы ищете что-то более сложное и многофункциональное, то вам стоит обратить внимание на MajorDoMo и HomeSapiens (впрочем, у последней есть минус – она доступна только в платном виде).
Производители
В интернете существует возможность найти и скачать «умный дом» на бесплатной основе на официальных сайтах следующих производителей:
- MajorDoMo. Его программа для компьютера является бесплатной и позволяет полноценно управлять всей автоматикой в жилье и мгновенно отображать текущее состояние комплекса. Разработчики ПО утверждают, что их программа «Умный дом» не имеет высоких требований к памяти, типу видеокарты и другим техническим характеристикам настольного ПК. MajorDoMo устанавливается на операционную систему Linux или Windows. Чтобы запустить ее, после скачивания установочного файла требуется его запустить (путь для установки не меняйте, иначе придется в ручном режиме изменить путь для каждого файла MajorDoMo). В MajorDoMo ведется контроль над электроприборами, сигнализацией, освещением и температурой;
Интерфейс программного обеспечения MajorDoMo
- Home Sapiens. Это программное обеспечение для «умного дома» управляет домом при помощи голоса, предоставляет универсальный пульт для контроля над самыми частыми действиями, а также интегрируется с уже подключенными комплексами автоматизации. Управление Home Sapiens доступно из любой точки мира при помощи компьютера или смартфона. Производитель предоставляет бесплатное использование демоверсии;
- «Умный дом 1.0». На сайтах в ее описании сказано, что утилита управляет «умным домом» или офисом, а вся поступающая информация зашифровывается. Разработано оно было в 2008 году и до сих пор используется ввиду простоты интерфейса. Установка такой утилиты на ПК предусматривает ежедневник, который имеет голосовые напоминания, список заданий, пульт с дистанционным управлением для электроприборов, автоответчик для телефона или факса. Предоставляется доступ к электронной почте на сервере;
Системы контроля Умный дом
- DIVISION Constructor. Этот редактор создает сценарии (управление работой телевизора, кондиционера или ночника), которые управляются посредством нажатия кнопки или работы датчика. После скачивания и создания схем функционирования директория проекта в автоматическом режиме создает файлы для сервера и клиента (владельца). В них имеются данные для управления «умным домом».
Автор, специалист в сфере IT и новых технологий.
Получил высшее образование по специальности Фундаментальная информатика и информационные технологии в Московском государственном университете имени М.В. Ломоносова. После этого стал экспертом в известном интернет-издании. Спустя время, решил попробовать писать статьи самостоятельно. Ведет популярный блог на Ютубе и делится интересной информацией из мира технологий.
Программное обеспечение для умного дома
Всем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:
Включение и выключение ZWave лампочки через мобильное приложение | |
При появлении устройства в сети (по приходу пользователя домой) происходит включение ZWave лампочки, релейного модуля Modbus RTU, запуск компьютера через WakeOnLan и включение ТВ | |
Запуск браузера, переход на яндекс.радио, перелистывание треков (эмуляция горячих клавиш) |
Вкратце:
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 — это проводной протокол, применяемый для связи между электронными устройствами, которые его поддерживают. В контексте нашей программы может быть полезен для работы с релейными модулями, для чего я его и использую у себя дома.
Релейный модуль Modbus. Соединяется с контроллером через COM-порт | |
Основное окно Modbus RTU модуля |
Вложенность сценариев
Вложенность сценариев используется для декомпозиции сценариев умного дома. Часто бывают такие ситуации, когда одно действие участвует во многих сценариях (например, отключение всех бытовых устройств может происходить по нажатию на пункт меню в программе, по сценарию выхода всех wi-fi устройств из сети, просто по таймеру), и поэтому каждый раз создавать (или править) одинаковый алгоритм в каждом из сценариев не представляется удобным. Для этого существует такое встроенное действие, которое позволяет запускать уже созданный сценарий в текущем. Также это может быть удобно, когда часто добавляются новые бытовые устройства (или другие частые изменения в алгоритме работы “умного дома”), для изменения работы всех сценариев достаточно будет изменить лишь один сценарий, который используется в них.
Действие «Существующий сценарий» в списке | Выбор существующего сценария |
Запуск удаленных сценариев
Посредством запуска удаленных сценариев можно запускать сценарий одного сервера в сценарии другого. В качестве примера хочу привести мой вариант использования этого функционала: создал сценарий (на домашнем сервере) под названием “свет+мультимедиа”, который включает свет в помещении, запускает мой десктоп (используя WakeOnLan), включает тв, к которому подключен десктоп и ждет пока на нем (десктопе) запустится экземпляр нашей программы, затем запускает на ней сценарии “включить музыку” и “звук на 20 единиц” с помощью запуска удаленных сценариев.
«Запуск удаленного сценария» в списке | Выбор сервера и его сценария |
Написание собственных модулей
Помимо того, что пользователь может создавать сложные сценарии штатными средствами, программа позволяет “расширять” ее пользовательскими модулями на C#. Все элементы действий и проверок в сценариях (такие как “Проверка по дате”, “Показать сообщение”, “Действие Modbus”, “Действие ZWave” и т.п.) это классы, унаследованные от ICustomAction и ICustomChecker. Следуя определенным правилам, любой пользователь может создать свой модуль, который может быть как очень простым (например, озвучивание текущей температуры воздуха за окном), так и сложным, за которым может крыться целый фреймворк. Достаточно наследоваться от интерфейсов ICustomAction или ICustomChecker, расставить несколько атрибутов, скомпилировать DLL и добавить в программу через вкладку “МОДУЛИ” (полная инструкция создания модулей).
Вкладка «МОДУЛИ» |
Запуск сценариев с помощью смартфона
*пока только OS Android
Сценарии отображаются на главном экране и в категориях. Категория является виртуальной “папкой”. При запуске сценария обновляется статус соответствующей кнопки.
Экран настроек соединения | Экран с запуском сценариев |
Помимо этого, есть возможность запускать сценарии из меню быстрого запуска на PC.
Меню быстрого запуска |
В дальнейшем планируется клиент для UWP, IOS, web, а так же голосовой модуль для управления устройствами (планы на ближайшее будущее) и создания сценариев с помощью голоса (стратегические планы).