Программирование умного дома – Система «Умный дом» своими руками / Habr

Программное обеспечение для умного дома #2 / Habr

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

Чтобы сразу заинтересовать читателя, продемонстрирую некоторую часть сценариев использования ПО:



СЦЕНАРИИ

Lazurite позволяет создавать триггеры и сложные сценарии с условиями и циклами, т.е. пользователь может «запрограммировать» программу с помощью встроенного конструктора на любые свои нужды.

Любой сценарий имеет свой переключатель в пользовательском интерфейсе — «плитку». В зависимости от типа данных сценария переключатель будет выглядеть по-разному.

Примеры переключателей сценариев.

>> Подробнее о типах данных и переключателях.

Помимо этого, в Lazurite существует три разновидности сценариев: одиночное действие, сложный сценарий и удаленный сценарий.

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


Одиночное действие

Одиночные действия — это сценарии, не требующие сложной логики, такие как включение света или изменение уровня звука с помощью «плитки» в меню переключателей. В таком сценарии не получится создать цикл или условие, в нем можно лишь привязать отдельное действие из плагина (о них ниже) к переключателю.

Конструктор одиночного действия на примере создания переключателя ModbusRTU.


Сложный сценарий

Сложный сценарий — это сценарии со сложной логикой, в котором есть циклы и условия.

>> Подробно о создании сложного сценария.

Пока влажность в комнате меньше или равна 40%, то регулировать влажность.

Сложный сценарий на примере работы с Z-Wave устройствами.

Сложное условие с группами и сравнениями числовых значений.


Удаленный сценарий

Lazurite имеет встроенный сервер, на котором крутится WCF-сервис. Именно это позволяет клиентским приложениям получать информацию о сценариях и выполнять некоторые действия. Но, помимо этого, к серверу Lazurite может подключиться другой сервер Lazurite и использовать сценарии удаленного сервера. Для того, чтобы использовать этот функционал, необходимо создать

удаленный сценарий.

Поддержка удаленных сценариев позволяет создать сеть из устройств с установленным Lazurite. Т.е. в сценарии одного сервера можно вызывать сценарии или получать значения сценариев другого сервера.

Например, в большом доме можно создать распределенную систему, в которой несколько узлов с установленным Lazurite будут стоять на разных этажах (комнатах, корпусах), с которыми будет связываться центральное устройство Lazurite. Администратор сконфигурирует систему и решит, насколько будут самостоятельными подчиненные устройства, будут ли они использоваться как простые исполнители или же в них будет заложена некоторая автономность.


ТРИГГЕРЫ

Триггеры — это определенные действия, которые запускаются при наступлении особых условий. От сценария отличаются тем, что не имеют типа данных и не имеют «плитки». Спусковым крючком для запуска триггера является изменение выбранного сценария, т.е. если мы захотим выполнить какие-либо действия при изменении температуры, изменении влажности, появлении пользователя дома и т.д., то нам нужно будет создать триггер на соответствующий сценарий. Конструктор триггера является копией конструктора сценариев, там можно создавать циклы, условия, действия.

Триггер на срабатывание датчика движения.


ДЕЙСТВИЯ

Любая строка, добавляемая в конструкторе сценария, является «действием». Каждый плагин, устанавливаемый в Lazurite, добавляет в программу некоторые новые возможности — действия. Любая работа с Z-Wave, Modbus, геолокацией и т.д. производится через этот функционал. Соответственно, любое действие, как и сценарий, имеет свой тип данных.

>> Список всех действий в Lazurite.

Окно выбора действия в конструкторе сценария.


БЕЗОПАСНОСТЬ

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

Окно настройки безопасности сценария.

Для настройки безопасности доступны следующие пункты:


  • «Запретить для любого использования»;
  • «Запретить для всех групп, кроме…» — запрет на использование сценария пользователям, не состоящим в выбранных группах;
  • «Запретить для всех пользователей, кроме…» — запрет на использование сценария для всех пользователей, кроме выбранных;
  • «Запретить для групп» — запрет на выполнение для выбранных групп пользователей;
  • «Запретить для запуска из сети» — сценарии с этим ограничением не могут быть отображены в клиентских приложениях и не могут быть использованы как «удаленный сценарий»;
  • «Запретить для меню быстрого запуска» — сценарий не будет отображаться в меню быстрого запуска;
  • «Запретить для пользователей» — запрет на выполнение для выбранных пользователей;
  • «Запретить использовать из другого сценария/триггера» — сценарий не может быть выполнен в другом сценарии или триггере.

По умолчанию любой сценарий запрещен для запуска из сети и для меню быстрого запуска.


ПОЛЬЗОВАТЕЛИ И ГРУППЫ

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

Для удобства настройки безопасности сценария пользователей можно объединять в группы, например, можно создать группу «Гости» и запретить этой группе выполнение некоторых сценариев.

>> Подробнее о пользователях и группах.


Z-WAVE

Z-Wave — это беспроводной протокол связи, использующийся в домашней автоматизации. Для реализации протокола используются миниатюрные маломощные радиочастотные модули. Сейчас на рынке ZWave представлен довольно обширный перечень устройств, таких как ZWave лампочки, розетки, релейные модули, переключатели, замки, датчики температуры (влажности, движения, протечки), терморегуляторы, устройства управления кондиционером и т.д. Также распространены мультисенсоры — устройства, сочетающие несколько датчиков (например, датчик освещенности, присутствия, температуры, дверной датчик и т.д.), что весьма привлекательно с точки зрения финансовых затрат и расположения в помещении.

В Lazurite модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.

На изображении выбран узел, мультисенсор — ZW100, затем выбран его пользовательский параметр, с помощью которого можно измерить температуру в комнате.

После того, как будет создан сценарий, использующий этот узел, появится плитка с информацией о температуре.


>> Подробнее о Z-Wave в Lazurite.


СТАТИСТИКА

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

Отображение статистики в виде графиков.

Отображение статистики в виде круговой диаграммы.

>> Подробнее о статистике.


ГЕОЛОКАЦИЯ ПОЛЬЗОВАТЕЛЯ

В Lazurite присутствует функционал GPS-трекера. Любое клиентское приложение отправляет информацию о геоданных на сервер Lazurite, где эти данные можно обработать, сохранить и отобразить. Действия, представленные в плагине UserGeolocationPlugin, созданы для работы с геолокацией пользователей и позволяют вычислять такие значения, как расстояние пользователя до места, нахождение пользователя в определенном месте и т.д.

Некоторые действия предполагают наличие не только пользователя, но и места, или «локации», которое должно быть заведено и настроено в программе. Таким местом может быть дом, работа, город, станция метро. Действия с таким параметром нужны для того, чтобы произвести какое-либо действие по появлению или отдалению пользователя от этой «локации». Место имеет три параметра: координаты центра, радиус и наименование.

Пример созданных мест (дом и работа) и маршрут пользователя между ними в выбранную дату.

Позицию пользователя можно просматривать через приложение Lazurite на смартфоне.

Помимо этого, можно вести историю перемещений, если добавить соответствующий сценарий в статистику.

Перемещения пользователя за большой промежуток времени.

>> Подробнее о плагине.
>> Подробнее об истории перемещений.


РАЗНОЕ

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

Окно отображения входящих сообщений.

Отправка сообщения другому пользователю.

Помимо этого, присутствуют разные другие функции, например Wake-on-Lan, эмуляция мультимедиа клавиш на Windows, управление звуком на Windows, работа с процессами Windows, управление устройствами Modbus и т.д.

О том, как создавать плагины, можно узнать здесь.

Дальнейшее развитие системы на данный момент видится следующим образом:


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

>> WIKI проекта
>> Веб-сайт проекта
>> На GOOGLE PLAY
>> Последняя версия


habr.com

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit / Habr

Уважаемые друзья!

Мы решили поделиться с Вами бюджетным готовым решением, надеемся Вы оцените наши старания. Решение проверенное, рабочее. Во вложении можно скачать все файлы программ и настройки. Отдаем все бесплатно.

Умный дом для заказчика в основном «игрушка» которым можно похвастаться перед друзьями, но эти игры стоят не малых усилий интеграторам!

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

Проблема 1: Если система централизованная, то в случае сбоя центрального контроллера программа не может управлять реле включения света.

Решение: Использовать распределенные модули управления с внутренней логикой, по нашему опыту одним из самых зарекомендовавших себя устройств в этом — программируемое реле ПР200 производства компании ОВЕН. Советуем использовать версию 220в, т.к. бытовые выключатели рассчитаны именно на это напряжение и будет меньше проблем с логической «единицей» на дискретном входе.

image

Это устройство имеет 8 каналов (реле) которые можно запрограммировать с использованием внутренней логики (как распределенную систему), дополнительно подключаются еще модули расширения 2шт. по 8 каналов, но тут есть риск остаться без большего количество управляемых светильников при выходе из строя самого ПР200 (8 каналов против 24), если соберетесь экономить, подумайте!

image

Несмотря на то, что программу выглядит просто, к ней мы шли несколько лет не по своей вине, компания Овен относительно недавно (после появления ПР200) добавила возможность управлять сетевой переменной как с наружи, так и изнутри.

Подробнее о программе:

I8 – это дискретный вход с 8 выключателя в доме или комнате

RTRIG – детектор переднего, необходим для формирования единичного (на один цикл программы) импульса

TO INT – преобразования Bool в INT можно было бы и обойтись, но Slave сетевая переменная в Owen Logic не поддерживает bool.

XOR – исключающее или, если на одном входе 1, то и выход 1, если на оба входа подать 1 выход обнулится, основной элемент программы, который решает по нажатию на выключатель включить или выключить свет.

Реле8 – входная и выходная сетевая переменная, как я и говорил выше с недавнего времени можно использовать эти две переменные с одним регистром (адресом) Modbus, это нам дает возможность сохранить в нее необходимое нам состояние как снаружи, так и внутри без использования различных триггеров. Эти сетевые переменные имеют энергонезависимую память, поэтому при скачке напряжения освещение вернется в последнее состояние.

TO BOOL – конвертируем INT в BOOL значение, потому как реле на выходе имеет состояние False/True.

Шаг 1: программу для 8 каналов можно скачать по ссылке в конце статьи и залить в программируемое реле, не забудьте сменить целевую платформу для своей версии ПР200/110 иначе прошить устройство не удастся!

Проблема 2: стандартные бытовые выключатели имеют состояния включен либо выключен, что в корне противоречит логике управления освещением в умном доме, нам нужны кнопки без фиксации (с пружинками).

Решение 1: Использовать готовые кнопки без фиксации, которые есть у большинства производителей выключателей таких как Shneider, Biticino, ABB и др. (рекомендованное решение, хоть кнопки в одном положении и включенных и выключенных ламп это выглядит эстетически красиво)

Решение 2: Отлавливать в ПР200/110 изменение состояния входа при использование типичного бытового выключателя с фиксацией и дальше посылать импульс программе которую скачали выше, если свет был включен то он погаснет и наоборот (не рекомендуется, т.к. через некоторое время все кнопки будут перепутаны верх и низ)

Проблема 3: верхний уровень у большинства производителей систем умного дома не дотягивает до эстетического и функционального совершенства.

Решение: используем HomeKit от Apple, которое: функционально, удобно и есть голосовое управление.

Шаг 2: стыкуем ПР200/110 с HomeKit

Для этого необходимы следующие инструменты:

Решение рекомендованное для демонстраций:

Raspberry Pi 2/3/4 и к нему usb конвертер rs485 (например с Alliexpress)

image

Решение рекомендованное для инсталляций на базе модуля Raspberry CM3+ в промышленном исполнении c 2 двумя встроенными RS485 портами:

image

Подключите Ваше устройство на базе Raspberry к питанию и домашней сети желательно патчкордом, а не по wifi.

Соедините RS485 порт Вашего устройства и ПР200/110.

Далее определите IP адрес который выдал Ваш роутер и подключитесь по SSh например через программу PUTTY (по умолчанию логин pi пароль raspberry)

Установите программный продукт node-red для стыковки протокола HomeKit на верхнем уровне и Modbus Rtu на нижнем, смотри инструкцию по установке тут.

Не забудьте сделать Ваш node-red сервисом для автозагрузки.

Установите пакет HomeKit и modbus для node-red

cd ~/.node-red

npm install node-red-contrib-homekit

npm install node-red-contrib-modbus

sudo reboot

Ждем перезагрузки и переходим в браузер «ВАШ IP»:1880 (например 192.168.1.110:1880)

Копируем следующий поток (код в конце статьи) и вставляем в веб интерфейс «движка» правил node-red

Заходим в Menu -> import -> вставляем код потока

image

image

image

Необходимо применить поток нажав на кнопку Deploy

В случае неудачи советуем правильно указать RS485 порт в настройках Modbus плагина «Запрос модбас» и «Write Reset FC6» (пример /dev/ttyUSB0).

Для достоверности перезагрузите Ваше устройство SSH à sudo reboot

Шаг 3. Настройка приложения на Вашем Apple устройстве довольно простая.

image

Даем имя нашему дому по желанию, в нашем примере ПР200

image

Добавляем и соглашаемся использовать несертифицированный аксессуар

image

Вводим код доступа, в нашем случае 111 11 111, его можно заменить в настройках Node-red в каждом из аксессуаров HomeKit

image

Добавляем все наши лампы в комнаты, это можно сделать позже.

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

Внимание:

Мы не агитируем к коммерческому использованию протокол HomeKit, любые действия противоречащие лицензионному соглашению APPLE по использованию протокола HomeKit разработчик берет на себя!

Программу для ОВЕН ПР200 и скрипт для NodeRed можно бесплатно скачать тут.

habr.com

подборка гаджетов с открытым API / Habr

Продолжение материала, начало здесь.

В предыдущем материале я писал, зачем мне нужен умный дом и каким образом он должен работать.С тех пор прошло почти два месяца. Основная загвоздка при переходе от теоретической части к практической заключалась в том, что в мире нет единого стандарта, либо же «эталонного» производителя умных устройств, а мне хочется объединить в одну экосистему «зоопарк» из нескольких десятков гаджетов от разных компаний. Проблема в том, что производители предлагают собственный софт для управления гаджетами и какого-то простого способа управлять ими централизованно просто нет.

Я нашел решение, которое позволит мне объединить лучшие в своем классе гаджеты в единую систему и «общаться» с ними через смартфон. Это облачная ОС Corezoid в паре с мессенджером Sender, про возможности которого я уже писал для Geektimes. Теперь мне нужно найти подходящие устройства с открытым API.

Умный дом – зачем это все вообще нужно?

Я живу в двухкомнатной киевской квартире, и экономия меня интересует не сильно. Общая сумма счетов за электричество, отопление, горячую и холодную воду не превышает $20-30 и я не вижу особого смысла как-то сокращать эти затраты. Что мне нужно, так это система видеонаблюдения, лампочки, которыми можно управлять, не вставая с дивана, кондиционер, поддерживающий в помещении комфортную температуру, бытовая техника, работающая по расписанию, управляемые шторы и другие подобные гаджеты. Прежде чем начать закупку устройств, я решил выбрать по одному-два гаджета в каждом классе с открытым API, которые можно будет объединить в единую экосистему.

Лампочки
Управляемые лампочки нужны мне для двух простых целей – возможности включить или выключить свет во всей квартире нажатием одной кнопки и для регулировки яркости освещения. Я выбирал между Philips Hue, LIFX, ilumi, Zipato RGBW bulb и Aeotec LED Bulb.

Мой выбор пал на LIFX — подключаемая через Wi-Fi цветная энергоэффективная лампа, управляемая со смартфона. Команда проекта заявляет, что заново изобрела лампу освещения. В отличии от аналогов, LIFX действительно может похвастать тысячами оттенков одного цвета. Вращая «радужное кольцо» можно создать потрясающую обстановку в квартире, а при помощи вертикального колеса-прокрутки установить оптимальную яркость. Регулировка белого света LIFX позволяет устанавливать и температуру свечения: от холодного света в 8 000 К до теплого и мягкого в 2 700 градусов по Кельвину.

Возможности LIFX не заканчиваются на стандартных установках. Лампочку можно настроить таким образом, что она будет загораться в момент, когда вы заходите в квартиру. А для тех, кто тяжело просыпается в пасмурные, зимние дни в LIFX предусмотрена функция будильника с имитацией рассвета. Заявленный срок службы лампы составляет 40 тысяч часов, а ее энергопотребление составляет 17 Вт при световом потоке 1017 лм.

Один экземпляр LIFX стоит от $40 до $60 в зависимости от модификации. Заказать лампочку можно прямо на официальном сайте устройства.

Электронный замок

Здесь тоже есть из чего выбирать. В продаже можно найти несколько десятков замков с открытым программным интерфейсом – Lockitron, Kwikset Kevo, August smart lock, Goji, Okidokeys и многие другие. Честно говоря, выбрать конкретный вариант достаточно сложно, все они по-своему хороши. Методом исключения: Goji стоит запредельные $324, Lockitron еще не поступил в продажу, Kevo совместим только с ограниченным набором устройств, а API August smart lock еще не опубликован — у меня остался только один вариант — Okidokeys, стоимостью около $189.

Устройство не требует специальных навыков для установки и присоединяется к существующему замку с помощью отвертки и нескольких болтов. Для открытия двери достаточно нажать соответствующую кнопку на смартфоне, который контактирует с замком по протоколу Bluetooth 4.0 и с использованием 256 битного AES шифрования.

Устройство работает от батареек AA и не зависит от внешнего источника электропитания. В случае, если у вас сел смартфон или вышли из строя батарейки, можно воспользоваться обычным ключом. Кроме того, замок может быть разблокирован с помощью RFID метки на карте, в браслете, брелоке или где-то еще. Еще одна крутая функция гаджета – возможность «зашерить» доступ к двери на другое устройство – например, для девушки или родителей.

Дверной глазок с встроенным переговорным устройством

После установки новой двери, я перестал слышать голоса людей, которые находятся на лестничной клетке. Более того, мне не очень хочется вставать из-за компьютера, чтобы сказать пару приветственных слов очередным свидетелям Иеговы или рекламным агентам. Поэтому мне нужен дверной глазок с возможностью трансляции видео и звука на экран смартфона. Три самых интересных экземпляра, которые привлекли мое внимание, это Doorbot, SkyBell и August Doorbell Cam.

Самый симпатичный из них, это дверной звонок для смартфонов Doorbot, стоимостью $199. Когда кто-то звонит в дверь, приложение на смартфоне или планшете показывает, кто стоит перед дверью и позволяет поговорить с посетителем. Doorbot может быть интегрирован с электронным замком Lockitron. В этом случае хозяин может не только поговорить с посетителем, но и открыть ему дверь из этого же приложения. Связь осуществляется через домашний Wi-Fi роутер.

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

Видеонаблюдение

Я много времени провожу в путешествиях и хочу знать, что происходит в квартире в мое отсутствие. Идеальный вариант – это многофункциональное устройство Canary. Внутри корпуса установлена видеокамера с широкоугольным объективом и функцией ночного видения, а также сирена и датчики, способные отслеживать движение, температуру, влажность, качество атмосферного воздуха, вибрации и звуки. Эти параметры записываются, ведется статистика, и в случае обнаружения чего-то необычного устройство подает сигнал тревоги. При этом устройство по размерам сравнимо с поллитровой пластиковой бутылкой. Стоимость гаджета – вполне подъемные $199 или $349 за два экземпляра.

В качестве альтернативы Canary можно приобрести DropCam от Nest за те же деньги.

Климат контроль

Выбор более чем очевиден – термостат Nest, стоимостью $249. Устройство может управлять целым набором бытовой техники: системой отопления, кондиционирования, тепловым насосом, увлажнителем и осушителем воздуха, а также вентилятором. Из всего этого списка в моей квартире присутствует только кондиционер, в планах также приобретение освежителя воздуха.

Первую неделю владелец термостата управляет им в ручном режиме – повышает и понижает температуру, отключает на выходе из дома, выставляет комфортную температуру на ночь и так далее. Примерно через неделю обучения термостат запоминает привычки своего хозяина и начинает сам регулировать состояние воздуха в доме: включать экономию энергии, регулировать температуру и влажность воздуха и так далее. Единственная проблема, которую мне предстоит решить – подключить термостат к уже установленному кондиционеру, не нарушая целостность стен. Как вариант – «присобачить» термостат, рядом с прибором, чтобы не было видно отходящих проводов.

Пылесос

Я люблю возвращаться в чистую квартиру, но ненавижу заниматься уборкой. Чтобы избавить себя от этой головной боли, я решил приобрести пылесос iRobot Roomba. До 600 линейки пылесосы шли с открытым API и возможностью интеграции со сторонними платформами.

iRobot Roomba умеет самостоятельно находить и огибать препятствия, не падает с лестниц и оборудован датчиком пыли, который определяет более загрязненные места. В этих местах устройство проводит больше времени. Эта модель отлично подходит для уборки 1-2 комнатной квартиры и стоит в пределах $200-300.

Жалюзи

В дневное время моя квартира освещена солнечными лучами и порой это мешает работать. Повесить обычные жалюзи и дважды в день открывать и закрывать их – откровенно лень. Я особо не надеялся найти автоматическое решение, но на Indiegogo недавно закончил сбор средств проект под названием MOVE-motorize blinds and shades. Шведские парни сделали жалюзи, которые управляются по Bluetooth с открытым API и возможностью подключения к другим приложениям. Жалюзи могут автоматически опускаться и подниматься не только в заданное время, но и в зависимости от погодных условий. Уже сейчас можно сделать предзаказ за 39 евро и датой поставки в апреле 2016 года.

Кухонная техника

Помните эту цитату с bash.im?
xxx: И наконец первый приз: coffe-blyat.sh — ждет 17 сек (!!!) логинится по ssh в кофе-машину (епрст, мы и понятия не имели что она в сетке да и еще что на ней sshd поднят) и засылает туда какую-то абракадабру. Экспериментальным путем выяснили что ЭТО запускает процесс варения half-caf chai latte среднего размера, которое начинает выливаться в чашку как раз к тому моменту когда неспеша идущий человек добирается от его офиса до автомата.

К сожалению, я так и не нашел кофеварку с открытым API, но в процессе поиска наткнулся на REDMOND SkyCoffee M1505S, стоимостью около $150. Кофеварка со встроенной кофемолкой по функционалу почти идентична чайнику. В ней предусмотрено два режима (молоть зёрна и потом варить, либо сразу варить молотый кофе) и возможность подогрева на протяжении шести часов. Не представляю, как подключиться к ней собственным приложением, но уверен, что-то да придумать будет можно.

Ассортимент умной техники может дополнить умный интернет-чайник SkyKettle M170S, стоимостью около $100. При помощи смартфона владелец гаджета может закипятить воду, не выбираясь из постели или же согреть уже готовый чай. Помимо кипячения, доступно пять температурных режимов: 40°C, 55°C, 70°C, 85°C, 95°C. При этом, убедиться, что вода достаточно теплая (или наоборот, как следует остыла), можно с помощью смартфона – приложение Ready for Sky в реальном времени отображает температуру содержимого «умного» интернет-чайника.

Продолжает линейку гаджетов для ленивых — интернет-утюг Redmond SkyIron C250S. Его стоимость чуть выше $50, а главная фишка устройства — возможность выключить утюг удаленно. Более того, его можно настроить таким образом, чтобы утюг активировался только при условии сопряжения по Bluetooth со смартфоном.

Бюджет затеи

При подготовке материала были использованы публикации:
http://geektimes.ru/company/redmond/blog/264310/

http://habrahabr.ru/company/commandspot/blog/226179/

habr.com

планирование и подготовка своими силами / Хабр

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

Итак, интеллектуально здание, или как его чаще называют — «умный дом». На сегодняшний день это очень не дешёвое удовольствие, но и мобильные телефоны когда-то стоили баснословных денег. Как же подготовить дом/квартиру сегодня, во время ремонта, дабы не пришлось штробить стены в будущем?

Об этом мы и постараемся поразмыслить в этой статье.


Что почём?

На российско-украинском рынке готовые решения начинаются от 2000 $ за базовые, не связанные между собой компоненты. За эту цену вы получите возможность блокировки трубопроводов при обнаружении утечек газа или воды. Не дёшево, но стоит ли ваше спокойствие этих денег?

Более продвинутые пакеты, в которые завязывается сигнализация, простейшее управление светом уже начинаются от 10 000 $.

А вот за ваши кровные 30 000+ $ вы уже получите полный пакет удовольствий с сенсорными панелями разнесенными по дому, с датчиками движения управляющими светом и многое другое.

Если речь идёт про обустройство квартиры не большой площади или дома в 1000 квадратов, то цена конечно же будет меняться в меньшую или бóльшую стоимость соответственно.

Все зависит от желаний и возможностей заказчиков.

Чего бы наворотить?

Безусловно, на сегодняшний день, законодателем моды в сфере интеллектуальных зданий является Билл Гейтс, с его очень дорогим домом площадью в 3700 квадратных метров.

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

  • система обнаружения утечек газа с клапаном отключения подачи
  • система обнаружения утечек воды с клапаном отключения подачи
  • система обнаружения задымлённости/огня
  • система безопасности (вторжение, видеонаблюдение)

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

Далее следует уровень комфорта:

  • управление светом и подсветкой
  • управление поливом
  • управление вентиляцией, кондиционированием, отоплением, слежение за погодой
  • управление механизацией здания (ролеты, ворота, калитки)
  • управление электроснабжением (переключение на резервные источники питания, запуск генератора, контроль состояния батарей)
  • управление аудио, видео системами

Все системы завязываются на один блок управления (центральный компьютер) с распределением радио-пультов, сенсорных панелей по дому. Подключаются различные сценарии. Например, по нажатию на кнопку «кино» автоматически закрываются ролеты, плавно выключается освещение, опускается экран, включается проектор, акустическая система.

Вывод: если даже придумать что-то новенькое, то скорее всего это можно реализовать. Всё зависит только от цены реализации.

На сегодняшний день на рынке представлен достаточно большой выбор датчиков, сенсоров, моторов, блоков управления. Купить можно и китайское, и брендовое оборудование. Цены и качество соответствующие. Для примера, диммер (плавное включение/выключение света) обойдется вам в районе 300 евро, а сенсорный экран, который попытаются вам «впарить» продавцы готовых решений будет стоить уже 1500. При этом в магазине такой же экран можно купить за 500 $.

Хочется, но дорого! Что делать?

Очевидным решением является подготовка квартиры/дома на стадии ремонта, а затем, когда послеремонтное финансовое положение оправится, либо когда все эти датчики и контроллеры упадут в цене — просто установить их на подготовленное место.
С чего начать?

Первое что надо сделать — составить список.

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

Второй шаг — решить ЧТО и ГДЕ будет установлено.

Этот шаг достаточно сложный, т.к. «не специалисты» могут допустить ошибки, однако если включить логику (aka common sense), то задача упрощается. Ведь вполне логично, что если речь идёт про «моторчик» управления жалюзи, то он должен располагаться в непосредственной близости от жалюзи, а если это датчик движения, то он должен располагаться в углах с наибольшим обзором.

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

И наконец — продумать и проложить коммуникации.

Сегодня очень много оборудования продается для «быстрой установки» с возможностью связи по радиоканалу. Это безусловно удобно, но влечёт за собой некоторые трудности. В частности для некоторых исполняющих элементов все равно нужна подводка электричества, а в сенсорных блоках придётся менять батарейки. Так что провода — наш друг.

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

Поэтому проложив UTP кабель + обычный 3х жильный медный провод — можно покрыть сразу большинство существующих систем. Для подключения видео камер, лучше протянуть еще и коаксиальный кабель (такие камеры, обычно, гораздо дешевле IP камер).

И напоследок, пара маленьких хитростей

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

ИК сенсоры управления оборудованием должны быть в зоне видимости этого оборудования. Соответственно для управления телевизором, кинотеатром, кондиционером необходимо проложить проводку в какую-то «потайную» точку напротив устройства. Это может быть и передняя кромка тумбочки, на которой стоит телевизор — лишь бы была видимость.

Высоковольтные и слаботочные кабеля должны быть разведены в отдельные щитки, и проводка по возможности должна лежать раздельно.

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

Кстати, может кому-то будет полезно: для протяжки кабелей существуют специальные зажимы с петелькой на конце. Называется сей дейвайс «кабельный чулок».

Удачи в проектировании!

UPD: Хорошая статья о конструкторе из блоков управления умного дома, с примерами написания своего кода для контроля и управления.

habr.com

Умный дом. Мозги / Habr

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

Но обо всем по порядку. Изначально архитектура моего умного дома включала следующие компоненты:

  • промышленный контроллер ОВЕН ПЛК110-32 (главный мозг)
  • модуль аналогового вывода МУ110-6У (используется для управления диммерами)
  • модуль ввода аналоговых сигналов МВ110-8А (добавился позже для снятия показаний с датчиков).

Все это вместе связано по RS-485 и проколу Modbus RTU. Основной контроллер подключен к Ethernet для связи с внешним миром.

Для управления с телефона изначально я использовал Iridium Mobile, которые мне любезно предоставили производители (да-да, использование служебного положения в личных целях!). В последствии я его заменил на веб-сервис на базе Node JS. Также позже добавилось беспроводная часть на базе z-wave. Про все это я планирую написать отдельно, а пока возвращаемся к нашим овцам.

Программирование контроллера осуществляется в среде CoDeSys, которая поддерживает 5 специализированных языков, из которых я освоил два — FBD (Язык функциональных блоков) и ST (Pascal-подобный язык). Собственно, изначально я думал довольствоваться только FBD, так как программирование на этом языке выглядит как составления диаграмм в редакторе.

Так вот выглядит в FBD подпрограмма (или правильнее функциональный блок) обработки выключателя в коридоре. Кроме включения и выключения света в коридоре этот выключатель используется для выключения света во всей квартире. Одиночное нажатие переключает свет в коридоре, а длительное нажатие (1 сек) активирует команду погасить весь свет.

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

Для сравнения вот так вот выгляди кусок функционального блока диммера на языке ST (согласитесь, совсем другое дело!):

Раз уж речь зашла про диммер, то про него нужно рассказать особо. Как оказалось, совсем не просто найти подходящий диммер (железо) для умного дома. Всевозможные беспородные варианты я не рассматривал, так как вся базовая функциональность должна быть реализована на проводных технологиях — об этом я уже писал ранее. Ценник на диммеры, которые мне попадались меня не радовал. Плюс нужно было обеспечить совместимость с моим умным домом. Вначале я остановился на INSYTE LDD-400D, с управлением по ModBus, что позволяло подключись его напрямую к контроллеру без дополнительных модулей, но знакомые, которые его использовали в своих проектах, как-то не очень хорошо о нем отзывались, и в результате я решил вопрос с диммером так — поставил твердотельное реле.

Реле управляется (через модуль аналогового вывода) сигналом 0-10В и выдает на выходе 10-220В соответсвенно. Обратите внимание на то, что минимальное напряжение на выходе у твердотельного реле не 0, а 10В — при таком напряжении спираль у лампа накаливания заметно светится. Эта проблема решается так: в цепи кроме твердотельного реле стоит и обычное промежуточное (механическое) реле, а на программном уровне, когда нужно полностью погасить свет контроллер выключает промежуточное реле и разрывает цепь.

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

Первый вариант интерфейса выглядел примерно так (сейчас уже не помню точно):

  • короткое нажатие — включение или выключение света (включался свет на последнем уровне яркости)
  • долгое нажатие при включенном свете — плавное уменьшение яркости, а потом проходя через ноль увеличение
  • долгое нажатие при выключенном свете — плавное увеличение от нуля
  • двойное нажатие включение света на полную яркость.

С этим вариантом я жил несколько месяцев, но потом пришел к выводу, что он все-таки не очень-то удобен и чаще всего используются только 3 режима — свет включен, свет выключен или свет включен на минимальную ярость. Поэтому я реализовал более простой дискретный вариант (который остается до сих пор):
  • короткое нажатие — включение/выключение света (включается на полную яркость)
  • длинное нажатие — включает свет на 25% яркости и переводит в режим диммера;
  • каждое следующее нажатие переводит на следующую ступень +25%. Выход из режима диммера — по таймауту.

Как я уже говорил в предыдущем посте, управление одиночными кнопками без фиксации — все-таки не лучшее решение. Кроме примера с диммером, который я только что привел, я еще реализовал сложный сценарий включения света в гостиной. Мы предпочитаем не использовать верхний свет в гостиной и сразу включаем настольную лампу и подсветку в шкафу. Я автоматизировал этот процесс и сейчас управление светом в гостиной выглядит так:
  • одно нажатие (если лампа выключена) — включает лампа и подсветку
  • одно нажатие (если лампа включена) — включает или выключает верхний свет
  • одно нажатие сразу за вторым (когда выключился верхний свет) — гасит настольную лампу
  • длинное нажатие — выключает весь свет в комнате

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

В системе CoDeSys есть возможность сделать визуализацию и панель управления. ПЛК110 не поддерживает веб-интерфейс, поэтому визуализация работает только в самом комплексе CoDeSys.

Вот так вот выглядит техническая панель управления моим умным домом. Техническая, потому что в повседневной жизни ей никто не пользуется. За одним маленьким исключением — эта панель служит удаленным интерфейсом для управления умным домом. Если мне надо что-то сделать удаленно, то я захожу через TeamViewer на домашний сервер и использую эту панель. Такая необходимость возникает очень редко, поэтому настраивать удаленный доступ для веб-сервиса я даже не стал.

В заключение плюсы и минусы.

Плюсы:

  • Надежность — решение зарекомендовало себя очень хорошо (все-таки оно построено на компонентной базе, которая используется для промышленной автоматизации). За все время не было ни одного (!!!) сбоя. Даже после скачков напряжения, система запускалась без каких-либо проблем.
  • Более низкая цена по сравнению с системами домашней автоматизации (уверен, можно найти вариант решения еще более дешевый, но меня вполне устраивал текущий бюджет и дальнейшее снижение цены для меня было не принципиальным).

Два самых больших недостатка на мой взгляд:
  • программировать нужно все самостоятельно и решение оказывается неотрывно от создателя
  • сопряжение с внешним миром по протоколу Modbus TCP — в результате архитектура решения стала достаточно избыточной и по факту сейчас у меня в системе умный дом задействовано три контроллера (но об этом в следующий раз)

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

В следующих частях — управление с телефона и беспроводные решения.

habr.com

Автоматика для дома своими руками / Habr

Моя статья будет полезна тем, кто только задумывается над подобного рода системой, поможет определиться делать ли самому и ориентирована в основном на энтузиастов-колхозников. Изначально пишу “автоматика” а не умный дом, потому что на данном этапе умных функций в моей системе управления нет, сейчас стояла задача в сборе данных и управлении устройствами. Всё должно измениться в будущем, когда появятся алгоритмы, которые и сделают дом умным. С моей точки зрения, если вы можете включать свет со смартфона, то это не делает ваш дом умным. Умным он становится когда у вас написаны сценарии, которые помогают вам, облегчают контроль за домом и делают рутинные вещи незаметными для вас. Например, включить свет на крыльце, когда уровень освещённости ниже какого-либо порога, и выключить в два ночи, не включать полив если сегодня обещают осадки с вероятностью больше 60 процентов, если появилось движение в комнате то включить подсветку лестницы и т.д. И только в этом случае он становится “умным”.

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

Начались изучения того, что есть на рынке и что можно купить и доколхозить самому. Как оказалось рынок, вполне насыщен множеством решений, но в них то того не хватало, то другого, и нигде не было целостного решения, которое меня бы удовлетворило (нет, конечно, решения были, но стоимость в 20т. уе. меня не удовлетворяла). Например у Шнайдера есть неплохое решение базирующееся на KNX, на котором можно построить управление освещением, ролетами и вентиляцией, но интегрировать в систему что-нибудь кроме стандартных элементов практически невозможно, плюс о вэбинтерфейсе и управлении через гугл хоум можно забыть, а об автоматизации сценариев вообще говорить не приходится. С другой стороны, на рынке хватает решений, которые и беспроводные, и дружат с гуглом и апликейшины для них уже готовы, но у них есть масса нюансов, которые отодвигают такие решения на задний план. Например, сложность одновременного управления освещением с обычных выключателей и с апликейшена, часто это вообще невозможно или если и возможно то проблемно реализовать проходные выключатели, а хотелось бы иметь дом в котором всё работает и без умного дома на случай его крэша. Плюс мне не очень хотелось обвешивать дом массой отдельных коробочек, до сих пор не понимаю почему бы датчик движения, угарного газа и температуры не поместить в один корпус, пусть он даже и будет стоить дороже, зато мне не придется весь потолок увешивать какими-то девайсами, да еще и менять в них батарейки каждые два года.

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

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

  • освещение в доме
  • ролеты
  • управление заслонками вентиляции
  • датчики движения, датчики освещенности, СО и температуры в комнатах
  • автоматический полив
  • датчики движения по территории участка
  • резервное питание

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

Давайте вкратце рассмотрим каждую.

Освещение. Из вводных было то что свет должен работать одновременно и от выключателей и от системы управления (далее САУ), плюс должна быть возможность сделать проходные выключатели. Для этого САУ как минимум должна знать включен он сейчас или нет. Было несколько идей как это реализовать, но остановился я на этой схеме — кнопочный выключатель — импульсное реле(Elko MR-41) — дискретный выход — дискретный вход. Дискретный выход параллелим с кнопочным выключателем, НР контакт реле на лампочку, НЗ — на дискретный вход для получения статуса.

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

Ролеты. Отличие от света в том что нагрузка в этом случае это не лампочка а электродвигатель, со всеми отсюда вытекающими. Так же как с освещением хотелось иметь управление и с механического выключателя так и с системы управления. Поэтому схема получилась такая: дискретный выход — контактор и в параллель кнопочный выключатель для каждого направления вращения.

Вентиляция. Тут все просто, её я отдал на откуп САУ, и не предусмотрел никакого другого управления, навряд ли я когда-нибудь захочу открыть/закрыть вентканалы не с апликейшена. Так что схема — два дискретных выхода — простенький привод Belimo LM24-T с ebay за 25$ без обратной связи.

Вот так выглядит привод смонтированный на вентиляционной заслонке:

Датчики движения, датчики освещенности, СО и температуры в комнатах. На рынке сейчас валом таких девайсов, но все с проприетарным интерфейсом и подключить их в свою доморощенную систему достаточно сложно, да и плюс упомянутая уже проблема с тем что каждый датчик пытаются продать как отдельное устройство в своём корпусе. Вот меньше всего хотелось бы на потолке видеть россыпь разных устройств, а как задумаешься что в них всех надо поменять батарейки так и страшно становиться. Также всегда остаётся вероятность того что производитель закроет открытое api своих устройств, и заставит вас пользоваться только своим приложением как недавно гугл поступил с nest и вся ваша целостная система развалится на куски. Поэтому я сделал свой девайс на AVR, назвав его “сенсортэг” и напаковал его всем что мне было нужно: датчик движения с цифровой подстройкой чувствительности, датчики освещенности, температуры, угарного газа, управляемую подсветку, ESP8266, RS485 c гальванической развязкой, 24В блоком питания. Получилось вот такое устройство, но в реалии ему нужно посвятить отдельную статью и не особо зацикливаться на нём в этой.

Автоматический полив. Казалось бы что тут сложного, должно быть самое простое устройство типа дискретный выход — соленоид на 24В. Но как оказалось что все клапаны полива на 24В но AC. Так что пришлось делать отдельный блок с трансформатором на 24В и блоком реле, который по 24В DC коммутирует 24В АС.

Датчики движения по территории участка. У охранных датчиков выходы это НР и НЗ контакт так что тут как раз всё просто, дискретные входы и всё, только вот не стоит забывать про разрядники(неплохо подходит вариант разрядников для патч панелей).

Резервное питание. Изначально это не планировалось, но со временем выяснилось что за пределами города пропадание электроэнергии это никакое не ЧП а вполне обыденное явление. И хотя, я считаю что система умного дома должна быть спроектирована так, что бы её можно было включить/выключить в любой момент без печальных для неё и дома последствий, но от резервного питания я не отказался. Решив что коль у меня уже есть мои сенсортэги на 24В, приводы на 24В, то всё питание САУ я сделаю 24В. Получилась неплохая связка mean well блока питания, mean well упса и аккумуляторов, работает, проверял.

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

Следующим этапом было планирование щитка с модулями управления.

Топология системы:

Модули DI/DO. Нужно было прикинуть топологию системы, какие модули в неё входят, на каких контроллерах что работает. Тут существует масса вариантов реализации, и все они будут правильными если будут работать. Забегая вперед скажу что я остановился на системе из покупных модулей DI/DO, управляющем контроллере на Beaglebone black и вэбсервере на Raspberry Pi. Далее необходимо подсчитать все дискретные входы/выходы и их типы. Т.к. разрабатывать модули DI/DO не было никакого желания то я просто поискал на рынке уже готовые за вменяемую цену. Остановился на модулях Овен, в принципе они покрыли все мои нужды по управлению:

  1. МВ110-8ДФ, как модуль дискретного ввода для сигналов 220В.
  2. МУ110-16Р, для управления освещение, ролетами, вентиляцией и клапанами полива.
  3. МВ110-16ДН, как модуль дискретного ввода для сигналов с уличных датчиков движения.

Подключаются данные модули в систему по интерфейсу RS485 ModBus, в принципе промышленный стандарт, так что с его имплементацией не должно возникнуть ни каких трудностей(можно написать самому поддержку основных команд или взять уже готовую библиотеку).

Контроллер. Для связи с моими модулями «сенсортэг», расположенными в каждой комнате и модулями Овен в щитке мне нужен был контроллер который мог бы их опрашивать по RS485 интерфейсу и имел Ethernet для общения с сервером. Рассматривал вариант использовать Wiren Board, но у них мало RS485 портов да и вот контроллер хотелось самому сделать. Контроллеру хочется посвятить отдельную статью, так что тут можно упомянуть что он сделан на Beaglebone black и имеет 3 гальванически изолированных порта RS-485 и питание 24В.

Система для контроллера Beaglebone black собрана на базе Buildroot и доведена до состояния запускаем билд — получаем готовый образ для SDшки. ПО Beaglebone black состоит из: коммуникационного ядра, MQTT gateway и Mosquitto server. Коммуникационное ядро, опрашивает RS-485 порты, формируя внутреннюю таблицу дискретных и аналоговых точек. MQTT gateway преобразует точки контроллера в значения MQTT топиков и передает их в Mosquitto server. Все доступно по этой линке.

Щиток управления и имитатор сигналов(освещение, ролеты и вентиляция):

ПО Raspberry Pi это Home Assistant. Меня порадовала эта система, она очень проста, поддерживает массу уже готовых устройств и позволяет очень гибко писать свои плагины на python. Я например, за пару недель написал себе собственные MQTT плагины для освещения, ролет, сигнализации и разных типов датчиков(освещение, СО, движения, температуры) и несколько видов автоматизаций, всё очень гибко и главное с низким порогом вхождения в систему. Ещё Home Assistant поддерживает интеграцию с Google Home и Alexa. Можно немного помучаться и сконфигурировать это самому, или сделать платную подписку на их сервис(5$ в месяц) и тогда процесс синхронизации Home Assistant и Google Home проходит за два клика. Как бонус мы получаем управление голосом, пока на английском, но обещают поддержку русского вот-вот. Выглядит это примерно так:

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

habr.com

Как установить умный дом Home Assistant / Habr

Это статья написана для напоминания, что умный дом стал намного ближе, чем мы думали.
Home Assistant-это open-source платформа для автоматизации, работающая на Python 3. Позволяет отслеживать и контролировать все устройства в доме и автоматизировать действия. Идеально может работать на одноплатном компьютере Raspberry PI.

→ Посмотреть демо

Что такое умный дом можно почитать в википедии тут и тут.

Давайте по порядку:

1. Центральное ядро

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

ПК-отличный вариант, если требуется большая нагрузка на сервер, т.к. производительности даже старых ноутбуков хватит вполне (только если вы не будете крутить 4К видео или использовать 10 камер с HEVC кодированием). Из минусов- в 95% случаев активное охлаждение и чтобы подключить обычное реле всегда приходится использовать дополнительные костыли.

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

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

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

2. Внешние датчики, контроллеры, элементы управления.

Эта тема настолько обширная, что описать все многодикообразие в данной статье не представляется возможным, поэтому оставим это для будущих статей. Вкратце, есть:

— DIY решения и ардуиноподбные решения
— Китайские решения (пример Sonoff)
— Дорогие красивые решения (пример nest)

3. Софт

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

а) Огромное количество поддерживаемых сервисов,
б) Легко и бесплатно установить,
в) Приятный интерфейс.

4. Сторонние сервисы

Помогают подключить разные существующие решения и автоматизировать действия на смартфонах и ПК. Типичный пример IFTTT.

Что делать если я не умею программировать или у меня есть деньги?
Отдельно стоят решения современных экосистем от Samsung, Xiaomi, Amazon, Apple, Google и т.д. Соглашусь, что порой их решения выглядят намного красИвее, но средняя заработная плата русского человека примерно 500$, что не позволяет ощутить всю гамму вкусов.

Итак, поехали!

Рекомендуется к приобретению:

1. Raspberry Pi 3 (вероятно подойдут и более старые) 35$
2. MicroSD на 16ГБ не ниже 10 класса( чем быстрее, тем лучше) с адаптером к компьютеру 7$
3. Зарядник MicroUSB на 5В и больше чем 2А 0$ (подошел от старого телефона)
4. Ваше драгоценное время. Бесценно.
5. Опционально монитор с HDMI

Давайте устанавливать:

1. Скачать удобную программу для записи на флешку. Я рекомендую портативную версию
2. Зайти на сайт и скачать последнюю версию Hassbian
3. Разархивировать основной образ в любую папку.
4. Открыть Etcher
5. Выбрать наш основной образ
6. Выбрать нашу флешку для записи
7. Нажать кнопку старт
8. ???
9. Profit

После записи, извлекаем флешку и вставляем в распберри пи.

ОБЯЗАТЕЛЬНО НАДО ВСТАВИТЬ В МАЛИНУ ИНТЕРНЕТ-ШНУР!!!

При подаче питания должна загореться красная лампочка и зеленая начать хаотично мигать. Ждем с кружкой чая 10 минут.

После этого нам надо найти уже веб интерфейс нашей системы умного дома. Для этого есть несколько способов:

1) Посмотреть через hdmi нашу командную строку и найти там IP вида 192.168.1.х ( или любого другого)
2) посмотреть в настройках роутера какой DHCP сервер присвоил адрес новому устройству
3) Воспользоваться сканером сети (например, Advanced IP Scanner Portable)

После этого открываем браузер (не программу для скачивания браузеров, а именно браузер)
И вводим наш IP + :8123 (у меня это 192.168.1.101:8123)

И вуаля! Наша система загрузилась!

На официальном сайте все хорошо описано (но на английском) поэтому, если интересно, смогу написать несколько примеров как это делать в реальной жизни.

Все шаги я записал на видео, поэтому не стесняемся и заходим на видео.

Дорогие читатели, напишите в комментариях, что еще очень хочется увидеть?

Спасибо за внимание!

habr.com

Отправить ответ

avatar
  Подписаться  
Уведомление о