Розробка мобільного додатка для розумного дому (мультимедіа)
Управління мультимедіа в розумному домі — це телевізори, ресивери, стрімінгові пристрої, мультирум-аудіо. Завдання додатка: єдиний пульт управління зі всім обладнанням у домі, включаючи створення аудіозон та синхронізацію контенту.
Протоколи управління AV-технікою
HDMI CEC — управління телевізорами через HDMI шину. Через адаптер Pulse-Eight або вбудований CEC в Raspberry Pi можна відправляти команди (включити, змінити вхід, регулювати гучність) з мобільного через MQTT-мост. Прямого API з додатка немає — тільки через бекенд з CEC-адаптером.
IP Control — більшість сучасних AV-ресиверів Denon, Yamaha, Onkyo підтримують Telnet або HTTP на портах 23 або 80. Команди через сокет: MVUP, MVDOWN, SICD (зміна входу). На Flutter: dart:io Socket. На React Native: react-native-tcp-socket. Немає публічного SDK — тільки документація протоколів для кожного виробника.
Sonos — REST API через локальну мережу. Sonos HTTP API на порту 5005 (через sonos-http-api bridge) або офіційний Sonos Platform API (OAuth2, хмара). Управління відтворенням (play, pause, next), гучністю, мультирум-групуванням. Підписка на події через polling або UPnP SUBSCRIBE.
Apple TV — MediaRemoteTV протокол (MRP) або HomeKit. Через HomeKit на iOS можна управляти Apple TV без Apple TV SDK. HMAccessory з HMServiceTypeTelevision. Без HomeKit — через ATV Remote framework або відправку команд через tvOS Companion Link (потрібен pairing).
Chromecast/Google TV — Google Cast SDK для iOS та Android. Офіційний google_cast Flutter plugin нестабільний — частіше використовують flutter_cast_framework або нативний код через Platform Channel.
Kodi — JSON-RPC API, http://{host}/jsonrpc. Повний контроль над медіатекою, відтворенням, плагінами. Відмінний варіант для домашніх медіаценрів.
Мультирум-аудіо
Відтворити один источник звуку в кількох кімнатах одночасно — технічно нетривіально через синхронізацію.
Sonos — внутрішня синхронізація між колонками. API: POST /zones/{roomName}/group для об'єднання зон. Затримка між колонками < 1ms. Управління групою з додатка — стандартне.
Snapcast — open-source рішення для синхронного мультирум-аудіо. Клієнти на Raspberry Pi в кожній кімнаті. REST API сервера: GET /jsonrpc з методами Server.GetStatus, Client.SetVolume, Group.SetMute. На Flutter: http запити до Snapcast сервера через домашню мережу.
AirPlay 2 — iOS нативний. AVRoutePickerView для вибору AirPlay 2 приймачів. Кілька приймачів одночасно через AVAudioSession.setPreferredOutputNumberOfChannels. На сторонніх пристроях (Raspberry Pi) — Shairport Sync з AirPlay 2 підтримкою.
Universal Remote: ІК-управління
IR Blaster пристрої (Broadlink RM4, BestCon RM4C) — відправляють ІК-команди телевізорам та кондиціонерам без Wi-Fi на самому пристрої. Broadlink Python SDK (broadlink) добре задокументований. На Node.js сервері: const device = new broadlink.genDevice({type: 0x6039, ...}) → device.sendCode(irCode).
База ІК-кодів: IRDB (github.com/probonopd/irdb), Pronto Hex формат. На Flutter показуємо список брендів та моделей — користувач вибирає свій телевізор, завантажуємо коди з бази.
Проблема: IR коди для кожної моделі телевізора різні. Потрібна база на тисячі моделей або функція «навчання» — записати існуючий пульт через Broadlink.
Інтеграція зі стрімінговими сервісами
Deep link на стрімінгову платформу через додаток: intent://www.netflix.com/watch/...#Intent;scheme=https;package=com.netflix.mediaclient;end (Android) або nflx://www.netflix.com/watch/... (iOS). Запуск конкретного контенту на телевізері з мобільного додатка.
Через Chromecast: Cast SDK дозволяє запустити Netflix/YouTube додаток на Chromecast та почати відтворення через RemoteMediaClient.load() з MediaInfo що містить contentId.
Строки
Базове управління однією системою (Kodi, Sonos або AV-ресивер одного бренду) — 3–4 тижні. Universal remote з ІК, мультирум-аудіо, кілька протоколів, зони — 2–4 місяці. Вартість залежить від набору обладнання та вимог до офлайн-роботи.







