Компания Mozilla представила шлюз для интернета вещей
Компания Mozilla представила проект Things (Project Things), предоставляющий открытый фреймворк для организации взаимодействия потребительских и IoT-устройств через Web. Работа над проектом началась в прошлом году в рамках инициативы по разработке технологий для построения децентрализованной сети устройств, использования URL для адресации таких устройств и предоставления возможности доступа к ним из Web.
Для преодоления фрагментации, вызванной многообразием прошивок и протоколов для IoT, подготовлена реализация шлюза, который выступает прослойкой для унификации доступа к различным категориям устройств, скрывая за собой особенности каждой платформы и не требуя использования специфичных для каждого производителя приложений. Шлюз можно установить на плату Raspberry Pi и получить систему управления умным домом, объединяющую все имеющиеся в доме IoT-устройства и предоставляющую средства для мониторинга и управления ими, в том числе через Web-интерфейс и дополнительные приложения, которые могут взаимодействовать с устройствами через Web Thing API.
Таким образом, вместо установки своего мобильного приложения для каждого типа IoT-устройств, обеспечивается единый унифицированный web-интерфейс. Шлюз поддерживает такие функции, как определение устройств в локальной сети, выбор web-адреса для соединения с устройствами из интернета, создание учетных записей для доступа к web-интерфейсу шлюза, подключение к шлюзу устройств, поддерживающих проприетарные протоколы ZigBee и Z-Wave, удаленное включение и выключение устройств из web-приложения. Отдельно отмечается, что кроме web-интерфейса и API в шлюзе реализована экспериментальная поддержка голосового управления, позволяющая распознавать и выполнять голосовые команды (например, "включи свет на кухне").
Из возможностей нового выпуска также упоминается движок для определения логических правил, позволяющих автоматически реагировать на определенные ситуации с устройствами (например, можно автоматически включить устройство "Б", если было включено устройство "А"). В web-интерфейс добавлена карта размещения устройств, позволяющая наглядно оценить где и какое устройство находится в доме. Добавлена поддержка новых классов устройств, таких как управляемые розетки, настраиваемые светильники, цветная подсветка, многоуровневые выключатели и различные датчики, а также виртуальные версии различных типов устройств. Для обеспечения поддержки протоколов и устройств представлена новая система дополнений. Для авторизации доступа сторонних приложений к API предложена поддержка OAuth.
Код проекта написан на языке JavaScript с использованием серверной платформы Node.js. Для взаимодействия шлюза с IoT-платформами предлагается набор модулей, позволяющих обращаться к устройствам при помощи протоколов ZigBee и ZWave, через WiFi или при помощи прямого подключения к GPIO. Прошивки с шлюзом подготовлены для Raspberry Pi, Raspberry Pi 2, Raspberry Pi 3 и Raspberry Pi Zero W. В ближайшее время обещают подготовить пакет для OpenWrt. Список протестированных IoT-устройств и брелков ZigBee/ZWave предложен на данной странице.
Установка достаточно хорошо автоматизирована - достаточно загрузить предоставленную прошивку с шлюзом на SD-карту, подключиться к Raspberry Pi и открыть в браузере хост "gateway.local", после чего можно настроить подключение к WiFi, ZigBee или ZWave, найти имеющиеся IoT-устройства, настроить параметры для доступа извне и добавить самые востребованные устройства на домашний экран. В прошивку интегрированы функции автоматической доставки и установки обновлений (OTA, over-the-air), что позволяет оперативно устранять ошибки и уязвимости, не требуя от пользователя дополнительных манипуляций.