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
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ł.
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
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
Ogólnie dużo zmian w otrzymywanym info od radia, oprócz loga jeśli stacja nadaje będzie wyświetlane zdjęcie albumu:
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
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.