Інтеграція Z-Wave у мобільний додаток: керування IoT-хабом

Клієнт приходить із задачею: керувати двадцятьма Z-Wave замками та датчиками через один мобільний додаток. Перший камінь спотикання — вибір хаба та API для інтеграції. Розповім, як ми з'єднуємо Z-Wave з iOS та Android на сучасному стеку. Z-Wave — бездротовий протокол на частоті 868 MHz (Європа) /

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Z-Wave у мобільний додаток: керування IoT-хабом
Складний
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Клієнт приходить із задачею: керувати двадцятьма Z-Wave замками та датчиками через один мобільний додаток. Перший камінь спотикання — вибір хаба та API для інтеграції. Розповім, як ми з'єднуємо Z-Wave з iOS та Android на сучасному стеку.

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

Який хаб обрати для мобільної інтеграції?

Варіант Z-Wave JS: сучасний open-source стек на Node.js. USB-контролер (UZB7, Aeotec Z-Stick 7, Zooz ZAC93) → Z-Wave JS сервер → WebSocket API + MQTT. Найкращий вибір для кастомного мобільного додатку. У два рази швидший за комерційні аналоги за часом відгуку.

Приклад підключення через WebSocket:

{ "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, але менш гнучкі та повільніші.

Що таке 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 — саме за ним визначаємо тип пристрою.

Як відбувається сполучення пристроїв (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

Спосіб Складність Гнучкість Швидкість Підходить для
Z-Wave JS + WebSocket Висока Максимальна Висока Кастомні додатки
Home Assistant addon Середня Середня (через HA API) Середня Універсальні рішення
Комерційні хаби (Vera/Fibaro) Низька Низька (обмежений API) Низька Швидкий старт, мало пристроїв

Як оптимізувати комірчасту мережу Z-Wave?

Z-Wave будує маршрути самостійно, але іноді потребує допомоги. Якщо пристрій нестабільний — дивимося маршрут через node.getRoutingSummary. «Heal» — перебудова маршрутів: controller.healNetwork. Запускати після додавання або видалення пристроїв. Heal займає 5–30 хвилин — показуємо прогрес у додатку через події healNetworkProgress.

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

Secure Communication: S2

S2 шифрування обов'язкове для замків та пристроїв керування доступом. При Inclusion без S2 на замку — це security vulnerability. Z-Wave JS попереджає, якщо пристрій підтримує S2, але був доданий без шифрування.

DSK (Device Specific Key) — 5-значний PIN на етикетці пристрою або в QR-коді. Запитуємо у користувача при Inclusion.

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

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

Що входить у роботу

  • Аналіз вимог та підбір хаба/контролера
  • Налаштування Z-Wave JS сервера та WebSocket/MQTT моста
  • Розробка мобільного клієнта (iOS/Android) з керуванням пристроями
  • Реалізація SmartStart inclusion, S2 безпеки
  • Візуалізація мережі та оптимізація маршрутів
  • Тестування на реальних пристроях та документація API
  • Підтримка після запуску (один місяць)

Терміни та бюджет

Базове керування через Z-Wave JS + WebSocket займає 2–3 тижні. SmartStart, візуалізація, S2, heal, моніторинг — 6–9 тижнів. Вартість такого рішення залежить від кількості пристроїв: від $5000 до $15000 для типових проєктів. Наш досвід в IoT-інтеграціях — понад 7 років, понад 30 проєктів з Z-Wave. Ознайомтеся з офіційною документацією Z-Wave JS для деталей.

Оцініть свій проєкт: напишіть нам, і ми підготуємо комерційну пропозицію під ваші пристрої та вимоги. Отримайте консультацію вже сьогодні.