Интеграция Z-Wave-устройств через IoT-хаб в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция Z-Wave-устройств через IoT-хаб в мобильное приложение
Сложная
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    864
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция Z-Wave-устройств через IoT-хаб в мобильное приложение

Z-Wave — беспроводной протокол на частоте 868 MHz (Европа) / 908 MHz (США), изолированный от Wi-Fi и Zigbee. Ячеистая топология, дальность до 30 метров на узел. Принципиальное отличие от Zigbee: Z-Wave — проприетарный стандарт под управлением Silicon Labs, все устройства проходят обязательную сертификацию на совместимость. Меньше «сюрпризов» с совместимостью, но и меньше дешёвого DIY-оборудования.

Хабы и API для мобильной интеграции

Z-Wave JS + zwavejs2mqtt — современный open-source стек на Node.js. USB-контроллер (UZB7, Aeotec Z-Stick 7, Zooz ZAC93) → Z-Wave JS сервер → WebSocket API + MQTT. Лучший выбор для кастомного мобильного приложения.

Z-Wave JS WebSocket API: подключаемся на ws://host:3000 и работаем через JSON-RPC сообщения:

{
  "messageId": "abc123",
  "command": "node.setValue",
  "nodeId": 5,
  "valueId": {
    "commandClassName": "Binary Switch",
    "endpoint": 0,
    "property": "currentValue"
  },
  "value": true
}

Home Assistant с Z-Wave JS addon — мобильное приложение работает через HA REST/WebSocket API. HA абстрагирует Z-Wave-специфику в стандартные switch, light, lock, climate сущности.

Vera / Fibaro HC — коммерческие хабы с собственными REST API. Vera: http://hub-ip/port_3480/data_request?id=action&DeviceNum={id}&serviceId={...}&action={...}. Fibaro: REST API с Basic Auth, GET /api/devices/{id}.

SmartThings Hub — поддерживает Z-Wave. SmartThings API (OAuth2, cloud) или локальный API через SmartThings Edge Drivers.

Z-Wave Command Classes: что это и почему важно

Z-Wave устройства общаются через Command Classes — стандартизованные наборы команд. Знать их нужно, чтобы правильно читать состояние и управлять устройствами:

Command Class Применение Ключевые команды
Binary Switch Выключатели currentValue (bool)
Multilevel Switch Диммеры currentValue (0-99)
Door Lock Замки currentMode (Secured/Unsecured)
Thermostat Setpoint Термостаты value (температура)
Battery Батарейные устройства level (0-100%)
Notification Датчики события движения, задымления
Meter Счётчики энергии value (кВт·ч, Ватт)
Color Switch RGB лампы currentColor

При работе через Z-Wave JS valueId содержит commandClassName — именно по нему определяем тип устройства и доступные операции.

Парование Z-Wave устройств (Inclusion)

Z-Wave Inclusion — физический процесс: контроллер входит в режим ожидания, пользователь нажимает кнопку на устройстве. Без физического доступа к устройству сделать это нельзя.

Из мобильного приложения запускаем Inclusion через Z-Wave JS API:

{ "command": "controller.beginInclusion", "options": { "strategy": "Default" } }

Стратегии Inclusion:

  • Default — обычное добавление
  • SmartStart — QR-код на устройстве, не требует физического нажатия. Устройство само находит сеть при включении питания. Поддерживается Z-Wave 700 series+.
  • Security0 / Security2_* — с шифрованием (S0, S2 Authenticated, S2 AccessControl для замков и гаражных ворот)

SmartStart — правильный путь для современных Z-Wave 700/800 устройств. QR-код сканируем камерой телефона, передаём DSK-ключ в Z-Wave JS, устройство включаем в розетку — оно само добавляется в сеть.

На Flutter: mobile_scanner для сканирования QR → распарсить ZW:... URI → извлечь DSK → отправить в Z-Wave JS API.

Ячеистая сеть и оптимизация маршрутов

Z-Wave строит маршруты самостоятельно, но иногда требует помощи. Если устройство нестабильно — смотрим маршрут: { "command": "node.getRoutingSummary", "nodeId": 5 }.

«Heal» — перестройка маршрутов: { "command": "controller.healNetwork" }. Запускать после добавления/удаления устройств или перестановки мебели. Heal занимает 5–30 минут — показываем прогресс в приложении через события healNetworkProgress.

Визуализация сети: Z-Wave JS отдаёт controller.getNodeNeighbors для каждого узла. На Flutter рисуем граф через CustomPainter. Listening nodes (постоянное питание) — маршрутизаторы, FLiRS nodes — конечные. Батарейные устройства не ретранслируют сигнал.

Secure Communication: S2

S2 шифрование обязательно для замков (S2 AccessControl) и устройств управления доступом. При Inclusion без S2 на замке — это security vulnerability. Z-Wave JS предупреждает если устройство поддерживает S2 но было добавлено без шифрования.

DSK (Device Specific Key) — 5-значный PIN на этикетке устройства или в QR-коде. Запрашиваем у пользователя при Inclusion: { "type": "inclusionStarted" }{ "type": "validateDSKAndEnterPIN" } → пользователь вводит PIN → { "command": "controller.validateDSKAndEnterPIN", "pin": "12345" }.

Мониторинг батареи

Z-Wave батарейные устройства (датчики, замки) сами сообщают уровень заряда через Battery Command Class. Пороговое уведомление: если battery.level < 20% — push пользователю. Хранить историю уровней батареи в базе не нужно — достаточно последнего значения.

Сроки

Z-Wave JS + WebSocket клиент, базовое управление — 2–3 недели. SmartStart inclusion, визуализация сети, S2 security, heal, мониторинг батареи — 6–9 недель. Стоимость зависит от типов устройств и требований к безопасности.