Nabu Casa cloud TTS on speaker attached to HA machine

So I finally managed the home message announcing thing as I want it.

As I needed to search for hours for little chunks of info everywhere, I want to share with you now all the steps I’ve made to get it working.

I’m not exactly sure, if this will work fine on a RPi, this is tested on a x64 architecture with an Intel chip-set.

1. The wish

So, what I wanted is to play a chime and read a message in my language, when something happens, like some door opens.
This has to be done on the machine, where HA is running.

2. Hardware needed

Device, which will play the sound with a 3’5mm jack-plug.
Could be a set of PC speakers or like I did, a DIY Amplifier from Aliexpress and a passive speaker.

3. Software

I did this on Home Assistant 2021.11.3 supervised on Debian 11 Bullseye.
No additional external downloads were made, all needed stuff is inside HA already.
A Nabu Casa Subscription is needed. It will work without also, with a different cloud TTS service, like Google_say or Google_translate, but I preferred Nabu Casa Cloud say, as it is already enabled, when you are subscribed.

Installation:

  1. Plug the sound playing device in to the 3,5mm headphone output of your HA machine

  2. Go to Supervisor → Add On store and install VLC

  3. Go to Configuration → Integrations and install VLC media player Telnet

  4. Go to Configuration → Home Assistant Cloud and under Text to Speach select your language and preffered voice

  5. Edit your configuration.yaml file with adding the following:

notify:
  - platform: tts
    name: VLCtelnetHA #This name you can choose yourself
    tts_service: tts.cloud_say
    media_player: media_player.vlc_telnet
  1. Go to Configuration → Server maintenance and validate your config. If it validates, go to point 7. If not, have fun seeking your fault.

  2. Restart Home assistant

  3. Find your favorite chime sound as an mp3 file and copy it into /config/www/ It will look like this: /config/www/dingdong.mp3

  4. Create your automation like this example:

alias: door open
description: ''
trigger:
  - platform: state
    entity_id: remote.sonoff_1000cdcc13
    attribute: ts
condition:
  - condition: state
    entity_id: remote.sonoff_1000cdcc13
    state: door open
    attribute: name
action:
  - service: media_player.play_media
    target:
      entity_id: media_player.vlc_telnet
    data:
      media_content_id: http://XXX.XXX.XXX.XX:8123/local/dingdong.mp3 #Of course this is the IP of your own machine!
      media_content_type: music
  - delay: '00:00:04' #This delay has to be a second longer, than your mp3 file is other ways dingdong will not get played! 
  - service: notify.vlctelnetha #This is the name you gave the service in configuration.yaml
    data:
      message: Someone entered the room. I have seen it, I swear
mode: single
  1. You are done! :slight_smile:

Optional Lovelace card where you can type messages to be read

For this you will need the HACS store!

  1. Go to HACS store → Frontend and install Notify card

  2. Reload the page! This is necessary.

  3. Create a new card on your lovelace

type: custom:notify-card
target: VLCtelnetHA #This is the name you gave the service in configuration.yaml
title: Send Notification
label: Notify Speaker # your own text here
  1. You are done. You can send text to TTS from a card. :slight_smile:
2 Likes