По мере развития оказалось, что сетей из умных гаджетов и узлов на основе 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 и т.п.).
Энтузиасты из России сделали лучшее приложение для умного дома. Мы протестировали Sprut.home и поддерживаем

СДЕЛАЛ УМНЫЙ ДОМ ***ЗА 10 МИНУТ!***
Умный Дом за копейки 🔥 РАЗБОР 2021-2022

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

Все началось 4 года назад, когда любитель гаджетов и технологий Челбаев Олег решил вести собственный канал на YouTube. Основной тематикой роликов стали гаджеты и штуки для умного дома.
Обозревались и описывались разные технологии и системы управления, но основной упор делался на реализацию умного дома от Apple. Многие, и я в том числе, пытались сделать систему HomeKit центром своего “умнеющего” жилища, но в процессе сталкивались с рядом трудностей.
Во-первых, HomeKit Ready устройств на нашем рынке не так уж и много, а те, что есть, стоят в разы дороже конкурентов без заветной наклейки на коробке. Подключить к системе Apple сегодня можно практически любой умный гаджет либо при помощи специальной модифицированной прошивки, либо через определенную “прокладку” или “мост”.
Во-вторых, система HomeKit позволяет мониторить далеко не все показатели, снимаемые умными устройствами, не имеет тонкой настройки и расширенных опций, которые приходится задавать в родном приложении производителя.
В-третьих, приложение Дом от Apple имеет скудный интерфейс и неудобное управление, что сразу же отпугивает многих новичков от данной темы.
Хуже всего, что ни одна из существующих систем умного дома не позволяет комфортно и главное просто построить свой умный дом, чтобы в дальнейшем расширять его возможности и добавлять новые гаджеты.
Так у Олега появилась интересная идея – сделать универсальный хаб, который подобно спруту мог бы связать своими щупальцами все умные гаджеты в доме . Штука эта должна была быть максимально функциональной и при этом простой в освоении.
Никаких подключений по ssh, терминальных команд, установки плагинов и правки конфигураций. Только удобный plug#129299; Хочешь больше? Подпишись на наш Telegram.

Источник: www.iphones.ru
Программное обеспечение для умного дома
Всем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:
| Включение и выключение 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, а так же голосовой модуль для управления устройствами (планы на ближайшее будущее) и создания сценариев с помощью голоса (стратегические планы).
P.S.: Если нашли ошибку в программе, то пожалуйста, перешлите её на почту.
Источник: habr.com