Прошивка для прослушивания интернет радио на роутере. (WifiRadio.SU v84.Full)

Прошивка WifiRadio.SU Full с веб интерфейсом, для прослушивания интернет радио на роутерах с прошивкой Openwrt.

*На версиях Openwrt / Lede 17 и выше, возможно не будет работать поддержка формата AAC, либо совсем не работать (тогда ставьте версию Standard).

Возможности:

  1. Поддерживаемые потоки: MP3 (AAC, OGG — опционально при установке mpd-full*)
  2. Индикация проигрываемого трека: есть
  3. Функция Play/Stop: есть
  4. Веб интерфейс: настройки wifi, управление подписками, добавление своих станций, загрузка своих плейлистов, упрощенный пульт управления, управление громкостью, управление переключением станций, управление избранным, управление озвучкой, управление звуковым устройством, обновление прошивки.
  5. Время переключения между станциями: <1 сек.
  6. Поддержка приложения управлением с Android: есть
  7. При нажатии 15 сек. на кнопку WPS создается точка доступа WifiRadio с паролем 12345678, подключившись к ней, можно зайти в веб интерфейс по http://ip адрес/play/, который вы присвоили проводной сети.
История изменений

После обновления прошивки, в веб интерфейсе обязательно нужно обновить страницу клавишами CTRL+F5.

V84.Full (06.08.2019)

  • Добавлена возможность выбора голоса озвучки (муж/жен).
  • Исправлена проблема с отображением тэгов на некоторых станциях.
  • Обязательно нужно выбрать голос озвучки в веб интерфейсе, и сохранить параметры после прошивки!

V81.Full (12.05.2019)

  • Добавлено оповещение при начале и завершении обновления прошивки.

V80.Full (29.04.2019)

  • Небольшие косметические изменения в веб интерфейсе.

V79.Full (24.04.2019) Важное!

  • Небольшие исправления.

V78.Full (23.04.2019) Важное!

  • Исправлено периодическое неполное озвучивание информации при старте системы.
  • Оптимизация веб интерфейса.
  • Добавлена возможность своего голосового приветствия при запуске.

V76.Full (22.04.2019)

  • Небольшой фикс скрипта обновления прошивки.
  • Некоторые изменения в веб интерфейсе.

V71.Full (14.04.2019) Важное!

  • Небольшой фикс скрипта обновления прошивки.
  • Добавлено новое звуковое устройство в автоопределение.

V68.Full (07.04.2019) Важное!

  • Исправлено произношение времени.

V67.Full (05.04.2019) Важное!

  • Переключение станций стало практически моментальным.

V66.Full (04.04.2019) Важное!

  • Добавлена возможность произношения погоды и времени при старте. Включается в веб интерфейсе. Необходимо настроить часовой пояс в файле /etc/config/system, либо через веб интерфейс LUCI.
  • Мелкие исправления.

V64.Full (03.04.2019) Важное!

  • Теперь любые названия станций произносятся голосом. Внимание! Не используйте спецсимволы в названиях станций, для правильной работы озвучки ( ? \ / и т.п. ).

V62.Full (26.03.2019) Важное!

  • Добавлена возможность добавлять станции из базы данных в один клик (более 1300 станций).

V61.Full (19.03.2019) Важное!

  • Добавлена поддержка русских шрифтов в плейлист.
  • Уменьшено время переключения между станциями.

V60.Full (17.03.2019)

  • Ползунок громкости в веб интерфейсе и пульте для андроид (необходимо обновить приложение) теперь показывает текущую громкость при загрузке.

V58.Full (17.03.2019)

  • Мелкие исправления.

V57.Full (15.03.2019) Важное!

  • Изменен метод сжатия плейлистов и прошивки для обновления. Теперь обновления проходят намного быстрее.

V56.Full (12.03.2019) Важное!

  • Изменен сервер данных для стабильности.
  • Некоторая оптимизация.

V55.Full (11.03.2019)

  • Добавлено автоопределение названия звукового устройства. Если Ваше устройство не определяется, отпишитесь пожалуйста в комментариях.

V54.Full (27.02.2019) Важное!

  • Исправлена ошибка связанная с обновлением плейлиста с сервера.

V53.Full (25.02.2019) Важное!

  • Исправлена критическая ошибка. Обновляться через кнопку «Восстановление прошивки».

V52.Full (19.02.2019) Важное!

  • Оптимизирована структура работы с конфигурационным файлом.

V51.Full (13.02.2019)

  • Для AAC станций удалена загрузка обложек в веб интерфейсе, для совместимости всех трансляторов.
  • Небольшие правки в кодировке названия трека.
  • Исправлена функция подсчета трафика.

V50.Full (25.01.2019)

  • Улучшение стабильности.
  • Мелкие исправления.

V47.Full (09.01.2019)

  • Изменения для работы с новой версией управления для android.

V46.Full (08.01.2019)

  • Некоторые мелкие улучшения.

V45.Full (06.11.2018)

  • Оптимизация отображения логотипов станций.

V42.Full (03.11.2018)

  • Исправлен формат скачивания пользовательского плейлиста для последующей загрузки.

V41.Full (02.11.2018)

  • Обновление для новой версии пульта под Android.

V40.Full (01.11.2018) Важное!

  • Изменён принцип обновления прошивки.
  • Добавлены логотипы станций.
  • На данную версию лучше перейти через кнопку «Восстановление прошивки»

V37.Full (31.10.2018)

  • Мелкие исправления.

V36.Full (29.10.2018)

  • В веб интерфейс добавлена информация о трафике и времени работы.
  • Исправлена индикация % сигнала wifi соединения.
  • Добавлена функция создания wifi точки доступа, для настройки без компьютера. (При нажатии 15 сек. на кнопку WPS создается точка доступа WifiRadio с паролем 12345678, подключившись к ней, можно зайти в веб интерфейс по http://ip адрес/play/, который вы присвоили проводной сети.) *

При условии полной установки прошивки, либо замены файла /etc/config/system

Порядок установки прошивки на роутер.

Для установки нам понадобится:

  1. роутер прошитый на openwrt с веб интерфейсом LuCI
  2. имеющий usb порт
  3. имеющий ~4 мегабайта свободной flash памяти для установки всех компонентов (можно расширить память при помощи внешней флешки)
  4. также необходим usb звуковой адаптер или usb наушники

Для начала опишу настройку wifi в режиме клиента. После настройки радио будет видеться в Вашей основной сети и иметь доступ к интернет по wifi.

Рекомендуемые настройки сети
Редактируем следующие файлы:

/etc/config/wireless (добавляем в Ваш файл)

config wifi-iface
	option network 'wwan'
	option ssid '*********' #имя Вашей точки доступа WiFi
	option encryption 'psk2' #тип шифрования Вашей точки доступа
	option device 'radio0'
	option mode 'sta'
	option key '********' #пароль Вашей точки доступа

/etc/config/network (полностью заменяем Ваш файл, но параметр option ifname ‘eth0’ меняем на свой)

config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

config interface 'lan'
option ifname 'eth0'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option dns '8.8.8.8' 
option ipaddr '192.168.2.1' #ip адрес для Вашего роутера openwrt по кабелю (можно не менять)
option gateway '192.168.1.254' #ip адрес Вашего роутера openwrt в домашней подсети

config interface 'wwan'
option proto 'static'
option netmask '255.255.255.0'
option gateway '192.168.1.1' #ip адрес Вашего роутера или модема с интернетом
option dns '8.8.8.8'
option ipaddr '192.168.1.254' #ip адрес Вашего роутера openwrt в домашней подсети

/etc/config/firewall (полностью заменяем Ваш файл)

config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'

config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network ' '

config zone
option name 'wan'
option network 'wan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'

config forwarding
option src 'lan'
option dest 'wan'

config forwarding
option src 'wan'
option dest 'lan'

config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'

config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'

config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option src_ip 'fe80::/10'
option src_port '547'
option dest_ip 'fe80::/10'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'

config include
option path '/etc/firewall.user'

После редактирования этих файлов нужно перезагрузить роутер.

Далее устанавливаем саму прошивку.

Автоматический вариант установки через telnet или ssh (putty, xshell):

Если позволяет память, вместо mpd-mini нужно установить mpd-full, тогда появится поддержка AAC потоков. Инструкция по расширению памяти при помощи usb флешки по этой ссылке »

opkg update
opkg install curl mpd-mini mpc kmod-usb-core kmod-usb-audio kmod-sound-core alsa-utils kmod-usb-hid triggerhappy
wget -U "Mozilla/5.0" -O "/fw.tar.gz" "http://fw.wifiradio.su/download/wifiradio.su_full.tar.gz"
tar -xvzf "/fw.tar.gz" -C "/"
chmod -R 755 /www/cgi-bin/
chmod -R 755 /etc/wifiradio/
rm -r -f "/fw.tar.gz"
reboot

После выполнения этих команд роутер перезагрузится и заиграет радио.

Чтобы попасть в web интерфейс с настройками, необходимо в браузере открыть:

http://ip_адрес_роутера/play/

Через web интерфейс можно управлять следующими функциями:

  • Переключать станции
  • Управлять громкостью
  • Управлять избранным (для переключения usb клавиатурой или андроид приложением)
  • Загружать плейлисты
  • Добавлять и удалять станции
  • Управлять подпиской на плейлист
  • Управлять озвучкой станций
  • Настраивать звуковое устройство
  • Настраивать WiFi подключение
  • Обновлять прошивку через OTA

Управление аппаратной кнопкой WPS на роутере: (нажатие 0-1 сек.) переключение станций по кругу, долгое нажатие на кнопку (4-10 сек.) возвращает на первую станцию в списке.

*При использовании usb клавиатуры возможны несовпадения кодов событий, поэтому нужно будет подправить файл example.conf в папке triggerhappy/triggers.d

*Также возможно придется изменить название звукового устройства для управления громкостью. Сделать это можно через веб интерфейс.

Если возникнут вопросы, с радостью отвечу на них.

86 комментариев

  1. K0HCТАHTИH KyзьMин

    Здравствуйте. Очень заинтересовала идея сделать из роутера радио! Экспериментирую на Xiaomi MIR3G. Хочется иногда выключать (пауза или стоп). Когда можно ожидать рабочую версию full под openwrt 18.06…?

  2. oka676

    Добрый вечер. Подскажите, как правильно добавлять свою станцию? Нашел адрес потока https://online.krasnoyarskfm.ru/krasnoyarskfm_mp3. В браузере работает, в VLC работает. А при добавлении в web-морду показывает, что играет добавленная станция, а на самом деле играет следующая за ней станция.

  3. Александр Гапонов

    Здравствуйте. Можно поинтересоваться? После обновления прошивки (WifiRadio.SU v56.Full)
    Где должно отображаться определение звукового устройства? У меня ничего не отображается,
    как было на v.55 так и на этой, ничего нигде не найду. Использую роутер TL-WR842ND v.1.1
    а звуковое устройство USB звуковая карта с проводком, на нем ещё фильтр от помех.
    А в общем, всё работает превосходно. Спасибо!

    • Админ Автор

      Устройство определяется при старте роутера. Название сразу вносится в поле звукового устройства в конфиге и показывается в веб интерфейсе. У вас как ранее устройство называлось? Громкость регулируется?

  4. ZAZ-965

    День добрый, Админ.
    Чтобы заработало воспроизведение на OpenWrt17 (mpd-mini, mpd-full) и OpenWrt18 (mpd-full) в файле /etc/wifiradio/play.sh в предпоследней строке у playlist.m3u удалите расширение. В OpenWrt18 в пакете mpd-mini что-то сломали – пересобрал этот пакет с libmad вместо libmpg123 – MP3 HTTP потоки играет. Здесь https://megavolt-i.ru/threads/internet-radio-proekta-wifiradio.103/ немного «попрепарировал» ваш проект.
    И пару вопросов : зачем vsftpd (не нашел его упоминания в устанавливаемых скриптах), проект распространяется в zip файле – может попробовать перейти на tar.gz (встроенный, поддержка файловых атрибутов, а unzip лишних ~100 кБ). А в перспективе — родной ipk формат

  5. Админ Автор

    1. Озвучку своих станций пока добавить нельзя.
    2. При нажатии кнопки из базы данных должен передаваться Ваш ip для правильной работы. Какое используете устройство и версию openwrt?

      • Админ Автор

        Из базы тоже озвучки не будет. Только нумерация станций. Озвучка только для станций из подписки.

        В полях настройки Wifi поля заполнены в веб интерфейсе?

          • Админ Автор

            К сожалению бесплатных сервисов Text-to-Speech пока нет, а за платные платить нечем 🙂 Но возможно решение найдется со временем.

    • Админ Автор

      Нужно подправить файл example.conf в папке triggerhappy/triggers.d если сразу не работает. В этом файле есть команда для просмотра кодов клавиш, ну а дальше дело техники 🙂

  6. oka676

    Спасибо, помогло. Обновление было запущено из Android-приложения. Но что-то пошло не так сразу: обычно при начале обновления музыка замолкает, идет обновление прошивки и перезагружается. А в этот раз музыка продолжала играть, потом устройство перегрузилось и больше не заиграло с перечисленными выше симптомами. Подскажите, а голос озвучки менять произвольно нельзя — мужик как-то более четко говорил 😉

    • Админ Автор

      К сожалению нет, это разные голосовые движки. Возможно позже будет возможность выбора голоса, но это пока неточно. Приходится выбирать между скоростью переключения станций, и наворотами озвучки

  7. oka676

    Подскажите, Android приложение обновляется или нет. Уже давно стоит приложение версии 1, но в Google написано, что версия 1 и обновлено 26 марта 2019. Было бы здорово на сайте выкладывать актуальную APK (не у всех задались отношения с поисковым гигантом)

  8. Дмитрий С

    Добрый день.
    После обновления на 79 версию, цикличного озвучивания которое у меня было на 78 версии, нет. Теперь все просто замечательно. Огромное спасибо. Прошивка супер.

  9. Сергей Простак

    Как только активирую точку доступа WifiRadio, пропадает соединение с домашним Wifi, а в настройках config wifi-iface автоматом прописываются настройки точки доступа WifiRadio.
    Так и должно быть?

    • Админ Автор

      Точка Wifiradio активируется только для первоначальной настройки. Через неё можно войти в веб интерфейс и настроить подключение к вашей сети wifi.

  10. Сергей Белугин

    Добрый день!
    В последнее время все поля Web-интерфейса WiFi-радио (http://192.168.1.56/play/) содержат «Forbidden. You don’t have permission to access /cgi-bin/wr_liststation on this server.». Соответственно управление радио через Web не работает. Смена браузера ничего не даёт. При этом управление самим маршрутизатором через Web-интерфейс (http://192.168.1.56/cgi-bin/luci и т.д.) работает без проблем.
    Что посоветуете?

  11. NeLeGal

    вопрос автору. интересует возможность управления балансом или раздельной громкостью по каналам. это возможно на софтовом уровне?
    китайская звуковуха на PCM2704
    Simple mixer control ‘PCM’,0

  12. Dmitriy Romaschenko

    Доброе время суток всем любителям wi-fi radio от данного автора. Нужна помощь того кто разбирается в openwrt и линуксе.
    Решил себе в квартире на стадии ремонта вcтроить радио в санузлах. Потолочная акустика. Типа как в магазинах и кафе. Две зоны. Собрал на «коленках» на простом AT90S2313 (attiny2313) устройство. Что делает устройство… следит за двумя ранее установленными выключателями (220V), следит за двумя оптическими датчиками дверей. Управляет основным освещением в двух зонах и активирует программный таймер автоматического отключения освещения (10 и 30 минут). Домочадцы регулярно забывают выключать освещение, надоело… так же управляет светодиодным альтернативным освещением при открывании дверей, так же, со своими таймерами. и самое главное, зонально включает радио вместе с освещением. звук собран на миниатюрных усилителях D класса на база PAM8403. Чего хочу добиться и что пришло в голову. Использовать режим ночной тишины, если кому-то приспичит глубокой ночью воспользоваться сан узлом, чтоб не мешать музыкой спящим. Могу прикрутить к своему устройству часы реального времени, но корректировать время без дисплея без кнопок, будет проблематично. А усложнять не хотелось бы. В роутере имеем NTP клиент и планировщик заданий.Хотелось бы чтоб наступал режим тишины, скажем в полночь и до утра 7 часов. в нете нашел следующие примеры для openwrt
    перезагрузка роутера в 4 часа 30 минут
    30 4 * * * sleep 70 && touch /etc/banner && reboot
    проверил, работает, тоже полезная штука.

    или такое, не проверял….

    «Включение станции ЭхоМосквы в 08.00 с громкостью -30
    Код:
    00 08 * * * killall madplay && wait && wget -O — http://81.19.85.197/echo.mp3 | madplay —attenuate=-30 — -Q —no-tty-control &

    мне нужно только снижать громкость до минимума или до выбранного мной уровня в определенное время, и восстанавливать уровень в другое время
    не знаю как правильно реализовать с радио… мож подскажет кто?

  13. AnderPAN

    Добрый день. Интересует установка версии с поддержкой AAC потоков при установки mpd-full без расширения через USB FLASH, нужно больший объемом флеш памяти, не 64 Мбита, а допустим 128 Мбит хватит ли?!? Или нужно еще и оперативную память увеличивать к примеру 128 Мбайт или более. Какие требование минимальные к памятям у mpd-full. С паяльником дружу, могу для экспериментов помогать…

    • NeLeGal

      25Q128 (16mb) вполне достаточно
      Свободное место: 57% (7.09 MB)
      тут жеж главное не просто спайку (SPI-Flash) заменить, а еще дамп правильно подготовить
      лично я увеличивал и оперативную память на некоторых моделях, экспериментировал с увеличением тактовой частоты «камня», скорее любопытства ради…

Добавить комментарий