Компания Mozilla после двух лет экспериментов и разработки представила (https://hacks.mozilla.org/2019/04/introducing-mozilla-webthings/) платформу WebThings (https://iot.mozilla.org/), в которую вошли ранее развиваемые проекты WebThings Framework (https://iot.mozilla.org/framework) и WebThings Gateway (https://iot.mozilla.org/gateway/), предоставляющие компоненты для обеспечения доступа к различным категориям потребительских устройств и использования универсального Web Things API (https://iot.mozilla.org/wot/) для организации взаимодействия с ними. Наработки проекта распространяются (https://github.com/mozilla-iot/) под лицензией MPL 2.0.
WebThings Framework предоставляет набор заменяемых компонентов для создания IoT-устройств, которые могут напрямую взаимодействовать c использованием Web Things API. Подобные устройства могут автоматически определяться шлюзами на базе WebThings Gateway или клиентским ПО (используется mDNS) для последующего мониторинга и управления через Web. Реализации серверов для Web Things API подготовлены в форме библиотек на
Python (https://github.com/mozilla-iot/webthing-python),
Java (https://github.com/mozilla-iot/webthing-java),
Rust (https://github.com/mozilla-iot/webthing-rust), Arduino (https://github.com/mozilla-iot/webthing-arduino) и MicroPuthon (https://github.com/mozilla-iot/webthing-upy).
WebThings Gateway представляет (https://www.opennet.me/opennews/art.shtml?num=48029) собой универсальную прослойку для организации доступа к различным категориям потребительских и IoT-устройств, скрывающую за собой особенности каждой платформы и не требующую использования специфичных для каждого производителя приложений. Код проекта написан (https://github.com/mozilla-iot/gateway/) на языке JavaScript с использованием серверной платформы Node.js. Для взаимодействия шлюза с IoT-платформами можно использовать протоколы ZigBee и ZWave, WiFi или прямое подключение через GPIO. Прошивки с шлюзом подготовлены (https://github.com/mozilla-iot/wiki/wiki/Supported-Hardware) для различных моделей Raspberry Pi, также доступны пакеты (https://github.com/openwrt/packages/tree/master/lang/node-mo...) для OpenWrt и Debian.
Шлюз можно установить (http://iot.mozilla.org/gateway/) на плату Raspberry Pi и получить систему управления умным домом, объединяющую все имеющиеся в доме IoT-устройства и предоставляющую средства для мониторинга и управления ими через Web-интерфейс. Платформа также позволяет создавать дополнительные web-приложения, которые могут взаимодействовать с устройствами через Web Thing API (https://iot.mozilla.org/wot/). Таким образом, вместо установки своего мобильного приложения для каждого типа IoT-устройств, можно использовать единый унифицированный web-интерфейс. Для установки WebThings Gateway достаточно загрузить предоставленную прошивку на SD-карту, открыть в браузере хост "gateway.local", настроить подключение к WiFi, ZigBee или ZWave, найти имеющиеся IoT-устройства, настроить параметры для доступа извне и добавить самые востребованные устройства на домашний экран.
Шлюз поддерживает такие функции, как определение устройств в локальной сети, выбор web-адреса для соединения с устройствами из интернета, создание учётных записей для доступа к web-интерфейсу шлюза, подключение к шлюзу устройств, поддерживающих проприетарные протоколы ZigBee и Z-Wave, удалённое включение и выключение устройств из web-приложения, удалённый мониторинг за состоянием дома и видеонаблюдение. Кроме web-интерфейса и API в шлюзе также реализована экспериментальная поддержка голосового управления, позволяющая распознавать и выполнять голосовые команды (например, "включи свет на кухне").
Одновременно с анонсом новой платформы WebThings опубликован выпуск WebThings Gateway 0.8 (https://github.com/mozilla-iot/gateway/releases/tag/0.8.0), в котором предложены следующие новшества:
- Добавлена система журналирования событий, собирающая статистику о работе всех IoT-устройств и датчиков в домашней сети и позволяющая оценить их активность в форме наглядных графиков. Например, можно узнать сколько раз открывались и закрывались двери во время своего отсутствия, как изменялась температура в доме, сколько потребляли энергии устройства, подключенные к умным розеткам, когда срабатывал детектор движения и т.п. Графики могут строится в разрезе часов, дней и недель и прокручиваться по шкале времени;
- Добавлены сигналы тревоги, который могут срабатывать в случае возникновения событий, требующих незамедлительной реакции. Например, сигналы тревоги могут быть привязаны с срабатыванию датчиков задымления, протечки или угарного газа, а также при поступлении сигналов о взломе. В случае срабатывания сигнала уведомление об его наступлении может быть отправлено через SMS или другие средства оповещения;
- Добавлен интерфейс для настройки параметров подключения к сети. Ранее для переключения из одной беспроводной сети в другую, когда обе сети доступны, требовалось выполнение команд в консоли. Теперь изменение сетевых параметров может осуществляться через web-интерфейс (секция Settings ➡ Network), в котором можно управлять назначением IP-адресов, сканировать доступные беспроводные сети и изменять точки доступа;
- Подготовлены (https://github.com/openwrt/packages/tree/master/lang/node-mo...) экспериментальные пакеты для маршрутизаторов на основе OpenWrt, которые позволяют использовать маршрутизаторы не только для обеспечения сетевого доступа, но и в качестве узлов управления умным домом. В дальнейшем планируется подготовить собственный дистрибутив на базе OpenWrt с интегрированной поддержкой Things Gateway, предоставляющий унифицированный интерфейс для настройки умного дома и беспроводной точки доступа. В настоящее время WebThings Gateway уже может работать в режиме точки беспроводного доступа, а не только в роли клиента беспроводной сети.
URL: https://hacks.mozilla.org/2019/04/introducing-mozilla-webthings/
Новость: https://www.opennet.me/opennews/art.shtml?num=50538