Інтеграція Google Home-пристроїв у мобільний IoT-застосунок

При інтеграції розумного дому в мобільний застосунок розробники часто стикаються з дилемою: використовувати нативний **Google Home SDK** або REST-інтерфейс **Device Access API**. Неправильний вибір веде до переробки архітектури, втрати часу та грошей. Типовий сценарій: клієнт вже використовує Nest-т

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Google Home-пристроїв у мобільний IoT-застосунок
Складний
~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

При інтеграції розумного дому в мобільний застосунок розробники часто стикаються з дилемою: використовувати нативний Google Home SDK або REST-інтерфейс Device Access API. Неправильний вибір веде до переробки архітектури, втрати часу та грошей. Типовий сценарій: клієнт вже використовує Nest-термостати і хоче керувати ними із застосунку для iOS та Android. Помилка — починати з Google Home SDK, не перевіривши сумісність з iOS. В результаті — переписування бекенда і затримка в 2 тижні. Ми пропонуємо вибір на основі платформи та набору пристроїв. Device Access API підходить для iOS і крос-платформних рішень, але вимагає OAuth і пулінгу. Google Home SDK — для Android з реактивною моделлю і автоматичною авторизацією. Але якщо у вас камери Nest, WebRTC-стрімінг обов'язковий незалежно від вибору. Наша команда має понад 6 років досвіду в мобільній розробці та виконала понад 30 IoT-проєктів, включаючи інтеграції з Google Home, Apple HomeKit та Samsung SmartThings. Своєчасний вибір API економить до 30% бюджету на інтеграцію. Для підбору оптимального рішення зв'яжіться з нашими фахівцями.

Порівняння підходів

Параметр Device Access API (REST) Google Home SDK (Android)
Платформи iOS, Android, крос-платформа Android тільки
Пристрої Nest (термостати, камери, дзвінки) Всі Matter + Nest через Home
Авторизація OAuth 2.0 (Google Sign-In) Автоматична через Google Play
Реактивність Pull (запити) Push (Kotlin Flow)
Термін інтеграції 2-3 тижні 3-4 тижні

Device Access API: REST-інтеграція для iOS та Flutter

Device Access працює з пристроями Nest (термостати, камери, дверні дзвінки). Авторизація через OAuth 2.0, після чого застосунок отримує доступ до Structures, Rooms і Devices:

GET https://smartdevicemanagement.googleapis.com/v1/enterprises/{projectId}/devices Authorization: Bearer {access_token} 

Відповідь містить список пристроїв з трейтами. Термостат Nest Learning 3rd gen повертає:

{ "name": "enterprises/project-id/devices/device-id", "type": "sdm.devices.types.THERMOSTAT", "traits": { "sdm.devices.traits.ThermostatMode": { "mode": "HEAT", "availableModes": ["HEAT", "COOL", "HEATCOOL", "OFF"] }, "sdm.devices.traits.ThermostatTemperatureSetpoint": { "heatCelsius": 21.5 }, "sdm.devices.traits.Temperature": { "ambientTemperatureCelsius": 19.8 } } } 

Керування — через ExecuteCommand. Приклад на iOS з Alamofire:

func setThermostatMode(_ mode: String, deviceName: String) async throws { let url = "https://smartdevicemanagement.googleapis.com/v1/\(deviceName):executeCommand" let body: [String: Any] = [ "command": "sdm.devices.commands.ThermostatMode.SetMode", "params": ["mode": mode] ] _ = try await AF.request(url, method: .post, parameters: body, encoding: JSONEncoding.default, headers: authHeaders) .serializingDecodable(CommandResponse.self) .value } 

Авторизація через Google Sign-In SDK з scope https://www.googleapis.com/auth/sdm.service. Refresh token потрібно зберігати в Keychain — Device Access токени живуть 1 годину, refresh-токен — 3 місяці. Правильне зберігання токенів скорочує кількість помилок входу на 90%, що знижує витрати на техпідтримку. Device Access API обробляє до 100 запитів на секунду на проєкт.

Як правильно реалізувати інтеграцію Google Home SDK на Android?

На Android Google Home SDK надає нативний доступ до екосистеми, включаючи Matter-пристрої. Підключення через Gradle: implementation("com.google.home:google-home-sdk:1.1.0"). Ініціалізація та робота з пристроями через Flow:

val homeClient = HomeManager.getHomeClient(context) homeClient.getHomes() .flowOn(Dispatchers.IO) .collect { homes -> homes.forEach { home -> home.devices().collect { devices -> devices.forEach { device -> processDevice(device) } } } } // Спостереження за змінами suspend fun observeThermostat(device: HomeDevice) { device.trait(ThermostatMode)?.changes()?.collect { mode -> updateUI(mode.mode) } } // Команда через трейти val thermostatTrait = device.trait(ThermostatMode) ?: return hermostatTrait.setMode(ThermostatMode.Mode.COOL) 

Камери Nest: WebRTC стрімінг

Camera Access трейт повертає rtspUrl або WebRTC offer. Нові моделі Nest Cam працюють тільки через WebRTC:

val cameraLiveStream = device.trait(CameraLiveStream) val streamResponse = cameraLiveStream?.generateWebRtcStream( offerSdp = localPeerConnection.localDescription?.description ?: "" ) peerConnection.setRemoteDescription( RTCSessionDescription(RTCSessionDescription.Type.ANSWER, streamResponse.answerSdp) ) 

Типова помилка — не оновлювати stream token вчасно. WebRTC-сесія живе 5 хвилин, потім Nest закриває з'єднання. Необхідний фоновий таймер, що викликає extendWebRtcStream() за 30 секунд до завершення.

Типова помилка: не оновлювати stream token Багато розробників забувають продовжувати WebRTC-сесію, що призводить до обриву стріму. Рекомендується реалізувати таймер з перевіркою часу життя сесії та автоматичним викликом extendWebRtcStream.

Обмеження екосистеми

Device Access API вимагає схвалення Google для кожного проєкту — заявка через консоль, відповідь від 1 до 5 робочих днів. Стягується плата за реєстрацію проєкту. Для камер потрібна підписка Nest Aware на обліковому записі користувача — це важливо вказати в UX. Згідно з офіційною документацією Google, ці вимоги обов'язкові.

Google Home SDK на Android поки в Developer Preview, API може змінюватися. Для продакшн-рішень з камерами Device Access API надійніше. На основі виконаних проєктів, гібридний підхід (SDK для керування пристроями, Device Access для камер) дає кращий результат.

Ключові кроки інтеграції

  1. Аналіз вимог і вибір підходу (SDK, REST або гібрид)
  2. Налаштування OAuth 2.0 та конфігурація Google Cloud Project
  3. Реалізація Device Access API або Google Home SDK (або обох)
  4. Інтеграція WebRTC-стрімінгу для камер Nest
  5. Тестування на реальних пристроях і налагодження
  6. Документація та навчання команди замовника
  7. Підтримка при публікації в магазинах застосунків

Як вибрати між Google Home SDK та Device Access API?

Якщо ваш застосунок тільки під Android, вибирайте Google Home SDK — він дає реактивну модель і автоматичну авторизацію. Для iOS і крос-платформи — Device Access API, він універсальніший, але вимагає ручної обробки OAuth і пулінгу. Гібридне рішення — найкращий варіант, якщо потрібні і керування пристроями, і стрімінг камер.

Чому важлива правильна обробка refresh-токенів?

Якщо refresh-токен закінчується або зберігається небезпечно, користувач втрачає доступ до пристроїв. В одному з проєктів клієнт втратив контроль над термостатами через зберігання токенів в UserDefaults. Ми переписали авторизацію на Keychain/EncryptedSharedPreferences, що скоротило кількість помилок входу на 90%. Правильна обробка токенів економить до 30% часу на підтримку.

Етап Device Access API Google Home SDK
Налаштування OAuth 1-2 дні 0 (авто)
Реалізація команд 3-5 днів 2-3 дні
WebRTC стрімінг 5-7 днів 3-5 днів (Android)
Тестування 3-5 днів 3-5 днів

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

  • Аналіз вимог і вибір оптимального підходу
  • Налаштування OAuth-авторизації та конфігурація Google Cloud Project
  • Реалізація Device Access API або Google Home SDK (або обох)
  • Інтеграція WebRTC-стрімінгу для камер Nest
  • Тестування і налагодження на реальних пристроях
  • Документація та навчання команди замовника
  • Підтримка при публікації в магазинах застосунків

Терміни виконання — від 2 до 6 тижнів залежно від складності. Вартість розраховується індивідуально після оцінки проєкту. Зв'яжіться з нами для отримання точного розрахунку під ваш проєкт — ми гарантуємо сумісність з актуальними вимогами Google. Замовте консультацію з вибору відповідного API вже сьогодні.