создание приложения для умного дома
Программное обеспечение для умного дома #2
Всем добрый день! Продолжая идею моего старого поста, я разработал программу, которую можно использовать в качестве системы для управления умным домом.
Чтобы сразу заинтересовать читателя, продемонстрирую некоторую часть сценариев использования ПО:
| Управление освещением, климатом, мультимедиа и т.д., посредством устройств Z-Wave и Modbus, возможность расширять список совместимых протоколов написанием плагинов. |
| |
| |
| GPS-трекер и триггеры геолокации. |
| Создание алгоритмов работы сценария с циклами и условиями; использование одного сценария в другом; возможность объединить несколько серверов Lazurite посредством удаленных сценариев. |
СЦЕНАРИИ
Lazurite позволяет создавать триггеры и сложные сценарии с условиями и циклами, т.е. пользователь может «запрограммировать» программу с помощью встроенного конструктора на любые свои нужды.
Любой сценарий имеет свой переключатель в пользовательском интерфейсе — «плитку». В зависимости от типа данных сценария переключатель будет выглядеть по-разному.
Примеры переключателей сценариев.
Помимо этого, в Lazurite существует три разновидности сценариев: одиночное действие, сложный сценарий и удаленный сценарий.
Окно выбора типа создаваемого сценария.
Одиночное действие
Одиночные действия — это сценарии, не требующие сложной логики, такие как включение света или изменение уровня звука с помощью «плитки» в меню переключателей. В таком сценарии не получится создать цикл или условие, в нем можно лишь привязать отдельное действие из плагина (о них ниже) к переключателю.
Конструктор одиночного действия на примере создания переключателя ModbusRTU.
Сложный сценарий
Сложный сценарий — это сценарии со сложной логикой, в котором есть циклы и условия.
Пока влажность в комнате меньше или равна 40%, то регулировать влажность.
Сложный сценарий на примере работы с Z-Wave устройствами.
Сложное условие с группами и сравнениями числовых значений.
Удаленный сценарий
Lazurite имеет встроенный сервер, на котором крутится WCF-сервис. Именно это позволяет клиентским приложениям получать информацию о сценариях и выполнять некоторые действия. Но, помимо этого, к серверу Lazurite может подключиться другой сервер Lazurite и использовать сценарии удаленного сервера. Для того, чтобы использовать этот функционал, необходимо создать удаленный сценарий.
Поддержка удаленных сценариев позволяет создать сеть из устройств с установленным Lazurite. Т.е. в сценарии одного сервера можно вызывать сценарии или получать значения сценариев другого сервера.
Например, в большом доме можно создать распределенную систему, в которой несколько узлов с установленным Lazurite будут стоять на разных этажах (комнатах, корпусах), с которыми будет связываться центральное устройство Lazurite. Администратор сконфигурирует систему и решит, насколько будут самостоятельными подчиненные устройства, будут ли они использоваться как простые исполнители или же в них будет заложена некоторая автономность.
ТРИГГЕРЫ
Триггеры — это определенные действия, которые запускаются при наступлении особых условий. От сценария отличаются тем, что не имеют типа данных и не имеют «плитки». Спусковым крючком для запуска триггера является изменение выбранного сценария, т.е. если мы захотим выполнить какие-либо действия при изменении температуры, изменении влажности, появлении пользователя дома и т.д., то нам нужно будет создать триггер на соответствующий сценарий. Конструктор триггера является копией конструктора сценариев, там можно создавать циклы, условия, действия.
Триггер на срабатывание датчика движения.
ДЕЙСТВИЯ
Любая строка, добавляемая в конструкторе сценария, является «действием». Каждый плагин, устанавливаемый в Lazurite, добавляет в программу некоторые новые возможности — действия. Любая работа с Z-Wave, Modbus, геолокацией и т.д. производится через этот функционал. Соответственно, любое действие, как и сценарий, имеет свой тип данных.
Окно выбора действия в конструкторе сценария.
БЕЗОПАСНОСТЬ
В Lazurite можно настроить доступ к просмотру и изменению значения сценария. Это может быть нужно, когда мы создаем пользователя в системе для нашего гостя или когда просто хотим скрыть сценарий, который выполняет вспомогательные функции и не должен быть отображен пользователям.
Окно настройки безопасности сценария.
Для настройки безопасности доступны следующие пункты:
По умолчанию любой сценарий запрещен для запуска из сети и для меню быстрого запуска.
ПОЛЬЗОВАТЕЛИ И ГРУППЫ
Пользователи в Lazurite являются неотъемлемой частью системы. Не имея учетной записи, пользователи не смогут получить доступ к нужным сценариям и управлять устройствами в доме. Если бы не было аутентификации, то любой человек подключился бы к системе и выполнил любые сценарии, что крайне нежелательно.
Для удобства настройки безопасности сценария пользователей можно объединять в группы, например, можно создать группу «Гости» и запретить этой группе выполнение некоторых сценариев.
Z-WAVE
Z-Wave — это беспроводной протокол связи, использующийся в домашней автоматизации. Для реализации протокола используются миниатюрные маломощные радиочастотные модули. Сейчас на рынке ZWave представлен довольно обширный перечень устройств, таких как ZWave лампочки, розетки, релейные модули, переключатели, замки, датчики температуры (влажности, движения, протечки), терморегуляторы, устройства управления кондиционером и т.д. Также распространены мультисенсоры — устройства, сочетающие несколько датчиков (например, датчик освещенности, присутствия, температуры, дверной датчик и т.д.), что весьма привлекательно с точки зрения финансовых затрат и расположения в помещении.
В Lazurite модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.
На изображении выбран узел, мультисенсор — ZW100, затем выбран его пользовательский параметр, с помощью которого можно измерить температуру в комнате.
После того, как будет создан сценарий, использующий этот узел, появится плитка с информацией о температуре.
СТАТИСТИКА
Lazurite имеет функционал, который позволяет вести историю значений разных сценариев (например температура в гостиной, влажность в комнате, уровень ультрафиолета, обнаружение движений). Пользователь может выбрать сценарии, по которым необходимо вести статистику, затем посмотреть на графиках их динамику за определённый промежуток времени.
Отображение статистики в виде графиков.
Отображение статистики в виде круговой диаграммы.
ГЕОЛОКАЦИЯ ПОЛЬЗОВАТЕЛЯ
В Lazurite присутствует функционал GPS-трекера. Любое клиентское приложение отправляет информацию о геоданных на сервер Lazurite, где эти данные можно обработать, сохранить и отобразить. Действия, представленные в плагине UserGeolocationPlugin, созданы для работы с геолокацией пользователей и позволяют вычислять такие значения, как расстояние пользователя до места, нахождение пользователя в определенном месте и т.д.
Некоторые действия предполагают наличие не только пользователя, но и места, или «локации», которое должно быть заведено и настроено в программе. Таким местом может быть дом, работа, город, станция метро. Действия с таким параметром нужны для того, чтобы произвести какое-либо действие по появлению или отдалению пользователя от этой «локации». Место имеет три параметра: координаты центра, радиус и наименование.
Пример созданных мест (дом и работа) и маршрут пользователя между ними в выбранную дату.
Позицию пользователя можно просматривать через приложение Lazurite на смартфоне.
Помимо этого, можно вести историю перемещений, если добавить соответствующий сценарий в статистику.
Перемещения пользователя за большой промежуток времени.
РАЗНОЕ
В программе присутствует возможность создавать сценарии для обмена сообщениями между пользователями и получать нотификации от системы о разных событиях.
Окно отображения входящих сообщений.
Отправка сообщения другому пользователю.
О том, как создавать плагины, можно узнать здесь.
Дальнейшее развитие системы на данный момент видится следующим образом:
Как сделать приложение для Android для системы «Умный дом» на Android Studio?
Эта статья является второй частью другой статьи Как сделать Smart Home Automation с помощью модуля ESP32? в котором был предоставлен метод для создания системы умного дома. В этой статье мы собираемся продемонстрировать пошаговую процедуру разработки приложения для Android и его подключения к базе данных Firebase. Тогда это мобильное приложение будет использоваться для переключения электроприборов в домашних условиях.
Системы умного дома, которые уже доступны на рынке, очень дороги. Если у вас есть необходимые компоненты и устройство Android, вы можете сделать домашнюю систему автоматизации, которая будет одинаково эффективной, но будет очень дешевой. Просмотрите эти две статьи, чтобы создать собственную систему домашней автоматизации дома.
Как разработать приложение для Android для домашней автоматизации?
Мы собираемся разработать приложение для Android, которое будет использоваться в качестве пульта дистанционного управления для управления бытовыми электроприборами, которые были подключены к модулю ESP32, в другой статье. чтобы перейти к другой статье, нажмите здесь,
Шаг 1: Программное обеспечение необходимо
Поскольку мы собираемся разработать приложение для Android, нам потребуется всего одно программное обеспечение. Но чтобы запустить это программное обеспечение, нам нужно сначала установить другое программное обеспечение. Вы можете скачать их по следующим ссылкам.
Шаг 2: Понимание основной работы
Мы собираемся сделать приложение, которое будет иметь как внешнее, так и внутреннее кодирование. На главном экране он будет содержать несколько кнопок, которые будут управлять переключением электроприборов, подключенных к плате микроконтроллера ESP32. В бэкэнд-кодировании мы отправим «1», если переключатель включен, и «0», если переключатель выключен.
Мы собираемся сделать базу данных Firebase. Эта база данных будет содержать 2 объекта с именами Light и AC. Индикатор будет содержать значение для переключения источников света, а переменный ток будет содержать значение для переключения вентилятора. Затем это значение будет отправлено в микроконтроллер, а затем микроконтроллер отправит управляющий сигнал в модуль реле соответственно.
Шаг 3: Настройка Android Studio
Перед установкой Android Studio мы сначала установим JAVA JDK. Чтобы установить это, нажмите на exe-файл, который вы скачали по вышеуказанной ссылке, и нажимайте далее, пока он не будет успешно установлен. Теперь выполните следующие шаги, чтобы ваша командная строка распознала Java как внешнюю или внутреннюю команду.
Теперь, когда вы успешно установили Java JDK на свой компьютер. Теперь давайте установим Android Studio на ваш компьютер. Установка этого программного обеспечения очень проста. Вам нужно открыть загруженный файл и нажимать «Далее», пока программное обеспечение не будет полностью установлено.
Шаг 4: Создание макета
Мы сделаем макет, который будет содержать несколько кнопок, которые будут отправлять команду 0 или 1 в базу данных Firebase. Это будет простой макет, который будет содержать несколько кнопок. В моем приложении я просто включу две кнопки, которые будут управлять светом и вентилятором. Если вы хотите включить больше кнопок для большего количества бытовых приборов, скопируйте тот же кусок кода в основную программу и создайте новую переменную в базе данных. Не теряя времени, давайте перейдем к этапам создания простого макета для нашего приложения.
1. Прежде всего, зайдите в File> New> New Project. Появится меню. Выберите Пустой проект.
2. Теперь назовите проект и установите KOTLIN в качестве языка программирования.
3. Теперь в левом углу выберите приложение> res> layout> activity_main.xml.
activity_main
4. Здесь, добавьте следующий код ниже кода, который уже предоставлен в вашей Android-студии. Мы делаем макет ограничения. Следующий код добавляет заголовок Room Automation сверху. Затем добавляется 3 переключателя. Один переключатель позволяет выбрать, хотите ли вы управлять бытовой техникой вручную или нет. Два других переключателя будут управлять вентилятором и лампами соответственно.
Энтузиасты из России сделали лучшее приложение для умного дома. Мы протестировали Sprut.home и поддерживаем
Уже несколько лет я увлекаюсь темой smart-гаджетов и умного дома. К большому сожалению, после мощного толчка пару лет назад данная тема немного заглохла, а интерес пользователей к ней постепенно угасает.
Сейчас мы имеем несколько крупных экосистем, которые практически не взаимодействуют друг с другом, и кучу мелких компаний с десятком smart-гаджетов для узкого круга пользователей.
Связать все это в единое целое и получить стабильно работающую систему ужасно трудно. Каждый доморощенный Кулибин упирается в связку из “малинок”, хабов и облачных сервисов, которые работают с глюками и перебоями.
В ближайшее время все может круто измениться в лучшую сторону благодаря группе отечественных энтузиастов. Их проект знает каждый, кто вообще когда-либо интересовался темой умного дома или уже сделал его.
А главное, что ничего подобного в App Store вообще нет – это редкий случай, когда «наши» сделали абсолютно уникальный по качеству софт, без аналогов.
Немного предыстории
Все началось 4 года назад, когда любитель гаджетов и технологий Челбаев Олег решил вести собственный канал на YouTube. Основной тематикой роликов стали гаджеты и штуки для умного дома.
Обозревались и описывались разные технологии и системы управления, но основной упор делался на реализацию умного дома от Apple. Многие, и я в том числе, пытались сделать систему HomeKit центром своего “умнеющего” жилища, но в процессе сталкивались с рядом трудностей.
Во-первых, HomeKit Ready устройств на нашем рынке не так уж и много, а те, что есть, стоят в разы дороже конкурентов без заветной наклейки на коробке. Подключить к системе Apple сегодня можно практически любой умный гаджет либо при помощи специальной модифицированной прошивки, либо через определенную “прокладку” или “мост”.
Во-вторых, система HomeKit позволяет мониторить далеко не все показатели, снимаемые умными устройствами, не имеет тонкой настройки и расширенных опций, которые приходится задавать в родном приложении производителя.
В-третьих, приложение Дом от Apple имеет скудный интерфейс и неудобное управление, что сразу же отпугивает многих новичков от данной темы.
Хуже всего, что ни одна из существующих систем умного дома не позволяет комфортно и главное просто построить свой умный дом, чтобы в дальнейшем расширять его возможности и добавлять новые гаджеты.
Никаких подключений по ssh, терминальных команд, установки плагинов и правки конфигураций. Только удобный plug&play.
А для управления всеми подключенными устройствами нужно полностью переработанное приложение для умного дома с удобным практичным интерфейсом.
От идеи до модели
Проект стартовал с приложения для Apple TV, которое заполняло оставленную купертиновцами нишу и позволяло управлять устройствами из HomeKit на большом экране телевизора.
Довольно странно, что с переходом на tvOS данное направление практически не развивают в компании, ведь телевизионная приставка с пультом ДУ гораздо больше походит на роль умного хаба в доме, чем смартфон или планшет.
После удачного опыта с программой для Apple TV началась разработка универсального хаба для объединения всех гаджетов в доме. Так называемый Sprut.hub по задумке создателя должен был объединить все распространенные протоколы связи и подружить гаджеты разных производителей друг с другом.
Для сбора интересных идей и тестирования наработок был запущен портал sprut.ai. Это своего рода открытый клуб единомышленников, которые “болеют” темой умного дома. Это позволило объединить сообщество и просто предоставить место для общения по теме.
На данный момент это самое крупное объединение в русскоязычной среде, где можно узнать тематические новости, найти полезные инструкции, поделиться кодом или посмотреть наработки других авторов.
Все это время (около двух лет) команда из четырёх человек трудилась над созданием приложения Sprut.home и готовится к выпуску нового умного хаба Sprut.hub.
Что еще за Sprut.hub такой
Рендеры третей модификации хаба, который скоро появится в продаже
Главная цель Sprut.hub – избавить пользователя от навязываемых экосистем и закрытых цепочек одного производителя. В идеале можно будет вообще не переживать по поводу совместимости гаджетов и покупать любое устройство с умной составляющей.
Дальше гаджет через хаб подружится с другой умной электроникой и будет доступен для управления любимым голосовым ассистентом.
Такую версию Sprut.stick 2 Pro на протоколе ZigBee можно купить прямо сейчас
До появления Sprut.hub для этого приходилось использовать Raspberry Pi с давно известным HomeBridge и кучей скриптов для сопряжения с разными устройствами.
Первый появившийся модуль Sprut.stick позволял расширить возможности такой “малинки” и без проблем подключать к ней самые распространенные модели умных устройств.
Sprut.hub на платформе Wiren Board
Позже Sprut.hub расширился на платформу Wiren Board. Это разработка отечественной компании, которая с 2012 года производит электронику и гаджеты для автоматизации. Это позволило пользователю бесшовно совмещать проводные ModBus-устройства и беспроводные решения на Zigbee и zwave одновременно.
Wiren Board это не узко заточенные устройства для умного дома, а набор устройств широкого спектра применения. Такие гаджеты уже несколько лет применяются в банковской сфере, энергетической промышленности, жилищно-коммунальном хозяйстве.
На данном этапе развития было принято решение построить еще одну “железку” для совмещения всех имеющихся протоколов связи с умными гаджетами с нуля. Это и есть реализация первоначальной идеи разработчика – собрать все распространенные протоколы связи в устройстве, с которым разберется даже домохозяйка.
Уже сейчас прототип нового Sprut.hub понимает Wi-Fi, Bluetooth, ZigBee, Z-Wave, RS485 (ModBus). Ведутся переговоры с другими производителями умных экосистем для интеграции их устройств в систему Sprut.
Круче всего, что на выходе хаб может передавать сигнал в любую из актуальных систем управления умным домом с голосовым ассистентом: HomeKit, Google Assistant, Алисе от Яндекс или Марусе от Mail.ru. Вот пример такого взаимодействия.
Зачем тогда здесь приложение Sprut.home
Первые варианты дизайна приложения Sprut.home
Программа стала логичным развитием идеи HomeCenter, но заточена под iPhone (версия программы для iPad и macOS скоро будет доступна в магазине).
Первый набросок будущего интерфейса приложения
Приложение появилось в App Store пару месяцев назад и на данный момент представляет лишь базовые возможности. Однако, тестирование и добавление новых фишек происходит регулярно.
Команда разработчиков вместе с тестерами-энтузиастами активно проверяют новые возможности и выкатывают их в релиз.
Так выглядела первая “карусель в приложении”
Кстати, “карусель” карточек в главном меню приложения является полностью уникальной разработкой, а не каким-нибудь стоковым элементом интерфейса, который копируют создатели недорогих утилит-клонов. Здесь все выверено до миллиметра и до сотой доли секунды, физика и анимация прописывалась и шлифовалась в лучших традициях Apple.
Сейчас это более удобная и красивая оболочка для системы управления HomeKit. Приложение платное, деньги идут на поощрение небольшого коллектива, который на голом энтузиазме разрабатывает революционные продукты в перспективной нише.
Чем Sprut.home лучше приложения Дом от Apple
Утилита Sprut.home зародилась именно из-за несовершенства фирменного приложения Apple, которое хоть и является лишним из существующих пультов для умного дома, но несколько лет практически не развивается и стоит на месте.
Вместо плоской и минималистичной утилиты разработчики попытались создать более наглядный и по-своему уникальный пульт управления умным домом. Получилось свежо и интересно, а главное – не похоже на все остальные подобные приложения, который делаются под копирку.
Sprut.home работает со всеми устройствами, которые добавлены в HomeKit, кроме HomePod, Apple TV, телевизоров и поддерживаемых маршрутизаторов. Это не прихоть разработчиков, а ограничения со стороны Apple.
Вот ключевые особенности Sprut.home, которые делают его лучше “стандартного Дома” на iPhone.
1. Более простой и наглядный интерфейс
Приложение от Apple не блещет интуитивно понятным управлением. При всей простоте структуры программе явно не хватает наглядности. Просто посмотрите на анимации выше, как выглядит перемещение между комнатами в двух приложениях.
В Sprut.home сразу понятно, сколько комнат добавлено в умном доме, простым прокручиванием списка можно перемещаться между ними и использовать быстрые переключатели для управления электроникой. Аналогичное меню позволяет переключаться и между несколькими умными домами.
Кроме этого на карточке каждой комнаты увидите статусную строку с показателями разных приборов и датчиков. Разработчики постарались найти идеальный баланс между количеством информации, интерактивными элементами и пустым пространством на экране, чтобы интерфейс не напрягал и был удобным.
Даже банальное включение и выключение света в комнате дублируется подсветкой карточки. Странно, почему в Apple так не сделали.
2. Все заточено под управление одной рукой
Согласитесь, вдумчиво и вальяжно приложение для умного дома вы будете использовать только первый раз во время настройки. В дальнейшем программа будет выступать в роли пульта дистанционного управления.
Чем быстрее и проще будет управление, тем лучше. Именно по такому принципу и создавалось приложение Sprut.home.
Переключение между комнатами или домами это простая прокрутка списка в виде вертикальной карусели. Остановил палец на нужной комнате и сразу можно управлять гаджетами.
Почти все иконки и переключатели оказываются в зоне досягаемости большого пальца при хвате iPhone одной рукой, никакой удобный доступ здесь не нужен.
А как же здорово выглядят и работают колесики регулировки яркости/громкости/температуры. Есть виброотклик и кинетическая прокрутка, все выполнено по заветам Apple.
Меню включения, изменения яркости, цвета или режимов работы выполнены в едином и понятном для пользователя стиле.
3. При наличии камер интерфейс оживает
Установленные в доме камеры будут выводить актуальные снапшоты прямо в интерфейс главного экрана. Простая прокрутка списка позволит оценить обстановку.
Если же остановить карусель на конкретной комнате, получите live-трансляцию с камеры наблюдения. Без дополнительных меню, диалоговых окон или всплывающих подсказок.
Можно оценить ситуацию прямо на ходу, находясь вдалеке от дома и не тратя много времени на переключения по разделам программы или экранам с разными комнатами.
4. Главное меню полностью настраиваемое
Разумеется, можно добавлять любые гаджеты в избранное, менять местами комнаты в списке, скрывать ненужные устройства или сортировать их при переполнении перечня.
Главное, можно собрать все самые полезные переключатели, гаджеты, датчики и камеры в одном месте, чтобы превратить программу в удобный пульт.
Так после открытия приложения для отправки нужной команды потребуется не более пары тапов по дисплею.
Что ждет проект в будущем
На данный момент это лишь список визуальных реализованных фишек приложения Sprut.home. Утилита уже в разы нагляднее и удобнее программы Дом от Apple.
За неделю тестирования у меня резко сократилось экранное время программы для управления умным домом. Если раньше для настройки или включения гаджетов приходилось тратить 7-10 минут ежедневно, то сейчас Sprut.home запускается максимум на 1-2 минуты.
Уже за это можно поставить 5 звезд программе в App Store. Разработчикам пользовательского интерфейса из Купертино здесь есть, чему поучиться.
Однако, визуальная оболочка для HomeKit это только начало, или правильнее сказать, одна грань проекта Sprut. По-настоящему расцветает программа вместе с гаджетом Sprut.hub.
Так будет выглядеть веб-интерфейс сервиса
Разработчики поделились планами на ближайшее будущее и они порадуют всех без исключения любителей умной техники.
Во-первых, ведется активная разработка веб-интерфейса для управления устройствами из Sprut.hub. Это позволит быстро просматривать статус гаджетов в доме или управлять электроникой прямо во время работы за компьютером.
Перейти на отдельную вкладку в браузере порой бывает быстрее, чем доставать смартфон из кармана и искать иконку нужного приложения. При этом на большом экране может поместиться гораздо больше выключателей и информационных карточек.
Так будет выглядеть новый Sprut.hub в 2021 году
Во-вторых, на финальной стадии находится запуск самой навороченной на данный момент версии Sprut.hub. Эта волшебная коробочка отлично дополнит приложение и впишет в любую используемую вами систему управления умным домом большинство гаджетов на рынке.
С ней вы забудете о танцах с бубном и всевозможных костылях.
В-третьих, команда разработчиков планирует сделать приложение для Android. Большую часть аудитории нашего сайта это не особо заинтересует, но факт того, что можно будет подружить Android и HomeKit заслуживает уважения. Обещают представить утилиту в 2021 году.
Связь между несовместимыми на данный момент системами будет возможна как через Sprut.hub, так и через облачный сервис.
Все это можно ускорить и профинансировать, купив приложение Sprut.home в App Store.
Сейчас это лишь первый кирпичик в фундаменте умного дома нового поколения. Чем активнее будет отклик пользователей, тем больше энтузиазма это добавит разработчикам системы. Все вопросы, пожелания и предложения по поводу развития проекта можете высказывать в Telegram-канале проекта.