Stworzyłem nową integrację do radia internetowego korzystającego z aplikacji AirMusic.
https://github.com/DominikWrobel/airmusic
Przetestowane radia:
Oakcastle IR100
Majority Pembroke
Ferguson i300
Powinno działać z:
Dabman i450
Lenco DIR150BK
Majority Kings Internet DAB+ Radio
Conrad’s renkforce IR 1
Kruger&Matz KM0816
Sharp DR-I470
lub każdym innym radiem używającym apki AirMusic na android lub iOS.
Zapraszam do testowania i proszę o cierpliwość bo to moje pierwsze próby z pythonem i ogólnie kodowaniem ![:rofl: :rofl:](https://forum.arturhome.pl/images/emoji/google/rofl.png?v=12)
Wersja 1.2!
Co działa:
- Informacja o stanie urządzenia, wył, wł, bufforowanie itd.
- Odczyt ulubionych stacji internetowych i ich wybór.
- Informacja o nadawanym programie i audycji.
- Regulacja głośności, wyciszenia
- Zmiana stacji radiowych
- Działa z radiami z szyfrowaną komunikacją oraz z wieloma odbiornikami
- Podczas ustawiania integracji radio otrzyma komendę INIT
- Loga stacji i albumy są wyświetlane w karcie
- Unique ID dla każdego radia
- Ustawienie integracji poprzez interfejs graficzny
z mapowany do następna ulubiona stacja
Znane ograniczenia:
- Działa poprawnie tylko w trybie radia internetowego.
- Informacje o audycji oraz grafiki z logo i albumem mogą się pojawiać z opóźnieniem do 10s. Limit odpytywania radia został wprowadzony aby odbiornik radiowy się nie zawiesił.
![1](https://forum.arturhome.pl/uploads/default/original/3X/c/d/cdde5d58c7f78a074ba35927dbbaf7138d6e222b.png)
![album](https://forum.arturhome.pl/uploads/default/original/3X/3/9/3925fb53e46d8a0ddf43ba77d45fa6b3bad99782.png)
Jeśli chcesz mnie wesprzeć kup mi kawę:
2 polubienia
Jedna uwaga - myślę, że powinieneś mieć na repo plik hacs.json
a nie hacks.json
(choć być może jest to bez wpływu na działanie)
W instrukcji ręcznej instalacji nie powinno być enigma
(to na 100%, bo nie daj boże ktoś ma zainstalowaną enigmę to sobie ją rozwali), czyli drzewko powinno być takie
custom_components
├── airmusic
│ ├── __init__.py
│ ├── media_player.py
│ ├── manifest.json
│ └── airmusicapi.py
1 polubienie
Dzięki wielkie, już poprawione, tak byłem zajęty kodem że te rzeczy przeoczyłem.
Edycja:
Ogólnie to mam jeden problem z tą integracją, przez który chyba osiwieję (bardziej
) mam dwa radia które korzystają z tej integracji, oba mają logo aktualnie odbieranej stacji pod adresem http://IP:8080/playlogo.jpg, ale jedno radio ma szyfrowaną transmisję, a drugie nie, no i chcę aby to logo się wyświetlało i aktualizowało przy zmianie stacji w HA, więc z takim kodem:
if reference == '6':
response = await self.hass.async_add_executor_job(
requests.get,
'http://' + self._host + ':' + str(self._port) + '/playlogo.jpg',
{'auth': HTTPBasicAuth('su3g4go6sk7', 'ji39454xu/^')}
)
self._image_url = response.url
else:
self._image_url = None
Logo się wyświetla i aktualizuje ale tylko dla radia bez auth!
A z takim kodem:
if reference == '6':
response = await self.hass.async_add_executor_job(
requests.get,
'http://su3g4go6sk7:ji39454xu%2F%5E@' + self._host + ':' + str(self._port) + '/playlogo.jpg'
)
self._image_url = response.url
else:
self._image_url = None
Logo się wyświetla w obu odbiornikach, ale się nie aktualizuje przy zmianie stacji Ma ktoś jakieś pomysły?
Hello ![:slightly_smiling_face: :slightly_smiling_face:](https://forum.arturhome.pl/images/emoji/google/slightly_smiling_face.png?v=12)
Thank you for sharing the link to your new integration for internet radio using the AirMusic application! It looks like a fantastic initiative; especially since you’ve tested it with Oakcastle IR100 and Majority Pembroke radios.
I am excited to see that it should also work with several other models like Dabman i450 and Sharp DR-I470.
Thank you
2 polubienia
Wersja 0.4 już dostępna:
- działają loga stacji radiowych!
- trochę porządków w kodzie
- ta integracja działa tylko jeśli radio jest trybie radia internetowego.
Wersja 0.4a dostępna:
- radia mają unique_id w Home Assistant
Jest już wersja 0.9 ![:rofl: :rofl:](https://forum.arturhome.pl/images/emoji/google/rofl.png?v=12)
Ogólnie dużo zmian w otrzymywanym info od radia, oprócz loga jeśli stacja nadaje będzie wyświetlane zdjęcie albumu:
![album](https://forum.arturhome.pl/uploads/default/original/3X/3/9/3925fb53e46d8a0ddf43ba77d45fa6b3bad99782.png)
Ogólnie całość powinna działać znacznie stabilniej, ograniczyłem liczbę zapytań do radia aby go nie zawiesić, przy czym podczas testów nie zauważyłem aby spowolniło reakcję na zmiany w HA. Do wersji 1.0 brakuje chyba tylko config_flow.
V1.0 wydana, dodawanie radia poprzez system i urządzenia i usługi!
v1.6 już jest, poprzez media_browser i radio browser można słuchać stacji z całego świata bez konieczności wyszukiwania ich w radiu lub apce!
v1.7 możliwość przesyłania lokalnych plików mp3 przez DLNA server do radia, powinno też działać z Music Assistant! Te funkcje są w fazie eksperymentalnej.
2 polubienia
Dodaj nową ulubioną stację:
Dodaj skrypt, nową linię shell_command i pomocników aby łatwo i szybko dodać nową stację radiową do listy ulubionych!
Utwórz trzy pomocniki:
- input_select nazwane Radio IP i dodaj IP swoich odbiorników (jeśli masz jedno radio Airmusic można pominąć)
- imput_text nazwane Station Name
- input_text nazwane Station URL
Dodaj nowe shell_command do configuration.yaml:
shell_command:
add_radio_station: >
curl -H 'Authorization: Basic c3UzZzRnbzZzazc6amkzOTQ1NHh1L14='
'http://{{ states("input_select.radio_ip") }}/AddRadioStation?name={{ states("input_text.station_name") | urlencode }}&url={{ states("input_text.station_url") | urlencode }}'
Jeśli masz jedno radio to zamień to {{ states(“input_select.radio_ip”) }} na IP radia.
Dodaj nowy skrypt i wklej to:
alias: Add new station
sequence:
- service: shell_command.add_radio_station
data: {}
- service: persistent_notification.create
data:
title: Radio Station Added
message: >
Added station "{{ states("input_text.station_name") }}" with URL "{{
states("input_text.station_url") }}" to radio at {{
states("input_select.radio_ip") }}
description: ""
icon: mdi:radio
Restart Home Assistanta. Potem dodaj to do dashboardu. Jeśli masz jedno radio pomiń część z input_select
type: entities
entities:
- entity: input_select.radio_ip
- entity: input_text.station_name
- entity: input_text.station_url
- entity: script.add_new_station
![nowa](https://github.com/user-attachments/assets/fd77fc73-7c77-4e99-ac02-31129cb4109c)
Wypełnij wszystkie pola, naciśnij uruchom i dostaniesz powiadomienie że nowa stacja została dodana. Aby pojawiła się w polu wyboru w karcie media_player musisz załadować ponownie integracje Airmusic.