Home Assistant є повноцінним медіахабом, який об’єднує в одну систему колонки Google, Sonos, WiiM, саморобні ESP32-приймачі та будь-які DLNA-пристрої. Масштаб спільноти теж показовий: на State of the Open Home 2025 прозвучала оцінка у 2 мільйони активних інсталяцій, причому аналітику вмикає приблизно чверть користувачів. Для українського слухача це означає просту річ: улюблені станції можна запускати в будь-якій кімнаті одним дотиком, автоматизацією або голосом, і для цього не потрібні платні сервіси.
Найбільше часу в такому проєкті забирає пошук робочих адрес потоків. Станції змінюють сервери, переходять з MP3 на AAC, додають HLS, і посилання з форуму трирічної давності часто вже мертве. Тому почнімо з джерела потоків, а потім розберемо відтворення на конкретних платформах.
Архітектура домашнього радіо
Схема складається з трьох рівнів. Перший рівень становить джерело: адреса аудіопотоку станції у форматі Icecast або Shoutcast, рідше HLS. Другий рівень займає Home Assistant, який зберігає список станцій, формує команди і запускає автоматизації. Третій рівень утворюють кінцеві пристрої, тобто сутності media_player: Chromecast, Sonos, LinkPlay-колонки, ESP32-радіо, смарт-телевізори.
Сам Home Assistant звук не декодує. Він передає колонці URL, і далі пристрій сам підключається до сервера станції. Звідси випливає перша технічна вимога: колонка має підтримувати кодек потоку. MP3 128–320 кбіт/с відтворює практично все, AAC і AAC+ підтримують Chromecast, Sonos і WiiM, HLS потребує окремої перевірки на кожному пристрої. Друга вимога стосується формату посилання. Більшість колонок очікує пряму адресу потоку, і файл .m3u чи .pls у полі media_content_id вони сприймають через раз. Плейлисти зручно використовувати там, де їх уміє читати проміжний шар, наприклад Music Assistant або прошивка ESP32-радіо.
Варто врахувати і зміни в самій платформі. У релізі 2026.9 інтеграцію VLC видалили, оскільки вона працювала лише на застарілому типі інсталяції Home Assistant Core; інтеграція VLC via Telnet залишилася доступною. Тож старі інструкції з відтворенням радіо безпосередньо на сервері через VLC сьогодні вже неактуальні.
Плейлист українських станцій
Найшвидший спосіб зібрати перевірені потоки дає каталог radioteka.com.ua. На сайті зібрані українські станції з робочими адресами трансляцій. Ви відкриваєте сторінки потрібних радіо, додаєте їх в Обране, а потім у розділі Обране завантажуєте готовий плейлист зі своєю добіркою. Так з’являється єдиний файл, у якому вже є Українське радіо, Промінь, Культура, Хіт FM, Radio ROKS чи будь-які регіональні станції, які ви слухаєте.
radioteka віддає плейлист одразу в кількох форматах, і кожен має своє призначення в розумному домі:
- M3U читають Music Assistant, VLC, Kodi, більшість медіасерверів і IPTV-плеєрів; цей формат зручно покласти в теку
/mediaHome Assistant; - PLS класичний формат Winamp і Shoutcast, його приймають Music Assistant, OwnTone і багато апаратних інтернет-приймачів;
- KaRadio список станцій для однойменної прошивки ESP8266/ESP32, який імпортується через веб-інтерфейс пристрою;
- yoRadio готовий
playlist.csvдля прошивки yoRadio на ESP32, яку можна інтегрувати з Home Assistant через MQTT.
Якщо вам потрібна лише одна станція для кнопки чи автоматизації, відкрийте її сторінку на radioteka і скопіюйте пряму адресу потоку. Саме вона піде в YAML-приклади нижче.
Базове відтворення через media_player.play_media
Будь-яку станцію можна запустити стандартною дією media_player.play_media. Вона працює однаково для Chromecast, Sonos, LinkPlay, DLNA і більшості інших плеєрів:
action: media_player.play_media
target:
entity_id: media_player.kukhnia
data:
media_content_id: "https://ПРЯМА-АДРЕСА-ПОТОКУ"
media_content_type: music
Адресу підставте з картки станції на radioteka. Перевірити потік до написання автоматизацій зручно в розділі «Інструменти розробника → Дії»: якщо станція заграла звідти, вона гратиме і з дашборду. Додатково встановіть інтеграцію Radio Browser, вона додає в медіабраузер Home Assistant світовий каталог станцій. Українські радіо там теж є, проте адреси в ньому додають користувачі, тому для щоденного прослуховування надійніше тримати власний перевірений список.
Music Assistant як центр домашнього радіо
Для дому з кількома колонками різних виробників найзручнішим рішенням є Music Assistant. Це окремий сервер, який ставиться як застосунок у Home Assistant OS і має офіційну інтеграцію з ядром. Він приймає станції з будь-яких джерел і розсилає звук на Chromecast, Sonos, AirPlay, DLNA, Snapcast, Squeezebox та інші протоколи.
Станції в Music Assistant потрапляють кількома шляхами. Окрему станцію можна додати через пункт «Add item from URL» у розділі Radio, і це працює також для локальних Icecast-потоків; для роботи з плейлистами підтримуються формати M3U, M3U8 і PLS. Тобто плейлист, завантажений з radioteka, достатньо покласти в теку медіа, підключити її як файлове джерело, і увімкнути в налаштуваннях імпорт плейлистів у бібліотеку Music Assistant. Улюблені станції з’являться в інтерфейсі з назвами, і їх можна позначити як обрані для швидкого доступу.
Окремий плюс Music Assistant помітний у мультирумі. За словами учасників спільноти, при групуванні колонок сервер забирає з інтернету один потік і локально розподіляє його на кожен пристрій. Для слабкого мобільного інтернету чи Starlink із лімітом трафіку це відчутна економія: п’ять кімнат споживають стільки ж, скільки одна.
Запуск станції через Music Assistant в автоматизаціях виглядає так:
action: music_assistant.play_media
target:
entity_id: media_player.vitalnia_ma
data:
media_id: "Радіо Промінь"
media_type: radio
Chromecast і Google Nest
Колонки Google Nest Audio, Nest Mini, а також телевізори з Google TV і Chromecast Audio додаються в Home Assistant інтеграцією Google Cast автоматично, через mDNS. Для радіо вони добре працюють з прямими адресами MP3 і AAC. Плейлисти .m3u та .pls Chromecast самостійно розбирає нестабільно, тому в play_media передавайте адресу потоку, взяту з картки станції на radioteka, або запускайте станцію через Music Assistant, який сам розпакує плейлист.
Групи динаміків, створені в застосунку Google Home, Home Assistant бачить як окрему сутність media_player. Відправлена на таку групу станція звучатиме синхронно в усіх кімнатах групи. Зміна складу групи можлива тільки в Google Home, тому для гнучкого мультируму з довільним набором кімнат краще використовувати Music Assistant.
Sonos
Інтеграція Sonos в Home Assistant локальна і не вимагає облікового запису. Вона дає повне керування гучністю, групуванням і джерелами. Радіопотоки Sonos приймає через media_player.play_media з типом music. Для коректного відображення назви станції в застосунку Sonos і для режиму «живого» ефіру адресу варто передавати з префіксом x-rincon-mp3radio:// замість https://. Цей прийом давно використовується в спільноті Home Assistant і працює для MP3- та AAC-потоків.
Групування Sonos виконується стандартними діями media_player.join і media_player.unjoin. Головна колонка групи отримує станцію, решта синхронно відтворює той самий звук з мінімальною затримкою, оскільки синхронізацію забезпечує сама екосистема Sonos.
LinkPlay, WiiM, Arylic та Audio Pro
Платформа LinkPlay лежить в основі стримерів WiiM, підсилювачів Arylic, частини колонок Audio Pro, Edifier і десятків менш відомих брендів. Починаючи з Home Assistant 2024.08, плеєри на чипсеті LinkPlay підтримуються офіційно, без сторонніх компонентів. Підключення відбувається локально й не потребує облікових даних, а пристрої зазвичай знаходяться автоматично через Zeroconf.
Офіційна інтеграція дає два додаткові інструменти. Пресети, налаштовані на пристрої, запускаються дією linkplay.play_preset, а кілька LinkPlay-пристроїв об’єднуються в мультирум через media_player.join і media_player.unjoin. На цьому зручно побудувати схему, де шість найулюбленіших українських станцій записані в пресети через застосунок WiiM Home, а Home Assistant лише перемикає їх за номером. Пресет виконується прошивкою колонки, тому станція стартує навіть за тимчасових проблем зі зв’язком із сервером Home Assistant.
action: linkplay.play_preset
target:
entity_id: media_player.wiim_pro
data:
preset_number: 1
Решту станцій із плейлиста radioteka відтворюйте звичайним play_media з прямою адресою потоку.
Мультирум на змішаному обладнанні
У реальному будинку рідко стоїть техніка одного бренду: на кухні Nest Mini, у вітальні Sonos, у спальні WiiM з пасивними колонками. Нативні групи кожної екосистеми між собою не синхронізуються. Тут знову допомагає Music Assistant, який створює власні групи плеєрів поверх різних протоколів і вирівнює затримки. Для повністю локального й дуже точного мультируму на Raspberry Pi та старих ПК підходить Snapcast, з яким Music Assistant теж уміє працювати.
Сценарій «радіо по всьому дому» в такій конфігурації зводиться до однієї групи Music Assistant, наприклад media_player.ves_dim, на яку відправляється станція. Автоматизація може вмикати її о 7:00 у будні з гучністю 20%, а при відкритті вхідних дверей увечері додавати до групи передпокій.
ESP32-радіо на KaRadio та yoRadio
Окремий клас пристроїв становлять саморобні інтернет-приймачі на ESP32. Плата з декодером VS1053 або I2S-ЦАП, дисплей і енкодер обходяться в кілька сотень гривень і перетворюють старі колонки на автономне радіо, яке грає навіть без смартфона поруч.
Прошивка yoRadio найкраще інтегрується з розумним домом. Для зв’язку з Home Assistant потрібна інтеграція MQTT і компонент yoradio, скопійований у custom_components; плейлист пристрою вміщує до 65535 станцій. Розробник також додав підтримку віддаленого відтворення з Home Assistant через Local Media, Radio Browser і TTS, тому приймач можна використовувати і для голосових оповіщень. Плейлист у форматі yoRadio з radioteka завантажується через веб-інтерфейс пристрою, і всі обрані станції одразу з’являються в меню приймача та в сутності Home Assistant.
KaRadio працює на ESP8266 і ESP32 і керується через HTTP-API та telnet. Готовий список станцій у форматі KaRadio з обраного на порталі radioteka імпортується через веб-сторінку пристрою. Цікаво, що yoRadio вміє імпортувати файл WebStations.txt від KaRadio, тож при переході з однієї прошивки на іншу список станцій зберігається.
Кнопки радіо на дашборді
Останній крок полягає в тому, щоб радіо вмикалося з панелі одним дотиком. Найгнучкіша схема складається зі скрипта зі словником станцій і карток-кнопок, які передають у скрипт назву станції та кімнату.
Скрипт у scripts.yaml:
radio_play:
alias: Увімкнути радіостанцію
mode: restart
fields:
station:
description: Назва станції
player:
description: Плеєр або група
variables:
stations:
"Українське радіо": "https://АДРЕСА-ПОТОКУ-1"
"Радіо Промінь": "https://АДРЕСА-ПОТОКУ-2"
"Радіо Культура": "https://АДРЕСА-ПОТОКУ-3"
"Хіт FM": "https://АДРЕСА-ПОТОКУ-4"
sequence:
- action: media_player.volume_set
target:
entity_id: "{{ player }}"
data:
volume_level: 0.25
- action: media_player.play_media
target:
entity_id: "{{ player }}"
data:
media_content_id: "{{ stations[station] }}"
media_content_type: music
Картка кнопки на дашборді:
type: button
name: Промінь на кухні
icon: mdi:radio
tap_action:
action: perform-action
perform_action: script.radio_play
data:
station: "Радіо Промінь"
player: media_player.kukhnia
Кілька таких кнопок, вкладених у картку grid з трьома колонками, утворюють компактний пульт на 6–9 станцій. Під ним розмістіть стандартну картку media-control для потрібного плеєра: вона покаже назву станції з ICY-метаданих потоку, регулятор гучності та кнопку зупинки. Для вибору кімнати додайте помічник input_select зі списком плеєрів і передавайте в скрипт player: "{{ states('input_select.radio_room') }}". Тоді одна кнопка станції відправлятиме звук туди, куди вказує перемикач кімнат, включно з групою «весь дім» з Music Assistant.
Для власників LinkPlay-пристроїв кнопки можна прив’язати безпосередньо до linkplay.play_preset, а для ESP32-приймачів на yoRadio до сутності, створеної MQTT-компонентом. Список станцій при цьому залишається єдиним: один плейлист з Обраного на radioteka, експортований у формат кожного пристрою.

