Прошивка на базе OpenWrt предоставляет интерфейс начальной настройки, позволяющий настроить устройство для работы в качестве беспроводной точки доступа или в качестве клиента для подключения к существующей беспроводной сети. Функциональность сборки пока ограничена и она по-прежнему позиционируется как экспериментальная, не способная в полной мере заменить существующие беспроводные маршрутизаторы.
Вторым важным новшеством является реализация поддержки платы Raspberry Pi 4, для которой, как и для других плат Raspberry Pi, подготовлены отдельные сборки на основе дистрибутива Raspbian.
Из функциональных улучшений отмечается реализация нового типа дополнений (Notifier), позволяющих расширить ранее доступную систему отправки сообщений через Push-уведомления в браузере. Notifier позволяет создавать обработчики и задавать правила отправки сообщений через различные каналы связи, например для отправки SMS или Email при срабатывании датчиков движения в доме. Возможно задание приоритета отправляемых уведомлений.
Напомним, что WebThings Gateway представляет собой универсальную прослойку для организации доступа к различным категориям потребительских и IoT-устройств, скрывающую за собой особенности каждой платформы и не требующую использования специфичных для каждого производителя приложений. Код проекта написан на языке JavaScript с использованием серверной платформы Node.js. Для взаимодействия шлюза с IoT-платформами можно использовать протоколы ZigBee и ZWave, WiFi или прямое подключение через GPIO. Прошивки с шлюзом подготовлены для различных моделей Raspberry Pi, также доступны пакеты для OpenWrt и Debian.
Шлюз можно установить на плату Raspberry Pi и получить систему управления умным домом, объединяющую все имеющиеся в доме IoT-устройства и предоставляющую средства для мониторинга и управления ими через Web-интерфейс. Платформа также позволяет создавать дополнительные web-приложения, которые могут взаимодействовать с устройствами через Web Thing API.
Таким образом, вместо установки своего мобильного приложения для каждого типа IoT-устройств, можно использовать единый унифицированный web-интерфейс. Для установки WebThings Gateway достаточно загрузить предоставленную прошивку на SD-карту, открыть в браузере хост "gateway.local", настроить подключение к WiFi, ZigBee или ZWave, найти имеющиеся IoT-устройства, настроить параметры для доступа извне и добавить самые востребованные устройства на домашний экран.
Шлюз поддерживает такие функции, как определение устройств в локальной сети, выбор web-адреса для соединения с устройствами из интернета, создание учётных записей для доступа к web-интерфейсу шлюза, подключение к шлюзу устройств, поддерживающих проприетарные протоколы ZigBee и Z-Wave, удалённое включение и выключение устройств из web-приложения, удалённый мониторинг за состоянием дома и видеонаблюдение. Кроме web-интерфейса и API в шлюзе также реализована экспериментальная поддержка голосового управления, позволяющая распознавать и выполнять голосовые команды (например, "включи свет на кухне").
WebThings Framework предоставляет набор заменяемых компонентов для создания IoT-устройств, которые могут напрямую взаимодействовать c использованием Web Things API. Подобные устройства могут автоматически определяться шлюзами на базе WebThings Gateway или клиентским ПО (используется mDNS) для последующего мониторинга и управления через Web. Реализации серверов для Web Things API подготовлены в форме библиотек на Python, Java, Rust, Arduino и MicroPython.