Скачать приложение умный дом для смартфонов io. Заказать умный дом

28.03.2019

Программа для управления всеми системами Умного Дома. Устанавливается на планшетный компьютер на Windows, Android, iOs. Подключается к контроллеру через Wi-Fi или интернет (протокол связи ModBus TCP).
Работает с практически любыми промышленными контроллерами, в том числе Beckhoff и ОВЕН.

Интерфейс (внешний вид) программы полностью изменяем. Иконки, фоны, расположение элементов, надписи - всё изменяется самим пользователем или установщиком. Возможно создавать разный интерфейс для разных устройств. Количество устройств, на которые устанавливается программа в пределах одного контроллера, не ограничено.

Функции программы EasyHome:

  • управление системами освещения (в том числе разноцветными светодиодными лентами и лампами с изменяемой яркостью свечения)
  • управление климатом каждого помещения
  • связь с системеми охранной и пожарной сигнализации
  • связь с системами вентиляции и кондиционирования
  • контроль потребляемой мощности по нескольким фазам с автоотключением неприоритетных нагрузок
  • управление розетками и прочими электроприборами
  • установка на любое количество устройств, управление через Wi-Fi или интернет
  • контроль и предотвращения аварий: протечка воды, утечка газа, электроаварии
  • сбор информации со счётчиков воды, газа и электричества
  • управление по сценариям и предустановкам
  • доступ к контроллеру через локальную сеть или через внешний IP адрес (автовыбор при запуске программы)
  • отображение изображения с IP видеокамер (в версии для Windows, поддерживается видеопоток MJPEG и H264, не все модели камер)
  • возможность запуска разных интерфейсов (запрос при запуске программы)

И многое другое!

Скачать EasyHome для iOS (iPhone и iPad):

Чтобы загрузить DEMO версию интерфейса приложения надо в окне добавления конфигурации набрать адрес:

http://сайт/downloads/EH_DEMO.ehpa

Новое в версии EasyHome 7.9.5 для iOS (январь 2018):

  • Добавлен удобный контрол светодиодной ленты RGB с выбором цвета
  • Уоучшена функция автомасштабирования элементов
  • Исправлен адрес скачивания Демо интерфейса (сайт был переведен на защищенный протокол https)
  • Улучшена панель аварийных сообщений
  • Множество мелких улучшений и исправлений в работе программы

Новое в версии EasyHome 7.9.1 для iOS (апрель 2017):

  • Загрузка файлов конфигурации через интерфейс самой программы
  • Выбор конфигурации при запуске и быстрая смена интерфейса
  • Новый контрол управления RGB лентами
  • Функция автоповорота экрана (удобно для iPhone)
  • Прочие мелкие улучшения и исправления

Как пользоваться ДЕМО версией:

1. Скачать архив

2. Распаковать архив в любое место (например, на рабочий стол)

3. Запустить файл EasyHomeEditor.exe

В ДЕМО версии можно делать всё, что угодно: менять интерфейс, двигать элементы, перемещаться между окнами и т.д. Но поскольку связи с контроллером нет, то икноки не будут меняться при нажатии, а все значения (температуры, токи, состояния) будут равны нулю. Для возможности подключения к контроллеру надо приобрести лицензию (информация о цене - внизу этой страницы).

Новое в версии EasyHome 7.8 (апрель 2017):

  • Возможность отправки контроллером произвольных смс-сообщений на русском языке для контроллеров ОВЕН (ранее было доступно только для Beckhoff)
  • Появились свободные функции. Можно задавать любую логику работы входов и выходов через интерфейс EasyHome. Ранее это было доступно только через изменение кода контроллера нашим инженером.
  • Появились мультисцены
  • Добавлен удобный драйвер для работы с инфракрасными передатчиками по интерфейсу RS485. 4 режима управления любыми кондиционерами через ИК-команды.
  • Возможность подключения инмерителя параметров электросети к контроллеру ОВЕН на одну или три фазы.
  • Можно подключать до 10ти модулей расширения ОВЕН в любой комбинации, общее количество дискретных входов и выходов может быть теперь до 255.
  • Появился астрономический датчик освещённости по высоте солнца.
  • Всякие мелкие улучшения.

Новое в версии EasyHome 7.7 (декабрь 2016):

  • Многочисленные улучшения интерфейса
  • Увеличение скорости работы на системах Windows 10 и iOS 9
  • Появилась возможность перекрывания разных стояков водоснабжения при срабатывании разных датчиков протечки воды
  • Появилась возможность постановки на охрану произвольного набора датчиков движения
  • Появилась функция мультиинтерфейс - предзагрузочное графическое меню в котором можно выбрать, какой именно интерфейс запустить

Все ли окна закрыты? Выключен ли свет? Не пробрался ли кто в квартиру? Если ваш дом подключен к Сети, достаточно одного взгляда на экран смартфона, чтобы узнать, все ли в порядке. Это становится возможным благодаря системам умного дома. И самое замечательное, что можно управлять своим жилищем отовсюду. Нужно всего лишь нажать кнопки на экране смартфона, чтобы приглушить свет в гостиной, отрегулировать отопление или включить телевизор.

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

Простое переоснащение техники

Сверления, прокладки кабеля или пробивания стен для этого не требуется. Многие устройства для умного дома можно закрепить обычным двусторонним скотчем. Их питание обеспечивается от аккумуляторов или батареек, а команды управления и данные сенсоров можно передавать посредством радиосигнала.

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

Пункт управления в свою очередь подключен к роутеру и обеспечивает соединение со смартфоном и с Интернетом. К тому же он позволяет управлять всеми устройст­вами, чтобы, к примеру, при уходе жильцов из дома автоматически выключались все электроприборы и включалась система безопасности.

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

Приложения для умного дома

Netatmo Welcome: Сетевая камера с распознаванием лиц

Мобильное приложение Netatmo Wel­come расскажет вам, кто сейчас находится в доме. Если видео­камера не может идентифицировать человека по лицу, она запускает видеозапись и уведомляет вас об этом. Когда вы дома, приложение может информировать вас о попавших в объектив движущихся объектах или улавливаемых микрофонами звуках тревоги (например, от датчика дыма). Видеозаписи сохраняются локально на входящую в комплект SD-карту или сервер FTP. Запись, а также удаленный доступ к видеоизображению предоставляются бесплатно, а вот за видеокамеру нужно будет однократно заплатить примерно 17 000 рублей.

Платформы: Android, iOS

Yale ENTR: Открытие входной двери через смартфон

При использовании ENTR Smart Lock или August Smart Lock вы можете оставить дома ключ от входной двери. Ведь электронный дверной замок откроется, когда вы проведете пальцем сверху вниз в приложении. Команду на открывание замок получает через зашифрованное соединение Bluetooth Low Energy. Когда вас нет дома, можно предоставить ограниченный определенным временем доступ в дом знакомым или вызванным мастерам. Если кто-то из проживающих вместе с вами все же захочет открыть дверь обычным ключом, сделать это возможно. Умный замок ENTR (около 25 000 рублей) устанавливается на внутренней стороне двери и не виден снаружи.

Платформы: Android, iOS

Gigaset Elements: Защищаем жилище от непрошеных гостей

С Gigaset Elements Starter Kit вы сделаете свой дом более безопасным, потратив всего около 12 000 рублей. Стар­­товая комплектация включает центральный пункт управления, датчик движения, а также датчик взлома двери. В отличие от других систем безопасности, дверной сенсор распознает попытку насильственного проникновения (по уровню шума). В этом случае вы получите уведомление через приложение на смартфоне. С его помощью вы также можете включать режим присутствия или отсутствия дома и устанавливать, в какое время должна активироваться система безопасности. Опционально доступны датчик открытия окна, камера и сирена.

Платформы: Android, iOS

Panasonic Home Network: Полная защита на все случаи жизни

Система безопасности Panasonic Smart Home поднимет вас по тревоге телефонным звонком и в том случае, если вы находитесь офлайн. С помощью интернет-соединения мобильное приложение Panasonic Home Network Sy­stem еще и оповестит вас о происшествии. Инициатором тревоги может быть один из датчиков для двери (окна), датчик разбития стекла или протечки воды из набора Starter Kit Plus (около 20 000 рублей). При установке дополнительных аппаратных модулей приложение также позволяет наблюдать за тем, что происходит внутри или снаружи вашего жилища, включать или отключать бытовые электроприборы, управлять освещением, стационарным телефоном и многое другое.

Платформы: Android, iOS

eQ-3 Homematic IP: Регулировка отопления через смартфон

Удобную возможность для управления температурой в помещении через смартфон предлагает eQ-3 с помощью Homematic IP. При настройке через приложение радиаторные термостаты и оконные датчики соединяются с центральным пунктом управления (который обойдется вам примерно в 5000 рублей) и соотносятся с помещением. Затем термостаты, находящиеся в одном помещении, автоматически синхронизируются друг с другом. И если в комнате открывается окно, они снижают интенсивность отопления. Экономить энергию можно также при помощи графиков нагрева, которые без проблем задаются через мобильное приложение на каждый день и для каждой комнаты - очень удобно.

На сегодняшний день тема умного дома становится достаточно актуальной и популярной, что естественно повышает спрос на системы умного дома. В связи с этим в интернете появилось много энтузиастов по этой теме. Предлагают очень интересные варианты таких систем. Решения разнообразные и довольно интересные, значительно снижающие стоимость системы в сравнении с имеющимися на рынке готовыми системами умного дома. Так как я занимаюсь как раз автоматизацией различных технологических процессов (АСУТП) то меня это тема так же заинтересовала. В связи с этим и подход к разработке системы умного дома будет соответствующий, базирующийся на основах построения АСУТП.

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

Централизованная система. Децентрализованная система.

А именно чтобы не было единого блока, на котором всё завязано, так как при сбое в работе или выходе из строя такого блока “ложится” вся система. В моем варианте система разделена на блоки по функциональности. Основное разделение проведено между контроллером, выполняющим непосредственно контроль и управление каким либо объектом управления и диспетчерской станцией, модулем, который занимается исключительно своей задачей, устанавливает связь по локальной сети с контроллерами, производит их опрос, соединяется с удалённым веб сервером, синхронизирует с ним данные и т.д. Контроллер может быть один, а может быть и несколько, в зависимости от количества объектов управления.

Это связано с тем, чтобы не тянуть, например к одному контроллеру силовые и сигнальные линии с удаленных участков дома. Проще в этом смысле расположить сам контролер в непосредственной близости от объекта управления, и соединить его всего одним проводом с диспетчерской станцией по Ethernet или вообще обойтись в этом случае без провода, соединив контроллер и диспетчерскую станцию по wifi . Такой подход имеет ряд преимуществ. Например, если отделка дома уже закончена, то не надо ничего штробить и тянуть кучу кабелей по всему дому, к одному единственному контроллеру, а разместить сам контроллер максимально близко к объекту управления, и выполнить соединения контролеров с диспетчерской станцией (планшетом) по wifi . Это значительно сократит длину силовых проводов от контроллера до объекта управления, а wifi вообще исключает провод, соединяющий контроллер и планшет. Например, контроллер управления системой подогрева пола располагается там, где это действительно удобно с точки зрения монтажа силовых кабелей и по wifi соединяется с планшетом. А другой контроллер, ну например контроллер учёта электроэнергии располагается в близи счётчика и так же соединяется по wifi с планшетом. Аналогично подключаются и другие контроллеры, управляющие какими либо другими объектами управления.

Блок схема централизованной системы автоматизации умным домом.

Блок схема децентрализованной системы автоматизации умного дома.

Контролеров в этом случае может быть столько сколько необходимо. Если же объекты управления располагаются достаточно близко друг от другого, то один контроллер может объединить функционалы управления этими объектами. При необходимости можно обойтись вообще одним контроллером, объединив в нём весь функционал управления всеми объектами, но тогда теряются все плюсы приведенные выше. То есть система в целом получается очень гибкая и удобная в смысле расположения монтажа и требует минимум проводов. А ситуация с прокладкой новых кабелей и сигнальных проводов как известно становится настоящим камнем предкновения при установке системы умного дома в доме с новой отделкой!

Основной принцип разделения контролера и планшета заключается в том, что программа автоматизации объектом управления выполняется непосредственно контроллером и не зависит от состояния диспетчерской станции (планшета). Это даёт определённую надёжность системе. В случае сбоя, по каким либо причинам, в планшете или, например, пропала связь между контроллером и планшетом (подвис wifi роутер), контролер всё равно будет выполнять свою задачу, например поддержку заданной температуры, или управления газовым котлом. Все параметры процесса автоматизации хранятся в самом контроллере, а не в планшете и сама программа автоматизации исполняется контроллером. Благодаря этому такие аварийные ситуация не приводят к сбою в работе всей системы умного дома. В таких ситуациях максимум что может принести неудобство это невозможность управлять системой умного дома с планшета или отсутствие удалённого доступа через веб интерфейс умного дома. А это не смертельно! Главное что все процессы автоматизации всех объектов управления продолжат выполняться в штатном режиме. В случае, когда отказал по каким либо причинам планшет, и нет возможности управлять параметрами контроллеров через интерфейс приложения планшета, предусмотрена система ручного управления в контроллере. Контроллер имеет жк дисплей или цифровой индикатор и кнопки. С помощью простого меню, в случае такой необходимости, можно изменить все необходимые параметры. Хотя в целом возникновение такой ситуации, когда откажет планшет или локальная сеть, очень мало вероятно, но всё же такой вариант предусмотрен.

Контроллер.

Фото контроллера.

Контроллер выполнен на базе микроконтроллеров. Имеет на борту элементную базу необходимую для решения конкретной задачи, так же имеет модуль Ethernet или wifi для связи с планшетом, элементы ручного управления (дисплей, кнопки). В зависимости от мощности и функционала контролера, изменяется соответственно и элементная база контроллера. Например, переход на 32 битные микроконтроллеры с 8 битных, и многое друге. Вообще функционал контролера может существенно изменяться, в зависимости от требований и поставленных задач. Такую гибкость в функциональности и огромный выигрыш в снижении стоимости контроллера и в целом всей системы, даёт индивидуальная разработка контроллера под конкретную задачу. Процесс разработки оптимизирован и не занимает много времени. Печатная плата разработана по блочному принципу, и при разработке печатной платы понадобятся минимальные изменения, это же касается и программного кода. Код разбит на готовые модули, что значительно ускоряет написание программы. Элементная база и корпус, тоже стандартные.

Диспетчерская станция (планшет).

Фото планшета с главной страничкой приложения умного дома.

В качестве диспетчерской станции используется планшет android . Хотя это не принципиально, это может быть и смартфон. Просто планшет боле удобен в домашнем использовании, более удобно управлять системой умного дома на экране хотя бы 7 дюймов. Если интерфейс не сложный, то можно использовать смартфон. В общем кому что больше по душе.

Есть так же возможность вообще отказаться от планшета. Например, в таких случаях, когда задачи автоматизации не сложные, а органов ручного управления на контролере вполне достаточно для использования контролера. При таком условии можно легко отказаться от планшета и сэкономить деньги. Контроллеров в этом случае так же может быть столько сколько необходимо. Каждый контролер в этом случае подключается напрямую по wifi к роутеру и самостоятельно, периодически соединяется с удалённым веб сервером для обмена данными.

Удалённое управление.

Изначально планировал организовать удалённое управление с помощью сокет сервера. Планшет являлся бы сокет сервером а клиентом было бы, сетевое android приложение. С точки зрения безопасности такой вариант был бы более предпочтителен, т.к использовался бы свой протокол сетевого обмена и технология серилизации обьектов в java , при которой объект передаётся по сети потоком байт, плюс ключи безопасности на изменение какого либо параметра автоматизации. По определённому алгоритму клиент и сервер обмениваются специальными ключами безопасности. Изменение параметра автоматизации на стороне сокет сервера происходит только с проверкой такого ключа безопасности. Таким образом, соединение с сокет сервером и изменение какого либо параметра автоматизации злоумышленником, становится практически не возможным.

Однако есть несколько минусов в таком подходе, во первых понадобится белый ip адрес, во вторых для удалённого управления понадобится смартфон android для установки сетевого приложения. Мне хотелось сделать удалённое управление умным домом более доступным, чтобы можно было зайти на свою страничку умного дома откуда угодно с любого устройства имеющим обычный веббраузер. Именно поэтому я пошёл по пути веб технологий и создания веб приложения, размещённом на удалённом веб сервере. Безопасность в этом случае не такая надёжная как с вариантом сокет сервера, однако в веб технологиях применяется много эффективных средств защиты, таких как авторизация, и защищённое https соединение. Так же с целью безопасности, в этом случае можно исключить возможность изменения особо ответственных параметров через веб интерфейс умного дома.

Блок схема удалённого доступа.

В обоих вариантах конфигурации системы умного дома с планшетом и без него, есть возможность удалённого управления умным домом через веб интерфейс, вашу веб страничку умного дома. Сам веб проект умного дома располагается на удалённом веб сервере. При таком подходе нет необходимости иметь веб сервер у себя дома, заботится о его безопасности, оптимизации различных характеристик, ненужно так же платить вашему провайдеру за белый ip адрес. Тем более что сейчас много бесплатных хостингов с поддержкой mysql и php . На данный момент мой проект располагается именно на таком хостинге. В случае конфигурации с использованием планшета, android приложение соединяется с веб сервером по безопасному ssl соединению и передаёт в запросе данные на сервер и читает данные в ответе сервера. При конфигурации системы умного дома без планшета, контроллер сам соединяется с веб сервером и синхронизирует данные с веб сервером. Все параметры необходимые для контроля параметров и управления объектом, синхронизируются между веб интерфейсом и контроллером через базу данных удалённого веб сервера.

Описание работы системы умного дома в конфигурации без планшета.

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

Блок схема системы умного дома без планшета.

Как я уже писал выше, контроллер работает абсолютно автономно, выполняет определённую задачу по заданному алгоритму, например поддержка температуры объекта по ПИД закону регулирования, сейчас это не столь важно, чем именно занимается контроллер. Все параметры процесса управления хранятся в энергонезависимой памяти контроллера. Есть органы ручного управления, с помощью которых устанавливаются все необходимые параметры, например: поддерживаемая температура, дельта, параметры ПИД регулятора, в случае использования ПИД закона и т.д. Контроллер имеет Ethernet , и подключен к локальной сети либо проводом, либо имеет wifi модуль и соединяется с локальной сетью по wifi . Wifi роутер в свою очередь подключен к интренету. Для более глубокой и удобной настройки контроллера, например установка сетевых настроек, контролер имеет встроенный веб интерфейс. Все сетевые настройки устанавливаются через встроенный веб интерфейс контроллера. Помимо выполнения основного алгоритма управления, контроллер один раз в 10 секунд соединяется с удалённым веб сервером и в запросе передаёт все контролируемые параметры процесса на сервер, а в ответе сервера контроллер получает все установочные параметры процесса. Контроллер в данном случае выступает в роли веб клиента. Если параметр был изменён через веб интрефейс умного дома, то и в ответе от сервера контроллер получит этот изменённый параметр и далее продолжит выполнение алгоритма с учётом изменения параметра, с сохранением параметра у себя в энергонезависимой памяти. Таким образом, происходит удалённый контроль и управление объекта автоматизации с помощью веб интерфейса.

Описание работы системы умного дома в конфигурации с планшетом.

Блок схема системы умного дома с планшетом.

В случае, когда объектов управления достаточно много, и контроллеры управления находятся удалённо друг от друга по всему дому, появляется необходимость в едином органе управления, что то вроде пульта управления. Каждый контроллер хоть и имеет свои органы ручного управления, но бегать по всему дому к каждому контроллеру, достаточно не удобно. В этом случае в качестве единого пульта управления (диспетчерской станции) применяется планшет android . Так же в случае, когда контроллеров много и алгоритмы большинства из них достаточно сложные, это отражается и на интерфейсе управления всем умным домом, он становится более ёмким. Приложение планшета имеет эргономичный интерфейс для управления всей системой умного дома. Интерфейс разбит на вкладки по каждой отдельной системе управления. Если в планшете имеется 3g , то приложение может отправлять сообщения на мобильный, информирующие о какой либо аварийной ситуации или срабатывании какой либо из зон охраной системы, так же может производить дозвоны. Планшет взаимодействует с ip камерами умного дома, обновляя снимки в базе данных приложения и обновляя их в интерфейсе на вкладке видеонаблюдения, а так же на удалённом веб сервере. Планшет периодически, каждые 100ms , поочерёдно опрашивает все контроллеры всей системы умного дома, сохраняя полученные данные в базе данных приложения и обновляя данные в интерфейсе. В запросе к контроллеру, планшет передаёт все управляющие параметры. Каждые 10 секунд планшет устанавливает соединение с удалённым веб сервером и синхронизирует базы данных приложения с базой данных удалённого веб сервера. Если были произведены изменения параметра через веб интерфейс умного дома, то сразу после синхронизации баз данных контролер получит изменённый параметр и примет его в алгоритм управления, сохранив его в свою энергонезависимую память.

Функции контроллера здесь практически не меняются, просто теперь контроллер не является клиентом, не сам соединяется с веб сервером, а является сервером и отвечает на запросы андроид приложения.

Такой подход и такая конфигурации даёт возможность управлять всем умным домом с одного устройства, планшета, который без всяких проводов по wifi соединён со всеми контроллерами умного дома, и может располагаться где угодно, соответственно может быть при необходимости переносным. При этом как я писал выше, каждый контролер работает независимо от планшета, планшет в этом случае занимается исключительно своим кругом обязанностей. В случае выхода из строя планшета или роутера, каждый контроллер продолжит свою работу штатно.

  • #1

    Здравствуйте.Ваша программа работает только с ip камерами или с dvr/nvr тоже может принимть?можете прислать ссылку на программу чтоб потестить.пришлите цены и инструкции к вашему умному дому,чтобы отпроектировать по его возможностям.Заранее благодарю.мой майл [email protected]

  • #2

    Данное устройство доступно для покупки? ответьте пожалуйста на [email protected]

  • #3

    Сколько стоит такая система управления умным домом? [email protected]

Здравствуйте, дорогие читатели! Очередная история о том, как менеджер самого среднего звена, сдувая пыль с залежавшихся железок на полке, творит такое, от чего у профессионалов всех мастей боль в глазах. ¡Но, это работает, amigo!

Признаюсь, в этот раз я все хотел сделать правильно. Взял Raspbery Pi с полки. Пирожок тот самый, что я уже использовал в своем роботе-газонокосилке: ссылка на пост и ссылка на другой пост . Взял mosquitto, все должно было работать на mqtt, но от себя никуда не убежишь. Под катом море граблей, велосипедов, плохой пайки, сплошной ад для перфекциониста.


Все началось с желания дополнить мой проект Noorik , который я поставил себе на ворота. Если коротко - это DIY решение для GSM блока открытия ворот.
Для открытия ворот достаточно замкнуть определенные контакты на плате.

Заменил arduino на esp8266 и сделал веб-интерфейс с кнопкой открытия. Это оказалось интересно, но дальше я захотел единый интерфейс для открытия откатных ворот, гаражных секционных ворот и калитки.

Когда я стал расписывать все свои хотелки, оказалось, что мне нужно так же:

  1. система управления котельной
  2. охранная система
  3. мобильный интерфейс к камерам видеонаблюдения
  4. данные о температуре в доме и на улице

Бэкенд

Малинка работала нормально, но при очередном включении просто перестала включаться. Светодиод питания сначала загорается, затем плавно за 3-5 секунд гаснет, сильно греется элемент (polyfuse T075) около гнезда питания. А тут уже руки чесались применить mqtt, блэкджер, пригласить куртизанок и прочие прелести.

Не беда, благо своей участи ждал другой пациент. Orange pi zero в студию. Сколько я не мучился с этим чудом китайской мысли - вдохнуть жизнь в такой маленький пирожок оказалось делом выше моих сил. Я скачивал прошивки на официальном и левых сайтах, я покупал прошивки с рук и обменивал на криптовалюту. Думаю, мне просто попался бракованный образец.

Я понял, что сама судьба толкает меня в объятья велосипедостроительства, и что уж скрывать радость, я окунулся в это занятие с головой.

Первым делом я решил использовать как головное устройство (брокер, сервер) видавший виды смартфон. Знаете эти старые вещи просто так не уходят. Им пользовался я, жена, дочь, потом я управлял с этого смартфона своим роботом-снегоуборщиком , я пытался утопить его в реке (до Москвы-реки я так и не добрался, но в родной Пахре эта труба навела шороху). И вот она - новая жизнь для Samsung Galaxy S3.

Установил на смартфон Palapa Web Server и Ftp-сервер. Идея простая в базе данных MySQL всего три таблицы: values, logs, rules.

  • В таблице values пары ключ/значение.
  • В таблице logs история изменений значений.
  • В таблице rules правила изменения одних ячеек в зависимости от значения в других.
Все это хозяйство обслуживает один скрипт php, который по http запросу записывает или выдает данные из базы, а так же обслуживает правила по расписанию.
Я даже не понимаю какой должен быть уровень программирования, чтобы человек захотел это увидеть, но я готов показать Вам код - пишите в ЛС.

Фронтенд

Не кидайте в меня камни, я признаюсь сам. Я использовал Bootstrap. Да, грешен.
Первоначальной мыслью было обернуть все это через Phonegap и получить полноценное приложение. Скажу больше я так и сделал, но в итоге более работоспособной оказалась online-версия. Себе и жене на телефоне просто сделал ярлык на рабочем столе для открытия нужной странице по внутреннему ip.

Каждый элемент реагирует на событие нажатие + проверяется состояние ajax запросами на сервер и изменяется в случае необходимости. Очень удобно, так как видишь все изменения, которые вступили в силу по правилу или сделаны другим пользователем.
Собственно, код по запросу без проблем.

ESP-8266


Я пробовал разные модули и чистый ESP-8266. В итоге самым удобным вариантом оказался модуль LOLIN V3.

Питание с помощью импульсных блоков питания.

Модули для ворота требовали реле и у меня были опасения, что контактные реле будут срабатывать. В итоге работют и твердотельные и контактные. Проблема с тем, что большое количество модулей даже без маркировки об этом являются low-triggered.

При включении модуля происходит кратковременное открытие, которые приводит к непроизвольному открытию при включении питания. Решается подтяжкой к нулю и объявлением состояния до объявления типа выхода.

DigitalWrite(rele, 1); digitalWrite(rele2, 1); pinMode(rele, OUTPUT); pinMode(rele2, OUTPUT);
В итоге модуль для гаража в сборе выглядит так. PIR-датчик для определения движения аккуратно вгрызан в родную обшивку.

В котельной у меня котел очень простой и ни о какой сложной автоматике и речи не идет.

При этом каждый контур обслуживает отдельный насос.

Последовательно с автоматами были включены реле для управления насосами и котлом.

Аккуратно впихивает все хозяйство в щиток.

Прошивка

Решил использовать для прошивки Arduino IDE, чтобы не связываться с nodemcu и lua. В интернете и на GT в частности огромное количество информации для начинающих.
Из интересного, мне кажется, функция соединения с wifi. Дело в том, что у меня в доме 4 сети wifi и может добавиться. Чтобы жестко не задавать название сети предварительно проводим сканирование доступных сетей.

Код setupWiFi()

void setupWiFi() { WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); while(WiFi.status() != WL_CONNECTED) { int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) Serial.println("no networks found"); else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { Serial.println(""); Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*"); j=0; ssid=WiFi.SSID(i); Serial.print("Connecting"); ssid.toCharArray(charBuf, 50); WiFi.begin(charBuf,WIFI_PASS); while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); j++; if(j>20){ break; } } if((WiFi.status() == WL_CONNECTED)){ break; } } } } Serial.println("Connected"); Serial.println(WiFi.localIP()); }


При включенном автоматическом режиме котельной по расписанию проверяется температура на улице и температура теплоносителя.
  • При температуре ниже 14*С включается теплый пол первого этажа.
  • При температуре ниже 4*С включаются все контуры.
Температура теплоносителя выбирается по таблице в зависимости от сечения труб и уличной температуры. При достижении необходимой комнатной температуры котел выключается. Ко всему применен некий гестерезис для сглаживания переходных значений.

Система охраны работает еще проще. В таблице есть правило о том, что при включенной системе охраны, если обнаружено движение у одного из PIR-датчиков происходит отправка SMS через API одного из сервисов.

Планы

  • создание online-версии на удаленном сервере и синхронизация изменений для возможности удаленного управления.
  • Отображения данных с GSM/GPS маячков в машине;
  • Открытие ворот при появлении наших машин в определенной зоне;
  • Подключение к системе пультовой охраны;
Голосование по фото. Какой проект делать следующим?

Не так давно был представлен Z-Wave модуль для Raspberry Pi - RaZBerry, который превращает мини-компьютер в полноценный контроллер умного дома. Управление Z-Wave сетью осуществляется с помощью web-интерфейса, использующего HTTP/JavaScript API. Используя JavaScript можно создать набор функций для автоматизации (включение/выключение света, проверка температуры, опрос датчика движения и др.), которые затем можно выполнить, послав HTTP запрос.

Продукт компании OpenRemote с одноименным названием позволяет создавать мобильные приложения для умного дома без программирования, при этом в одном приложении могут использоваться разные технологии: Z-Wave, KNX, X10, ZigBee, управление компьютером по ssh и др.

OpenRemote это сервер выполняющий любые команды и конструктор интерфейсов в котором вы создаете кнопки, переключатели, надписи и др. и этим элементам уже назначаете команды, в нашем случае это HTTP запросы на выполнение JavaScript функций на сервере Z-Wave.

Далее я по пунктам расскажу как создать пульт управления умным домом для iPhone и Android! А вот так будет выглядеть наше приложения, когда мы закончим:

Под катом много картинок.

1. Создание сети Z-Wave c помощью контроллера Raspberry Pi + RaZberry

  • Установка ПО RaZberry на Raspberry Pi
  • Добавление Z-Wave устройств
  • Проверка работы устройства
2. Установка OpenRemote контроллера и мобильного приложения

3. Создание дизайна приложения и логики его работы

  • Разработка дизайна
  • Ассоциация кнопок с командами
4. Резюме

Создание сети Z-Wave c помощью контроллера Raspberry+RaZberry

RaZberry - это плата подключаемая к Raspberry Pi через GPIO, позволяющая создавать и управлять Z-Wave сетью. Для лучшего понимая прочтите Faq . В комплекте с платой идет софт, который нужно установить.

Установка ПО RaZberry на Raspberry

Установщик поддерживает только Debian-based дистрибутивы (Raspbian, Xbian и др.) Однако ручками можно поставить ПО и на OpenElec и другие ОС.
Выполните команду для установки ПО Z-Way:
wget -q -O - http://razberry.z-wave.me/install | sudo bash
После установки, нужно обязательно перезагрузить Raspberry Pi, чтобы применить изменения для Serial порта.

Чтобы попасть в панель управления умным домом перейдите по адресу http://IP_OF_YOUR_RASPBERRY:8083 . Интерфейс программы очень простой, разобраться в нем не составит труда, есть документация . Максимальную совместимость с интерфейсом имеют браузеры: Chrome, Safari, Firefox, другие браузеры: IE, Opera могут работать некорректно.

Добавление Z-Wave устройств

Определимся со списком используемого оборудования:
- Реле Fibaro Single Switch 3kW 2 шт.
- Датчик открытия двери/окна и температуры Fibaro Door/Window Sensor 1шт.

В нижнем меню выберите Режим эксперта . С помощью верхнего меню перейдите на вкладку Сеть → Управление сетью и нажмите Включить (заново) устройство , это запустит процесс ожидания включения устройства в сеть, теперь на устройстве три раза нажмите сервисную кнопку, чтобы контроллер его увидел и добавил.

Проверка работы устройства

Убедимся, что устройство работает. Перейдите на вкладку Настройка устройств , кликните на только, что добавленное устройство в левой колонке и проверьте Стадию интервью , должно быть Интервью прошло успешно и между плюсиков не должно быть точек и заков Ø.

Если интервью не пройдено (есть точки и знаки Ø), то можно его повторить, для этого в нижней части экрана нажмите Дополнительные действия → Принудительно повторить интервью (Режим эксперта должен быть включен, чтобы увидеть это меню).
После успешно пройденного интервью, на этой же вкладке Настройка устройств можно настроить некоторые параметры устройства (не забудьте применить настройки кнопкой Применить настройки к данному устройству внизу экрана, а также разбудить устройство, если оно работает на батарейках):

Для управления устройством перейдите на вкладку Управление устройствами → Выключатели

О предоставленном API автоматизации

Удостоверившись, что все устройства работают правильно, попробуем теперь управлять ими удаленно. Есть несколько способов:

1. С помощью HTTP/JSON API
2. C помощью JavaScript API

HTTP/JSON API использует простой синтаксис для управления устройствами.
Включить свет можно из браузера:
http://192.168.1.113:8083/ZWaveAPI/Run/devices.instances.SwitchBinary.Set(255)
Или запросить температуру:
http://192.168.1.113:8083/ZWaveAPI/Run/devices.instances.commandClasses.data.val.value
JavaScript API позволяет писать различные скрипты автоматизации, например: включить/выключить свет, опросить датчик, получить температуру, выключить свет через 2 минуты после включения. Эти скрипты могут работать как самостоятельно (например: ночью свет включается только на 15%, чтобы не слепить глаза), так и могут быть вызваны удаленно с помощью HTTP/JSON API .

Скрипт включения света:
SwitchOn = function(N,I) { zway.devices[N].instances[I].SwitchBinary.Set(255); }
Вызов скрипта включения света:
К сожалению прямое обращение к устройствам с помощью HTTP/JSON API из OpenRemote проблематично по нескольким причинам:

1. Символы должны быть перекодированы в UTF-8 в Констукторе OpenRemote
2. При опросе датчиков OpenRemote ожидает «on» или «off», а Z-Wave датчики могут прислать 255 или 0.
3. Для каждого устройства придётся писать свой запрос, а с помощью JS можно использовать только одну функцию для включения различных устройств, изменяя в запросе только параметр функции - номер устройства.

При использовать JavaScript API все эти проблемы исчезают - несколько функций «хэлперов» помогут преобразовать термины Z-Wave в удобные для OpenRemote понятия.
Более подробно о синтаксисе HTTP/JSON API и JavaScript API можно почитать в недавней .

Создание JS скриптов для удаленного управления

JS скрипты находятся в /opt/z-way-server/automation/ , создадим файл в котором будут храниться наши функции автоматизации openremote.js , чтобы он автоматически загружался при включении Z-Way, в конец главного файла автоматизации main.js добавьте:
// ====================================================== executeFile(automationRoot + "/" + "tags.js"); executeFile(automationRoot + "/" + "openremote.js"); startAutomation();
/opt/z-way-server/automation/openremote.js
// Включение устройства SwitchOn = function(N,I) { zway.devices[N].instances[I].SwitchBinary.Set(255); } // Выключение устройства SwitchOff = function(N,I) { zway.devices[N].instances[I].SwitchBinary.Set(0); } // Запрос на статус датчика (сработал/не сработал) SensorStatus = function(N,I) { return zway.devices[N].instances[I].SensorBinary.data.level.value; } // Запрос на состояние устройство (включено/выключено) SwitchStatus = function(N,I) { return zway.devices[N].instances[I].SwitchBinary.data.level.value; } // Запрос температуры с округлением до целого Temperature = function(N,I) { return Math.round(zway.devices[N].instances[I].commandClasses.data.val.value); }

Параметр N - номер устройства в сети.
Параметр I - внутри одного устройства может быть физически несколько устройств (каналов), например 2 реле или датчик температуры, датчик движения, датчик освещенности. Параметр I это номер канала внутри устройств. Если устройство содержит только одно физическое устройство, то это параметр равен 0.

После создания файла нужно либо перезапустить Z-Way командой:
/etc/init.d/Z-Way restart
либо подгрузить скрипт вручную, послав запрос из браузера:
http://192.168.1.113:8083/JS/Run/executeFile("automation/openremote.js")
Проверить работоспособность функций можно из браузера.
Включить свет:
http://192.168.1.113:8083/JS/Run/SwitchOn(6,0)
Запросить температуру:
http://192.168.1.113:8083/JS/Run/Temperature(8,2)
В отладке очень хорошо помогает лог Z-Way сервера:
tail -f /var/log/z-way-server.log
Если все работает, переходим к следующему пункту!

Установка OpenRemote контроллера

Контроллер OpenRemote представляет из себя сервер, который получает команды от мобильного или веб приложения и дальше транслирует их другому контроллеру или серверу. В нашем случае это Z-Way сервер.

На сайте OpenRemote есть очень подробная инструкция по установке, которой и предлагаю воспользоваться:
Официальная инструкция по установке OpenRemote на английском языке

Замечу лишь, что OpenRemote написан на Java и нам нужна версия виртуальной машины с аппаратной поддержкой плавающей запятой:
JAVA для ARM процессоров в поддержкой плавающей запятой

Установите мобильное приложение для вашего телефона:
Мобильное приложение OpenRemote

Перед тем как приступить к разработке приложения, для лучшего понимая посмотрите как оно будет работать:

Создание дизайна приложения и логики его работы

Все предыдущие шаги были лишь подготовкой к главному - созданию мобильного приложения!
Откройте облачный Конструктор http://designer.openremote.org . Разобраться в нем не составит труда!

Разработка дизайна

Сразу перейдем к разработке дизайна.

1. Перейдите на вкладку UI Designer и создайте новую панель, назвав ее например, iPhone4.

2. Перетяните из правой панели кнопки и изображения на экран iPhone.

3. В свойствах изображения (правая панель) загрузите ваши картинки и с помощью полей Left, Right, Width, Height расположите их на экране как вам нужно. Я загрузил изображения квадрата и лампочки, также добавил надпись.

Создание команд управления и сенсоров

Теперь нужно на кнопки назначить команды, а картинка лампочки должна изменяться в зависимости от состояния света (включен/выключен).

1. Перейдите на вкладку и создайте новый девайс, назвав его например, Raspberry.

2. Выберите только что созданный девайс Raspberry и создайте новую команду для него New → New command . Выбираем протокол HTTP , вводим URL JS-команды и метод устанавливаем POST .
Эта команда включает устройство №6. Аналогично создаем команды включения других устройств и команды выключения.
http://192.168.1.113:8083/JS/Run/SwitchOn(6,0)

3. Теперь нужно создать команду для опроса состояния света. Это команда будет вызываться каждые 2 секунды, поэтому если вы вручную выключите свет, то в нашем приложении это сразу станет заметно. Как обычно New → New command , но дополнительно нужно указать с какой периодичность проводить опрос Polling , устанавливаем 2s , буква s обязательна.

4. Создадим Sensor, который будет обрабатывать полученные значения от этой команды и передавать их изображению или надписи. New → New Sensor , выбираем команду, которую будет выполнять сенсор, устанавливаем тип custom , добавляем два состояния on и off , ассоциируем их с возвращаемыми значениями Z-Wave.

Ассоциация кнопок с командами

1. Последний этап разработки приложения, ассоциация кнопок с командами. Вернитесь к дизайнеру приложения UI Designer , выберите вашу кнопку и в её свойствах установить команду, которую она должна выполнять.

2. Ассоциируйте изображение с сенсором, чтобы при изменении состояния устройства изменялась и картинка в приложении. Выберите изображение и в его свойствах установите сенсор.

3. В свойствах изображения выберите какая картинка будет показана если сенсор прислал on и какая, если сенсор прислал off .

Синхронизация с мобильным приложением

1. Наше приложение готово, осталось его только залить в телефон. Перейдите по адресу контроллера OpenRemote