• 1 Post
  • 2 Comments
Joined 29 days ago
cake
Cake day: June 3rd, 2024

help-circle
  • Thanks for the help, @JustEnoughDucks@feddit.nl.

    I copied the yaml you suggested and made 2 changes:

    I changed the i2s_dout_pin from GPIO22 to GPIO21:

    speaker:
      - platform: i2s_audio
        id: echo_speaker
        i2s_dout_pin: GPIO21
        dac_type: external
        mode: mono
    

    …and added my on_tts_end with the media_player:

      on_tts_end:
        - homeassistant.service:
            service: media_player.play_media
            data:
              entity_id: media_player.${media_player}
              media_content_id: !lambda 'return x;'
              media_content_type: music
              announce: "false"
    

    This did compile and the audio output from the echo is played on the media_player, but the audio is also played on the Echo itself. Previously, changing the i2s_dout_pin from GPIO22 to GPIO21 prevented the Echo from playing the audio (I think by directing audio data to pin 21, which is not used).

    I’m not sure what you meant here:

    Media player is also a speaker using an arduino library (not compatible with esp_adf as that uses the esp-idf framework and not arduino). If you want to use the media player, you have to get rid of vad_threshold and the esp_adf.
    

    I tried removing “vad_threshold: 3” and the “esp_adf” component:

    external_components:
      - source: github://pr#5230
        components:
        refresh: 0s
      - source: github://jesserockz/esphome-components
        components: [file]
        refresh: 0s
    

    …but with the same result: audio plays on both the media_player and the Echo’s speaker.

    Instead of trying to prevent the audio from getting to the Echo’s speaker, is there a way to just turn the Echo’s speaker volume to zero?