Streaming radio on Hassio

Quick one ! does it work with hassio?

yep. Its the main thing I use for music at home and I’m on Hassio

here is my setup:

create chromecast_radio.yaml in packages folder and put this in it-

group:
  radio:
    name: Radio
    entities:
    - input_select.radio_station
    - input_select.chromecast_radio
    - script.radio
    - input_number.volume_radio

input_select:
  radio_station:
    name: 'Select Radio Station:'
    options:
      - Hit 92-9
      - Nova 93-7
      - Mix 94-5
      - 96FM
      - 80's
      - OldSkool Hits
      - Raw FM (dance)
      - 181FM Power (Todays Hits)
      - 181FM 90's Dance
      - 181FM Star 90's
      - 181FM The Breeze
      - Heat Radio (RnB)
      - Fresh 92-7
      - DI Chill & Tropical House
      - DI Disco House
      - DI Funky House
      - DI Liquid D&B
    initial: Raw FM (dance)
    icon: mdi:radio
    
  chromecast_radio:
    name: 'Select Speakers:'
    options:
      - Lounge
      - Bedroom
      - House
    initial: Lounge
    icon: mdi:speaker-wireless

input_number: 
  volume_radio:
    name: Volume
    icon: mdi:volume-high
    min: 0
    max: 1
    step: 0.05

automation:
  - alias: Listen Radio
    hide_entity: True
    trigger:
      - platform: state
        entity_id: input_select.radio_station
    action: 
      - service: script.radio
  - alias: Set Chromecast Radio Volume
    trigger:
      platform: state
      entity_id: input_number.volume_radio
    action:
      service: media_player.volume_set
      data_template:
        entity_id: >
          {% if is_state("input_select.chromecast_radio", "Lounge") %} media_player.lounge_speakers
          {% elif is_state("input_select.chromecast_radio", "Bedroom") %} media_player.bedroom
          {% elif is_state("input_select.chromecast_radio", "House") %} media_player.house
          {% endif %}
        volume_level: '{{  states.input_number.volume_radio.state  }}'

script:
  radio:
    alias: Play Radio on Chromecast Audio
    sequence:
    - service: media_player.volume_set
      data_template:
        entity_id: >
          {% if is_state("input_select.chromecast_radio", "Lounge") %} media_player.lounge_speakers
          {% elif is_state("input_select.chromecast_radio", "Bedroom") %} media_player.bedroom
          {% elif is_state("input_select.chromecast_radio", "House") %} media_player.house
          {% endif %}
        volume_level: '{{  states.input_number.volume_radio.state  }}' 
    - service: media_player.play_media
      data_template:
        entity_id: >
          {% if is_state("input_select.chromecast_radio", "Lounge") %} media_player.lounge_speakers
          {% elif is_state("input_select.chromecast_radio", "Bedroom") %} media_player.bedroom
          {% elif is_state("input_select.chromecast_radio", "House") %} media_player.house
          {% endif %}
        media_content_id: >
          {% if is_state("input_select.radio_station", "Hit 92-9") %} http://sc01.scahw.com.au/6ppm_32
          {% elif is_state("input_select.radio_station", "Nova 93-7") %} http://streaming.novaentertainment.com.au/nova937
          {% elif is_state("input_select.radio_station", "Mix 94-5") %} http://sc01.scahw.com.au/6mix_32
          {% elif is_state("input_select.radio_station", "96FM") %} https://icy.ihrcast.arn.com.au/au_012_icy
          {% elif is_state("input_select.radio_station", "80's") %} http://streaming.the80s.com.au/;stream/1
          {% elif is_state("input_select.radio_station", "OldSkool Hits") %} http://sc01.scahw.com.au/loveland_32
          {% elif is_state("input_select.radio_station", "Raw FM (dance)") %} http://stream.rawfm.com.au:8000/;stream.nsv
          {% elif is_state("input_select.radio_station", "181FM Power (Todays Hits)") %} http://listen.181fm.com/181-power_128k.mp3?
          {% elif is_state("input_select.radio_station", "181FM 90's Dance") %} http://listen.181fm.com/181-90sdance_128k.mp3
          {% elif is_state("input_select.radio_station", "181FM Star 90's") %} http://listen.181fm.com/181-star90s_128k.mp3
          {% elif is_state("input_select.radio_station", "181FM The Breeze") %} http://listen.181fm.com/181-breeze_128k.mp3
          {% elif is_state("input_select.radio_station", "Heat Radio (RnB)") %} http://174.37.159.206:8106/stream
          {% elif is_state("input_select.radio_station", "Fresh 92-7") %} http://live.fresh927.com.au/freshmp3
          {% elif is_state("input_select.radio_station", "DI Chill & Tropical House") %} http://pub1.diforfree.org:8000/di_chillntropicalhouse_hi
          {% elif is_state("input_select.radio_station", "DI Disco House") %} http://pub1.diforfree.org:8000/di_discohouse_hi
          {% elif is_state("input_select.radio_station", "DI Funky House") %} http://pub1.diforfree.org:8000/di_funkyhouse_hi
          {% elif is_state("input_select.radio_station", "DI Liquid D&B") %} http://pub1.diforfree.org:8000/di_liquiddnb_hi
          {% endif %}
        media_content_type: 'audio/mp4'
3 Likes

I did checkconfig and it was valid. I then ran the script by pressing ‘start playing’ execute but nothing happened. Only the volume changed.

check you stream links. Sometimes even the links I have will fail from time to time and I have to stream a different station. Or check log for errors

I got this from the log: Error executing service <ServiceCall media_player.play_media: entity_id=[‘media_player.onkyo_receiver’], media_content_id=, media_content_type=audio/mp4>

I’m not quite sure how to help with that… have you tried multiple streams? perhaps its just the stream you are trying that has a problem…?

Are you using the code from my example above or from the original thread?

I used the one from your example. I am just gonna try and work on it tonight and see what happens.

what should the receiver be set to in order to hear? I probably got it set incorrectly.

not sure as I don’t have one but I would expect it to auto switch to the correct input. My TV automatically switches over from whatever is showing if I send something to it, even switching itself on if its currently off

It’s just not working out for me. I am now following your example and got rid of all that I had. I did not have a package folder so I created one inside my Config folder. I then created a chromecast_radio.yaml file and place that in the package folder. Now I am not sure what to do from here on. Forgive me I am kind a new to this.

you need to have the correct code in your config.yaml to tell HA to look for packages. here is my example:

configuration.yaml

homeassistant:
  name: Home # Name of the location where Home Assistant is running
  latitude: !secret latitude #Location required to calculate the time the sun rises and sets
  longitude: !secret longitude
  elevation: 16 #altitude above sea level in meters
  unit_system: metric
  time_zone: Australia/Perth # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  
  customize: !include customize.yaml # Customization file
  
  packages: !include_dir_named packages # package setup

NOTE: it needs to go under the homeassistant: label, indented by 2 spaces.

Ok I realize that packages is only an easier way to store files and not to clog up my ha. I am getting duplicate files when I use packages so I am placing the files as I normally do.

that wont work with my code above. put it in packages and nowhere else. ie: remove the duplicates from elsewhere. Its not quite the same as simply having the files elsewhere. Using packages allows for multiple entities of things such as customize: and homeassistant: whereas you cant do that in your normal yaml files.

ok got it.

What packages folder are you talking about?

If you don’t have ‘packages’ yet you will need to create it.

Hi
when i try run it i get :

not a valid value for dictionary value @ data['entity_id']

you have maybe an idea why?

Have you changed all of my entity_id's to ones that you have in your config?

Hi, when I tried this config I have in log:

voluptuous.error.MultipleInvalid: value must be at most 1 for dictionary value @ data['volume_level']

Have you any idea?

And second question. How can I add “stop radio” button for stop playing radio?

Thanks