Radio Content Player

Alexa Echo Dot of een Google Nest Mini kan diverse content afspelen, variërend van muziek van muziekdiensten zoals TuneIn, Amazon Music, etc. tot TTS meldingen of zelfs audio-bestanden.

Via input_select helpers kan een keuze gemaakt worden voor het af te spelen station, met een input_select voor de speaker en met een input_number voor het volume. Vervolgens wordt een script gebruikt om de radio te spelen.

De input_number radio_volume dient via ‘Helpers’ aangemaakt te worden. Deze wordt later gebruikt om het volume voor de speaker te zetten. De naam dient ‘radio_volume‘ te zijn. Gebruik de volgende gegevens:

De input_selects kunnen in de configuration.yaml geplaatst worden of in een bestand waarnaar wordt verwezen via ‘!include’. Gebruik de namen ‘radio_source‘ en ‘radio_speaker‘ . Een voorbeeldbestand ‘input-select.yaml‘:

radio_source:
  name: "Select station:"
  options:
    - Radio 538
    - Sublime
    - Sublime Smooth
    - Radio 10
    - Q-Music
    - 3FM
    - Veronica
    - Sky Radio
    - Arrow Classic Rock
    - BSJ
    - Tijd
    - Weer
    - Nieuws
    - Goodnight
  initial: Sublime
  icon: mdi:radio

radio_speaker:
  name: "Select speaker:"
  options:
    - Huiskamer
    - Keuken
    - Kantoor Nico
    - Boven
  initial: Keuken
  icon: mdi:speaker-wireless

Een script in scripts.yaml geeft duidelijkheid hoe de helpers gebruikt gaan worden.

Deze is voor Alexa Echo speakers:

alexa_content_player:
    alias: Start Playing
    icon: mdi:play
    sequence:
      - service: media_player.volume_set
        data_template:
          entity_id: >
            {% if is_state("input_select.radio_speaker", "Huiskamer") %} media_player.woonkamer
            {% elif is_state("input_select.radio_speaker", "Keuken") %} media_player.keuken
            {% elif is_state("input_select.radio_speaker", "Kantoor Nico") %} media_player.kantoor
            {% elif is_state("input_select.radio_speaker", "Boven") %} media_player.boven
            {% endif %}
          volume_level: '{{ states("input_number.radio_volume") }}'
      - service: media_player.play_media
        data_template:
          entity_id: >
            {% if is_state("input_select.radio_speaker", "Huiskamer") %} media_player.woonkamer
            {% elif is_state("input_select.radio_speaker", "Keuken") %} media_player.keuken
            {% elif is_state("input_select.radio_speaker", "Kantoor Nico") %} media_player.kantoor
            {% elif is_state("input_select.radio_speaker", "Boven") %} media_player.boven
            {% endif %}
          media_content_id: >
            {% if is_state("input_select.radio_source", "Radio 538") %} Play Station Radio 538 from TuneIn
            {% elif is_state("input_select.radio_source", "Sublime") %} Play Station Sublime from TuneIn
            {% elif is_state("input_select.radio_source", "Radio 10") %} Play Station Radio 10 from TuneIn
            {% elif is_state("input_select.radio_source", "Q-Music") %} Play Station QMusic from TuneIn
            {% elif is_state("input_select.radio_source", "3FM") %} Play Station 3FM from TuneIn
            {% elif is_state("input_select.radio_source", "Veronica") %} Play Station Veronica from TuneIn
            {% elif is_state("input_select.radio_source", "Sky Radio") %} Play Station Skyradio from TuneIn
            {% elif is_state("input_select.radio_source", "Arrow Classic Rock") %} Play Station Arrow Classic Rock from TuneIn
            {% endif %}
          media_content_type: 'custom'

en deze is voor Google Mini speakers:

radio_content_player:
    alias: Start Playing
    icon: mdi:play
    sequence:
      - service: media_player.volume_set
        data_template:
          entity_id: >
            {% if is_state("input_select.radio_speaker", "Huiskamer") %} media_player.woonkamer
            {% elif is_state("input_select.radio_speaker", "Keuken") %} media_player.keuken
            {% elif is_state("input_select.radio_speaker", "Kantoor Nico") %} media_player.kantoor
            {% elif is_state("input_select.radio_speaker", "Boven") %} media_player.boven
            {% endif %}
          volume_level: '{{ states("input_number.radio_volume") }}'
      - service: media_player.play_media
        data_template:
          entity_id: >
            {% if is_state("input_select.radio_speaker", "Huiskamer") %} media_player.woonkamer
            {% elif is_state("input_select.radio_speaker", "Keuken") %} media_player.keuken
            {% elif is_state("input_select.radio_speaker", "Kantoor Nico") %} media_player.kantoor
            {% elif is_state("input_select.radio_speaker", "Boven") %} media_player.boven
            {% endif %}
          media_content_id: >
            {% if is_state("input_select.radio_source", "Radio 538") %} http://playerservices.streamtheworld.com/api/livestream-redirect/RADIO538
            {% elif is_state("input_select.radio_source","Sublime") %} https://playerservices.streamtheworld.com/api/livestream-redirect/SUBLIME.mp3
            {% elif is_state("input_select.radio_source","Radio 10") %} http://stream.radio10.nl/radio10
            {% elif is_state("input_select.radio_source","Q-Music") %} https://stream.qmusic.nl/qmusic/mp3
            {% elif is_state("input_select.radio_source","3FM") %} https://icecast.omroep.nl/3fm-sb-mp3
            {% elif is_state("input_select.radio_source","Veronica") %} http://playerservices.streamtheworld.com/api/livestream-redirect/VERONICA.mp3
            {% elif is_state("input_select.radio_source","Sky Radio") %} http://playerservices.streamtheworld.com/api/livestream-redirect/SKYRADIO.mp3
            {% elif is_state("input_select.radio_source","Arrow Classic Rock") %} https://stream.gal.io/arrow
            {% elif is_state("input_select.radio_source","Sublime Smooth") %} https://stream.gal.io/arrow
            {% endif %}
          media_content_type: 'music'

Via Instellingen -> Serverbeheer kunnen de input_number, input_select en het script geladen worden, of start Home Assistant opnieuw op.

De entiteiten kunnen daarna in een Dashboard entities card geplaatst worden.

Gebruik ‘script.radio_content_player‘ voor de Google Mini en ‘script.alexa_content_player‘ voor de Alexa Echo speaker. Bijvoorbeeld:

en hierna kan de Radio Content Player gebruikt worden.