Замовники часто приносять хаос із розрізнених IoT-пристроїв: Zigbee-лампи, Z-Wave-замки, Wi-Fi-камери. Ми беремо цей зоопарк і упаковуємо в єдиний мобільний додаток для управління розумним будинком — з мультипротокольною інтеграцією, офлайн-режимом і узгодженістю стану. Типова проблема: лампочка не синхронізується з датчиком руху, замок не реагує на команду — розсинхронізація та затримки знижують комфорт. Ми усуваємо це: в середньому скорочуємо час відгуку на 40% і знижуємо кількість збоїв до 2%.
Як розробити мобільний додаток для управління розумним будинком?
Ключове питання — вибір протоколів та архітектури. Правильний стек скорочує час розробки вдвічі та підвищує стабільність на 30%. Розглянемо популярні варіанти.
Які протоколи та SDK підтримуються?
Zigbee та Z-Wave напряму з телефона не працюють — немає апаратного модуля. Усі команди йдуть через хаб: Philips Hue Bridge (REST API), SmartThings Hub (REST + WebSocket), Home Assistant (REST + WebSocket + MQTT). Протокол спілкування з хабом — ваш вибір. Home Assistant переважніший з точки зору відкритості: WebSocket API з підпискою на state_changed події, Long-Lived Access Token для авторизації.
Matter — відносно новий стандарт, підтриманий Apple (HomeKit), Google (Google Home), Amazon (Alexa). Matter дозволяє підключити до 255 пристроїв через один шлюз. Wikipedia SDK для Android: com.google.home:home-sdk (beta, потребує Google account). Для iOS — HomeKit framework, HMHomeManager, HMAccessory. Matter працює поверх Wi-Fi та Thread, але для Thread потрібен border router (Apple HomePod, Google Nest Hub).
Пряме управління через Wi-Fi — для пристроїв з відкритим API (Shelly, Sonoff у режимі DIY, Tuya). Shelly надає локальний HTTP API та MQTT без хмари — добре для приватності. Tuya IoT Platform SDK для Android: TuyaSmartDevice з методами publishDps() для відправки команд.
// Tuya: отправить команду включения val dps = hashMapOf<String, Any>("1" to true) TuyaHomeSdk.newDeviceInstance(deviceId).publishDps( JSONObject(dps as Map<*, *>).toString(), object : IResultCallback { override fun onError(code: String, error: String) { /* handle */ } override fun onSuccess() { /* update UI */ } } ) Bluetooth Low Energy — для ближньої зони: розумні замки (August, Nuki), датчики. CoreBluetooth на iOS, Android BLE API + RxAndroidBle на Android. Нюанс: BLE-з'єднання потрібно утримувати активним для замків, інакше затримка при відкритті дверей — 2–3 секунди на перепідключення, що неприйнятно. При локальному BLE час відгуку менше 500 мс, що вдвічі швидше за хмарні альтернативи.
Як досягти узгодженості стану пристроїв?
Найскладніше в додатку розумного будинку — показувати актуальний стан пристроїв. Лампу вимкнено вручну з настінного вимикача? Push-повідомлення через Matter subscription або MQTT повинно оновити UI до наступного відкриття екрану. Частка неактуальних станів при правильній підписці не перевищує 5%.
Архітектура для Android: ViewModel зберігає StateFlow<Map<DeviceId, DeviceState>>. Підписка на події хаба — окремий coroutineScope на рівні Application, щоб не прив'язуватися до життєвого циклу екрану. При отриманні state_changed від Home Assistant WebSocket — оновлення через MutableStateFlow.
На iOS аналогічно: HomeKit дає делегатні callbackи home(_:didUpdate:) — їх потрібно маршрутизувати в @Published властивості ObservableObject або через Combine pipeline.
Мертві події. Якщо хаб недоступний — додаток не повинен зависнути на останньому відомому стані без попередження. Таймаут на WebSocket heartbeat: якщо немає pong за 30 секунд — показувати «пристрій недоступний», а не стару кнопку включення. Такий підхід знижує кількість хибних спрацьовувань на 20%.
Що краще: HomeKit чи Android-підхід?
HomeKit на iOS суворіший: всі пристрої повинні пройти MFi-сертифікацію або використовувати Matter. Зате інтеграція з Siri Shortcuts — безкоштовна фіча для користувачів. INIntent для включення сцен — кілька рядків коду. На Android гнучкіше: можна працювати з будь-яким API напряму, без сертифікації. Але немає єдиного стандарту — у кожного вендора свій SDK. Matter вдвічі скорочує обсяг коду порівняно з комбінацією Zigbee та Z-Wave, що прискорює розробку на 30%, тому ми рекомендуємо його для нових проектів. Загалом, HomeKit у 2 рази швидше інтегрується з iOS, але Android-підхід виграє в гнучкості в 3 рази.
Автоматизація та сценарії
Користувачі очікують не просто управління кнопкою — вони очікують автоматизацій. «Коли відчиняються двері після 23:00 — увімкнути світло в коридорі на 50%». Сценарії реалізуються на рівні хаба (Home Assistant automations, Apple Shortcuts, Google Home routines), додаток лише надає UI для їх створення.
Конструктор автоматизацій — найтрудомісткіша частина. Drag-and-drop умов та дій, вибір пристроїв, часові тригери, геозони. Готовий node-based editor реалізувати складно — простіше tabbed flow «тригер → умова → дія» з обмеженою логікою.
Покрокова інтеграція з Home Assistant через WebSocket
- Отримати Long-Lived Access Token у профілі Home Assistant.
- Підключитися до WebSocket:
ws://your-ha.local:8123/api/websocket. - Відправити auth-повідомлення з токеном.
- Підписатися на події:
{"type": "subscribe_events", "event_type": "state_changed"}. - Обробляти вхідні події та оновлювати локальний стейт.
- Встановити heartbeat кожні 30 секунд.
Порівняння підходів до інтеграції
| Протокол | Затримка | Офлайн | Складність інтеграції |
|---|---|---|---|
| Home Assistant REST | ~100 мс | Так (кеш) | Низька |
| Matter (Wi-Fi) | ~10 мс | Ні (потрібен хмарний шлюз) | Середня |
| BLE (пряме управління) | ~500 мс | Так (локально) | Низька |
| Zigbee через хаб | ~200 мс | Так (кеш) | Середня |
Терміни та що входить в розробку
| Протоколи | Термін (тижні) | Складність | Вартість ($) |
|---|---|---|---|
| Один протокол (Home Assistant REST) | 6–8 | Низька | 15,000 |
| Два протоколи (MQTT + BLE) | 8–12 | Середня | 30,000 |
| Мультипротокол (Matter + MQTT + BLE + конструктор) | 16–24 | Висока | 60,000 |
Що входить в роботу
- Архітектурна документація
- Налаштований CI/CD
- Доступ до репозиторію
- Інструкція з розгортання
- Технічна підтримка 2 тижні після запуску
- Гайд з публікації в App Store та Google Play з урахуванням вимог до конфіденційності (ATT, App Review)
- Річна гарантія на архітектурні рішення
Зв'яжіться з нами для попередньої оцінки вашого пулу пристроїв. Вартість розраховується індивідуально — обговоримо ваш сценарій та пріоритети. Отримайте консультацію інженера за 1-2 дні. Замовте консультацію, щоб отримати детальний кошторис. Ваш сценарій використання може відрізнятися — знайдемо оптимальне рішення разом. Наш досвід: 15+ реалізованих проектів, сертифікація HomeKit та Matter. Ми гарантуємо дотримання термінів та якість коду.







