Інтеграція Alexa-пристроїв у мобільний IoT-додаток
Alexa Smart Home — не один API, а три різних шляхи залежно від завдання. Керування розумним будинком через Alexa Skills Kit (ASK) із Smart Home Skill — для сторонніх пристроїв, які хочуть працювати через голосові команди Alexa. Alexa Mobile Accessory Kit (AMAK) — для Bluetooth-аксесуарів, під'єднаних до Echo-пристроїв. Alexa Voice Service (AVS) Integration — вбудовування голосового асистента прямо в мобільний додаток. Найчастіше в мобільній розробці потрібен або Smart Home Skill, або AVS. Ми допомагаємо обрати оптимальний шлях і реалізувати інтеграцію під ключ, з проходженням сертифікації та повною документацією.
Порівняння підходів до інтеграції Alexa
| Параметр | Smart Home Skill | AVS Integration | AMAK |
|---|---|---|---|
| Призначення | Керування пристроями | Голосовий асистент у додатку | Bluetooth-аксесуари |
| Складність | Середня | Висока (у 3 рази складніша за Smart Home Skill) | Низька |
| Час розробки | 2–3 тижні | 5–7 тижнів (на 150% довше) | 1–2 тижні |
| Сертифікація | Обов'язкова | Не обов'язкова (якщо тільки APL) | Обов'язкова |
| Необхідність бекенду | Так (Lambda) | Так (API + обробка аудіо) | Ні (пряме підключення) |
Smart Home Skill простіший за AVS приблизно в 3 рази за термінами та трудозатратами. AVS дає більше контролю, але вимагає керування аудіопотоками та станом діалогу.
Smart Home Skill: керування пристроями через Alexa
Схема роботи: користувач каже «Alexa, увімкни світло», Alexa Smart Home надсилає директиву на Lambda-функцію розробника, Lambda керує реальним пристроєм через бекенд або напряму. Мобільний додаток у цій схемі — точка налаштування та авторизації, а не керування.
Account Linking — ключовий крок. Користувач авторизує Alexa через OAuth 2.0 на сервері розробника. Після цього Alexa отримує access token і передає його з кожною директивою:
{ "directive": { "header": { "namespace": "Alexa.PowerController", "name": "TurnOn" }, "endpoint": { "endpointId": "device-001", "scope": { "type": "BearerToken", "token": "user-access-token" } } } } Lambda обробляє директиву та відповідає Response. Для успішного проходження Alexa Smart Home Certification Response має прийти протягом 8 секунд — це жорсткий дедлайн.
Мобільний додаток відкриває WebView для Account Linking або використовує Custom URL Scheme для редиректу після OAuth:
// iOS: обробка OAuth callback func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url, url.scheme == "myapp", url.host == "alexa-auth" else { return } let components = URLComponents(url: url, resolvingAgainstBaseURL: false) let code = components?.queryItems?.first(where: { $0.name == "code" })?.value // Обмін коду на токен через бекенд } Як налаштувати Account Linking для Smart Home Skill?
- Зареєструйте OAuth-сервер в Alexa Developer Console, вказавши URL авторизації та токен-обміну.
- У мобільному додатку відкрийте WebView на URL авторизації.
- Після редиректу отримайте
codeта обміняйте його на access token через бекенд. - Використовуйте
ASWebAuthenticationSessionна iOS абоChrome Custom Tabsна Android.
Без правильно налаштованого Account Linking сертифікація не пройде.
AVS Integration: Alexa в мобільному додатку
Alexa Voice Service дозволяє вбудувати голосового асистента в додаток. SDK доступний для Android через com.amazon.alexa:avs-device-sdk-android (deprecated) або через Alexa Auto SDK для автомобільних додатків. Офіційний шлях для мобільних — AVS API напряму через HTTP/2:
POST https://avs-alexa-eu.amazon.com/v20160207/events Content-Type: multipart/form-data; boundary=boundary Authorization: Bearer {access_token} --boundary Content-Disposition: form-data; name="metadata" Content-Type: application/json { "event": { "header": { "namespace": "SpeechRecognizer", "name": "Recognize", "messageId": "uuid" }, "payload": { "profile": "CLOSE_TALK", "format": "AUDIO_L16_RATE_16000_CHANNELS_1" } } } --boundary Content-Disposition: form-data; name="audio" Content-Type: application/octet-stream [PCM audio data 16kHz, 16-bit mono] --boundary-- AVS відповідає мультипарт-відповіддю з директивами та TTS-аудіо. Потік аудіо потрібно захоплювати через AVAudioEngine на iOS або AudioRecord на Android з буфером 320 байт (20 мс) для мінімальної затримки.
Чому AVS інтеграція складніша, ніж здається?
Тому що кожне з підзавдань — керування діалогом, аудіопотік, wake word — вимагає глибокого розуміння протоколу та налагодження на реальних Echo-пристроях. Наприклад, для захоплення аудіо в фоні на Android 10+ потрібен FOREGROUND_SERVICE з типом microphone, інакше додаток крашиться. На iOS потрібно коректно обробляти переривання від Siri. У нашій практиці 70% часу йде на налагодження цих нюансів, а не на сам API.
Alexa для Android: APL та візуальні відповіді
Alexa Presentation Language (APL) дозволяє відображати візуальні картки на екранованих Echo-пристроях та в додатках з APL-рендерером. Android SDK для APL:
implementation("com.amazon.alexa:apl-android-sdk") APL-документ — JSON, який описує інтерфейс. Рендерер відображає його без написання нативного коду на кожній платформі окремо.
Найчастіша проблема при інтеграції AVS — керування мікрофоном у фоні. Android 10+ вимагає FOREGROUND_SERVICE з типом microphone для захоплення аудіо, коли додаток не на передньому плані. Без <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/> додаток крашиться з SecurityException при спробі старту сервісу.
Публікація Smart Home Skill
Сертифікація Alexa Smart Home Skill проходить через Alexa Developer Console. Основні вимоги: Account Linking через HTTPS, коректні Response для всіх Capability Interface, які задекларовані в маніфесті, та обробка запиту Alexa.Discovery — повернення списку пристроїв користувача.
Типова причина відмови в сертифікації — неправильний ChangeReport при зміні стану пристрою не за командою Alexa. Якщо користувач увімкнув світло фізичним вимикачем, Smart Home Skill повинен надіслати ChangeReport через Alexa Event Gateway.
Терміни: інтеграція Account Linking та базового Smart Home Skill — 2–3 тижні (від 1500$). Повна реалізація з AVS, APL та підтримкою кількох Capability Interface — 5–7 тижнів (від 5000$). Вартість розраховується після аналізу пристроїв та необхідних сценаріїв.
Що входить у роботу з інтеграції Alexa?
- Аналіз архітектури IoT-системи та вибір відповідного шляху (Smart Home Skill / AVS / AMAK)
- Проєктування Account Linking: OAuth-сервер, токен-обмін, налаштування в Alexa Developer Console
- Розробка Lambda-функцій або бекенду для обробки директив і надсилання ChangeReport
- Реалізація мобільної частини: WebView для авторизації, обробка callback, налаштування AVS (якщо потрібно)
- Тестування на реальних пристроях Echo та проходження сертифікації
- Документація та навчання команди замовника
Ми виконали понад 50 проєктів з інтеграції голосових асистентів, з них 10 — з Alexa. Маємо 7 років досвіду в IoT-розробці та сертифікованих інженерів. Наші рішення проходять сертифікацію з першого разу в 90% випадків. Пропонуємо гарантію якості та безкоштовну консультацію.
Alexa Smart Home Skill API — офіційна документація Amazon.







