Методика реализации умного дома на базе Things Gateway от Mozilla


Mozilla's Things Gateway-based WoT

Методика реализации умного дома на базе Things Gateway от Mozilla

Автор: Владимир Ткаченко

Источник: Обучение в интернет

Данная статья посвящена методике реализации smart home на базе Mozilla's Things Gateway. Mozilla's Things Gateway входит в проект Project Things от Mozilla, который состоит из трех компонентов: Things Gateway, Things Cloud и Things Framework. Цель статьи - создание методики подключения компонентов smart home и управления ими через Интернет (https://subdomain.mozilla-iot.org), используя шлюз Web of Things gateway (Things Gateway) на Raspberry Pi от Mozilla.

Общие концепции, руководство с инструкциями и обзор возможностей шлюза построения умного дома с Raspberry Pi и Mozilla's Things Gateway изложены в "How to build your own private smart home with a Raspberry Pi and Mozilla’s Things Gateway". Проект Things Gateway обеспечивает непосредственный мониторинг и управление компонентами smart home через Web Raspberry Pi.

Things Gateway от Mozilla 0.61 может быть использован как в качестве шлюза для устройств smart home, так и интеграции IoT-устройств через Web Thing API. Web Thing REST API и Web Thing WebSocket API в формате JSON обеспечивают интеграцию IoT-устройств (Web Thing) через Web Thing API шлюза.

Следуя инструкции построения умного дома с Raspberry Pi и Things Gateway от Mozilla не всегда удается подключить компоненты smart home к шлюзу. Поэтому возникла необходимость более подробно изложить методику подключения компонентов smart home и управления ими через Интернет.

Things Gateway реализован на JavaScript платформы NodeJS, основан на Raspbian с интерфейсом командной строки (Command line interface - CLI) или интерфейсом консоли, и предназначен для работы через Web. Проект Things Gateway от Mozilla похож на проекты Home Assistant/OpenHAB, но основное отличие состоит в том, что Things Gateway изначально реализован для поддержки IoT/WoT и относится к технологиям автоматизации smart home нового поколения.

Things Gateway от Mozilla в первую очередь предназначен для интеграции Smart Objects в IoT/WoT (интеграционный шаблон: Gateway Based Connectivity). Things Gateway предназначен для интеграции в сеть Internet смарт-устройств (sensors and actuators) беспроводных сетей Z-Wave и ZigBee с ячеистой топологией (mesh - сеть) и низким энергопотреблением, устройств сетей WiFi, Bluetooth и устройств, непосредственно подключенных к портам GPIO. Кроме того, шлюз обеспечивает подключение устройств Web Thing (Web-приложений с URL) через сеть Интернет с помощью WebSockets APIs или REST APIs.

Следует отметить, что сети Z-Wave и ZigBee, которые относятся к WSN (Wireless sensor network) и предназначены для создания сетей smart home, имеют свои стеки коммуникационных протоколов (проприетарных протоколов), которые не поддерживают межсетевой протокол IP.

Для разработки методики подключения компонентов smart home я использовал комплект средств: микрокомпьютер Raspberry Pi 3 Model B, microSD kingston 16 GB (Class 10), Z-Wave Plus Aeotec Z-Stick USB Controller, универсальный мультидатчик Z-Wave Fibaro Motion Sensor Gen5 (FGMS-001-ZW5). Следует отметить, что универсальный мультидатчик Z-Wave Fibaro Motion Sensor Gen5 не относится к поддерживаемому шлюзом оборудованию в соответствии со списком, опубликованным на странице: https://github.com/mozilla-iot/wiki/wiki/Supported-Hardware.

Средства для реализации smart home на базе Things Gateway от Mozilla
Рис. 1. Комплект средств для разработки методики подключения компонентов smart home к Mozilla's Things Gateway

Затем скачал образ программного обеспечения "gateway-0.6.1.img.zip" для Raspberry Pi (https://iot.mozilla.org/gateway/ - Download 0.6.1) в директорию ноутбука, который работает на Win 10. Скачал графическое приложение Etcher для Windows, Linux и MacOS и установил его на ноутбук. С помощью приложение Etcher загрузил образ "gateway-0.6.1.img" на microSD, которую подключил к ноутбуку.

Установка программного обеспечения
Рис. 2. Процесс установки программного обеспечения

MicroSD с установленным программным обеспечением установил на микрокомпьютер Raspberry Pi 3 Model B. Затем к комплекту средств (рис. 1) я подключил клавиатуру, монитор и блок питания. При подключении блока питания к источнику питания на экране монитора будет отображаться интерфейс командной строки. Для дистрибутива Raspbian на Raspberry Pi по умолчанию: логин "pi", пароль "raspberry". После ввода логина и пароля в командной строке будет отображаться: pi@gateway: ˜$_

Отображение командной строки
Рис. 3. Отображение командной строки

Следует отметить, что при первичной загрузке шлюза, он действует как точка доступа Wi-Fi, передающая сетевое имя (SSID) "Mozilla IoT Gateway", которая была отображена в списке доступных сетей Wi-Fi на экране моего ноутбука.

Отображение списка сетей Wi-Fi
Рис. 4. Отображение списка сетей Wi-Fi на экране ноутбука

При подключении к этой точке "Mozilla IoT Gateway" доступа Wi-Fi с моего ноутбука, я перешел в web-браузер и открыл страничку, которая предоставляет возможность подключения к точкам доступа Wi-Fi роутеров, подключенных к сетям провайдеров Internet.

Страничка для подключения к Wi-Fi
Рис. 5. Скриншот, на котором отображается страничка для подключения к Wi-Fi

Выполнил щелчок на точке доступа Sysinfo моего роутера, после чего открылась страничка, на которой предложено ввести пароль Wi-Fi

Страничка для подключения к точке доступа моего роутера Sysinfo
Рис. 6. Скриншот, на котором отображается страничка для подключения к точке доступа моего роутера Sysinfo

После ввода пароля открылась страничка "Connecting…", а шлюз подключился к точке доступа Sysinfo моего роутера.

Страничка Connecting…
Рис. 7. Скриншот, на котором отображается страничка "Connecting…"

Далее, если перейти в браузере по ссылке gateway.local, то получим страничку с текстом: "Мы не можем подключиться к серверу www.gateway.local". То есть, не удается подключиться к "pi" с помощью gateway.local. Для подключения к шлюзу через роутер необходимо определить локальный IP адрес, который роутер выдал gateway при его подключении. Я определил, что роутер Linksys by Cisco/WRT160N V3 выдал для gateway IP address 192.168.1.129.

Затем ввел IP адрес 192.168.1.129 в браузер, открылась страничка для выбора уникального поддомена шлюза. Добавил уникальный субдомен less и свой E-mail.

Страничка для выбора субдомена
Рис. 8. Скриншот, на котором отображается страничка для выбора субдомена

Выбор уникального поддомена для шлюза обеспечит автоматическое создание SSL-сертификата Let's Encrypt и настроит безопасный туннель в Интернете, чтобы можно было получить доступ к шлюзу удаленно. После создания субдомена было выполнено перенаправление на новый поддомен, и было предложено создать свою учетную запись на шлюзе.

Форма для создания учетной записи на шлюзе
Рис. 9. Скриншот, на котором отображается форма для создания учетной записи на шлюзе

После ввода в форму реквизитов я автоматически вошел в шлюз, в котором можно было добавлять компоненты беспроводных сетей Z-Wave для создания smart home.

Средства формирования компонентов smart home
Рис. 10. Скриншот шлюза, в котором можно добавлять компоненты smart home

Чтобы добавить смарт-устройства на свой шлюз, выполнил щелчок на знаке «+» в правом нижнем углу экрана. В результате должно было выполнено подключение смарт- устройства к шлюзу в режим сопряжения, но этого события не произошло. Возможно не были выполнены все рекомендации инструкции по обеспечению соединения устройства Z-Wave Fibaro Gen5 со шлюзом или из-за отсутствия этого устройства в списке поддерживаемого шлюзом оборудования.

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

Поэтому я ввел в поле строки название универсального мультидатчика "Z-Wave Fibaro Gen5", который подключил к шлюзу, выбрал соответствующую иконку (Choose icon) на своем ПК и сохранил (Save).

Название универсального мультисенсора
Рис. 12. Скриншот шлюза, в котором отображается название универсального мультисенсора

На экране появилось устройство Z-Wave Fibaro Gen5, которое успешно соединено со шлюзом Things Gateway. Слева вверху экрана отображается главное меню, а в правом верхнем углу экрана отображается значок микрофона, что свидетельствует о подключении голосового интерфейса.


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

Чтобы «развернуть» устройство, т.е. перейти к расширенному виду всех его свойств необходимо щелкнуть на кнопке развернуть. Например, при щелчке на кноке развернуть (рис. 13) на экране будут отображены все свойства универсального мультисенсора Z-Wave Fibaro Motion Sensor Gen5, который имеет датчики температуры окружающей среды, движения, уровня освещенности и вибрации. Кроме того, датчик сообщает о разряде батареи.


Рис. 14. Скриншот шлюза, в котором отображается универсальный мультидатчик со всеми его свойствами

Из скриншота, представленного на рисунке 14 следует, что универсальный мультисенсор реагирует на температуру окружающей среды (Temperature 23,5 °C), на вибрацию (Tamper - отсутствует вибрация), на уровень освещенности (Luminance - 3 lux), фиксирует перемещение объектов (Motion - маркер свидетельствует о перемещении объекта), отображает заряд батареи (Battery - 100%).

В шлюзе также реализована поддержка отправки push-уведомлений при изменении состояния устройства или устройств smart home. Настройка уведомлений осуществляется в Web-интерфейсе через движок правил Rules в главном меню. С помощью движка правил осуществил настройку отправки push-уведомлений "Danger!" (в текстовой строке Message ввел слово "Danger!") на устройства (ноутбук, ПК, смартфон и т.д.) при наступлении событий: наличия перемещений или вибраций, зафиксированных мультисенсорным датчиком Z-Wave Fibaro Gen5.

Отправка push-уведомлений с Things Gateway на ноутбук
Рис. 15. Скриншот шлюза, в котором отображается настройка отправки push-уведомлений с Things Gateway на ноутбук

В результате настройки средств отправки уведомлений при наступлении событий: наличия перемещений или вибраций, зафиксированных мультисенсорным датчиком Z-Wave Fibaro Gen5, шлюз формирует push-уведомление "Danger!", которое отправляет на ноутбук (ПК, смартфон и т.д.). Это push-уведомление отображется слева внизу экрана ноутбука.

Отображение push-уведомления Danger! на ноутбуке с Things Gateway
Рис. 16. Скриншот шлюза, в котором отображается push-уведомление "Danger!"

Это push-уведомление "Danger!" отображается на экране ноутбука, даже в том случае, когда не активирована страничка моего шлюза https://less.mozilla-iot.org/things в Web-браузере ноутбука.

Следует отметить, что Project Things от Mozilla позволяет создать собственный шлюз Web of Things с помощью Raspberry Pi и использовать его для подключения существующих готовых смарт-устройств (устройств IoT) для умного дома, на базе технологий беспроводных сетей IoT/WoT.

Mozilla's Things Gateway предназначен для интеграции не конкретных смарт-устройств умного дома, а различных смарт-устройств от разных производителей. Перечень устройств, которые до настоящего времени уже тестировались с Things Gateway, опубликован на веб-сервисе Github. Mozilla's Things Gateway обеспечивает управление всеми смарт-устройствами умного дома через один безопасный Web-интерфейс из Web-браузера. Для входа в шлюз с Web-браузера устройства (ПК, ноутбука, смартфона и т.д.) необходимо авторизоваться, т.е. ввести соответствующие логин и пароль.

Кроме Web-интерфейса и Web Thing API в шлюзе реализована экспериментальная версия голосового интерфейса. В шлюзе также реализована поддержка отправки push-уведомлений на устройства, с которых выполнена авторизация для входа в шлюз, при изменении состояния устройства/устройств smart home. Настройка уведомлений осуществляется в Web-интерфейсе.