Клієнт прийшов до нас з проблемою: пральна машина Samsung, робот-пилосос Roborock та холодильник LG — кожен зі своїм застосунком. Керувати трьома різними інтерфейсами незручно, а автоматизувати сценарії («запустити прибирання після прання») неможливо. Ми побудували єдиний мобільний застосунок для розумного дому, який об'єднує техніку різних брендів і додає сценарії, недоступні в офіційних застосунках. Наше рішення дозволяє скоротити час інтеграції вдвічі порівняно з розробкою з нуля, а вартість розробки індивідуальна — ви платите лише за потрібні вам бренди та функції. У типовому проекті бере участь 5–10 пристроїв, а час реакції на подію може сягати 30 секунд. Ми використовуємо перевірені API та middleware, щоб гарантувати стабільну роботу навіть за відсутності офіційного інтерфейсу. Це знижує витрати на підтримку до 40% порівняно з використанням декількох native-застосунків. Розробка ведеться на Flutter, що забезпечує єдину кодову базу для iOS та Android і прискорює випуск оновлень. Зв'яжіться з нами, щоб отримати попередню оцінку вашого проекту.
Розробка мобільного застосунку для розумного дому: як об'єднати техніку різних брендів?
Екосистеми та API
- Samsung SmartThings — REST API на
https://api.smartthings.com/v1. OAuth2 personal access tokens або повноцінний OAuth2 flow. Підтримує керування пральними машинами (washerWashingCourse), холодильниками (refrigerationSetpoint), кондиціонерами. На Flutter:http+dioз Bearer-токеном. WebHook підписка на події черезsubscriptionsendpoint. - LG ThinQ — офіційного публічного API немає. Працюємо через неофіційні реверс-інжиніринг бібліотеки (
pythinq,thinq2-be) або Home Assistant LG ThinQ інтеграцію як middleware. Це типова ситуація для великої техніки: виробник закриває API, щоб не давати третім сторонам доступ. - Miele —
developer.miele.com, OAuth2, REST API. Керування програмами прання, моніторинг статусу, сповіщення по push через Miele webhook. - Bosch/Siemens Home Connect — REST API на
https://api.home-connect.com. OAuth2. Підтримує холодильники, духовки, пральні машини. Sandbox для тестування без реальних пристроїв. - Xiaomi (Mi Home) — Xiaomi MiIO протокол, UDP, локальний. Бібліотека
python-miioдобре документована. Пилососи Roborock/Dreame — окремі локальні протоколи або хмара через MiCloud API.
Порівняння API розумного дому
| Бренд | Тип API | Аутентифікація | Обмеження |
|---|---|---|---|
| Samsung SmartThings | REST + WebHook | OAuth2 | 1000 запитів/день (безкоштовно) |
| LG ThinQ | Тільки неофіц. бібліотеки | — | Нестабільно, потребує middleware |
| Miele | REST | OAuth2 | 500 запитів/день |
| Bosch/Siemens | REST | OAuth2 | 100 запитів/день (trial) |
| Xiaomi Mi Home | UDP/хмара | MiToken | Залежить від пристрою |
Як отримувати карту приміщення від робота-пилососа?
Roborock — один з найпоширеніших. Офіційний Roborock API з'явився нещодавно, до цього використовували реверс-інжиніринг через MiIO. Ключова фіча для пилососів — карта приміщення. Робот будує карту через SLAM, зберігає її на пристрої. Отримати карту: або пропрієтарний протокол (Roborock S7+: бінарний формат з RLE-стисненням), або через Home Assistant vacuum.send_command з get_map_data. Відмальовка карти на Flutter: декодуємо бінарний blob в Uint8List, будуємо Picture через Canvas. Кімнати — кольорові полігони. Позиція робота — іконка поверх. Перешкоди — темні пікселі. Використовуємо CustomPainter з repaint: ValueNotifier<RobotState>. Запуск прибирання конкретної кімнати: POST /api/commands/vacuum/start_room з ID кімнати з карти. Roborock API передає room_ids як список int-ідентифікаторів.
Покрокова інструкція інтеграції Roborock API
- Зареєструйтеся в Roborock Developer та отримайте client_id / client_secret.
- Встановіть бібліотеку
roborockдля Dart або Python. - Перевірте доступність пристрою через
vacuum.discover(). - Отримайте карту через
vacuum.get_map_data(). - Декодуйте бінарні дані згідно з документацією.
- Відмалюйте карту за допомогою
CustomPainter.
Моніторинг стану техніки
Пральна машина: поточна програма, час, що залишився, помилки. Не потрібен реалтайм — оновлення кожні 30–60 секунд достатньо. Сповіщення про завершення циклу — через WebHook або polling з перевіркою status == "finished". На Flutter: Timer.periodic(Duration(seconds: 60), (t) => _fetchStatus()) поки status != 'idle'. Як тільки цикл завершено — FCM push користувачу та зупинка таймера. Холодильник: температура камери, компресор, відкриття дверей (датчик в API Samsung SmartThings: contactSensor capability). Push при відкритих дверях довше 2 хвилин — на бекенді через Rule-based trigger.
Порівняння методів push-сповіщень
| Метод | Затримка | Надійність | Складність |
|---|---|---|---|
| WebHook | Миттєво | Залежить від мережі | Середня |
| Polling 30 сек | До 30 сек | Висока | Низька |
Енергомоніторинг
Розумні розетки з вимірюванням споживання (Shelly Plug S, Tapo P110) — важливий компонент для техніки. Потужність у ватах, сумарна витрата кВт·год. MQTT публікація кожні 5–30 секунд. Відображення споживання: лінійний графік через fl_chart (Flutter) або victory-native (React Native). Агрегація по годинах/днях/місяцях на бекенді (PostgreSQL date_trunc). Не тягнемо сирі дані за 30 днів у застосунок — тільки агрегати, це економить до 80% трафіку.
Досвід та гарантії
Наша команда має 5+ років досвіду у створенні IoT-застосунків, реалізувала понад 30 проєктів для розумного дому. Ми гарантуємо стабільну інтеграцію через офіційні API, а де їх немає — використовуємо перевірені opensource-рішення з власними доробками. Наші інженери сертифіковані з Flutter та знайомі з тонкощами App Store Review Guidelines (Section 4.2/5.1) і правилами Google Play. Оцініть проєкт — зв'яжіться з нами для консультації.
Приклад коду для відмальовки карти на Flutter
```dart @override Widget build(BuildContext context) { return CustomPaint( painter: MapPainter(robotState), child: Container(), ); } ```Що входить в роботу
- Аналітика та проектування архітектури застосунку.
- Інтеграція з API обраних брендів (до 5 брендів).
- Розробка Flutter-застосунку з кастомним UI під Android та iOS.
- Налаштування бекенду (Node.js/Python) з мікросервісами та MQTT-брокером.
- Реалізація push-сповіщень (FCM) та фонових оновлень.
- Тестування на реальних пристроях та налагодження.
- Деплой в App Store та Google Play (налаштування code signing, provisioning profile).
- Документація з інтеграції та навчання вашої команди.
- Підтримка після запуску (3 місяці гарантії на баги).
Типові складнощі
Зворотний зв'язок від техніки буває нестабільним. Samsung SmartThings webhook може пропустити подію при нестабільному інтернеті. Polling як fallback при відсутності webhook події за >5 хвилин — стандартна страховка. Home Connect API має rate limit: 100 запитів на день на пристрій у trial режимі. Для production — запитувати commercial access. REST API простіший у використанні, ніж MQTT, але поступається за швидкістю в 10 разів при опитуванні 10 пристроїв.
Терміни
Один бренд (наприклад, Samsung SmartThings), базовий моніторинг та керування — 4–6 тижнів. Мультибренд, карта пилососа, енергомоніторинг, автоматизація — 3–5 місяців. Вартість розраховується індивідуально і залежить від набору брендів та складності інтеграції. Замовте попередню оцінку — розрахуємо за 1 день. Отримайте консультацію по вашому проекту — зв'яжіться з нами.







