Управление Умным Домом с телефона — мой опыт

в 15:52, , рубрики: DIY, diy или сделай сам, iridium mobile, nodejs, умный дом

Сегодня невозможно представить умный дом без управления с мобильных устройств. Когда я только начинал свою эпопею с умным домом, то возможность управлять с телефона была одной из главных, а если быть совсем честным, то в моем списке ответов “а зачем это вообще нужно?” управление с мобильных устройств было на первом месте.

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

Первый версия мобильного интерфейса для моего умного дома была сделана при помощи Iridium Mobile. Пользуясь служебным положением я получил демо лицензии Iridium Mobile для своих мобильных устройств и процесс пошел. Причина, почему я выбрал Iridium Mobile заключаясь не только в бесплатных демо-лицензиях, а также в том, что он поддерживает протокол Modbus и это позволяет подключаться напрямую к контроллеру без каких либо дополнительных ухищрений.

В своем ПЛК я создал модуль Mobdus Slave с входными и выходными регистрами и написал блок синхронизации, а дальше в среде иридиум набросал простенький интерфейс.

image

Не могу сказать, что графический редактор очень удобный, но разобрался достаточно быстро и первый интерфейс для моего умного дома был готов где-то за час. Нужно сказать, что возможностей там очень много и я видел очень красивые решения, сделанные на иридиуме — климат-контроль, управление сценариями освящениями, sip-домофон, интеграция с медиа-центром и т.д. Но у меня задача была гораздо проще — управление светом, поэтому все возможности я даже и не изучал.

На мобильное устройство нужно поставить приложение i2 Control. Оно бесплатное, но для того чтобы загрузить в него созданный проект нужно купить лицензии. В моем случае это были бесплатные демо-лицензии.

image

Так выглядел интерфейс моего умного дома в приложении i2 Control на iPhone. Приложение я поставил на все мобильные устройства имеющиеся в семьи и тут я наткнулся на первую проблему. Ккогда работаешь на ноутбуке, а телефона под рукой нет, то было бы удобнее управлять светом непосредственно с ноутбука.

Сделать на Iridium Mobile это можно, но нужно поставить программу i2 Control для Mac (или для Windows) и подключись лицензию. Во-первых, у меня закончились бесплатные демо-лицензии, а во-вторых запускать программу только, чтобы включить или выключить свет не очень-то удобно. С тем же успехом я могу зайти через удаленный десктоп на сервер, где обычно все время запущен CoDeSys с визуализацией. Собственно, я обнаружил, что чаще я так и делаю, вместо запуска специализированного приложения на телефон или планшете.

image
Визуализация в CoDeSys. К сожалению, моя версия ПЛК (программируемого логического контроллера, на котором построен мой умный дом) не имеет встроенного веб-сервера — иначе задача решалась бы гораздо проще.

От установки i2 Control на свой Mac я отказался и довольствовался управлением только с телефона и планшета.

Спустя некоторое время всплыла вторая проблема. Запуск приложения i2 Control занимает достаточно долгое время. Например, на моем iPhone 6 оно стартует около 9 сек. Наверное, если бы задача была управление медиа-центром, то это время было бы приемлемо — пока найдешь все пульты, включишь всю технику, настроишь нужное сочетание, то явно пройдет больше времени. Однако для управления светом эти 9 секунд оказались неприемлемо долго и зачастую я предпочитал встать и выключить свет, чем запускать приложение (сейчас вышел Iridium server, который по идее решает эту проблему, но руки протестировать его у меня пока не доходят).

Жить с умным домом и не управлять им с телефона было как-то неправильно и поэтому я решил седлать еще одну попытку. Идея была такая — на домашнем севере поднять веб-сервер и вынести все управление на веб-страницу. Знакомые посоветовали Node JS — мол, модная и перспективная платформа, а так как мне все-равно было что изучать (я не знал ничего), то остановился на Node JS. Единственное, что не хотелось делать — это разбираться в HTML, поэтому я заказал frontend у фрилансера, а на Github’е нашел библиотеку для работы в Modbus и очень быстро (сам удивляюсь) сделал задуманное.

image

Так выглядит сейчас интерфейс моего умного дома на Iphone. Интерфейс адаптивный, поэтому он хорошо смотрится на любых устройствах. Например, вот так он смотрится на моем макбуке:

image

На десктопе айфона у меня сделана ссылка на эту страницу, которая загружается достаточно быстро 1-3 сек. Я добавил ее также в закладки в браузеры и теперь управление светом всегда под рукой. Сервер Node JS выполняет также роль между ПЛК (контроллером умного дома) и контроллером z-wave, который используется для беспроводного управления разными лампами (об этом я расскажу в будущем).

Традиционно в конце плюсы и минусы решения.

Плюсы: Быстрый адаптивный интерфейс, который работает на любых устройствах, цена (я заплатил только за разработку фронтона).

Минусы: Необходимость программирования. И если добавление выключателей делается достаточно просто (я, например, перед Новым Годом добавил управление елкой), то, например, интерфейс к медиа-центру это целый и большой проект.

Исходный код на Gitbub.

Автор: apivovarov

Источник

Поделиться новостью

* - обязательные к заполнению поля