Can't get tts to work. (new user)

Yes I see. I have tried that (the “menu”) and this is what I get:

X                                *
D Office Speaker               Idle
2 min ago    Default Media Receiver

The * is the Gear Icon. When I click that I get:

<-  D Office speaker           SAVE
   Name
  __________________________

Which I have assumed is asking for a new Name for the speaker.

Please advise…

For the name you can give your speaker name. To test the tts is here

I see, but the dialog box titled “Bluetooth Speaker” and the input field titled “Text to speak” DOES NOT SHOW UP. Only the “Name Speaker” field I described.

Just the picture to show you. That picture default speaker name is bluetooth speaker.

So did you have tts in your configuration

tts:
  - platform: google
    cache: true
    cache_dir: /tmp/tts
    time_memory: 300

Yes, I have

# Text to speech
tts:
  - platform: google
    cache: true
    cache_dir: /tmp/tts

I am missing time_memory as the default is fine.

Since you have both google home mini as well. Can you test to check tts to google mini? Click on google mini on ha frontend to check if you can use tts.

The “D Office speaker” device IS the Google Home Mini. That is the device I am referring to from the beginning. I.e., there is no “both”. The Google Home Mini is named “D Office”. It is discovered as a media player speaker by HA.

I see. I thought it is chromecast audio. not the google home mini.

on HA side. Delete your old config also from entity_registry file. Put new one as follow;

http:
  base_url: http://ha-ipaddress:8123 <=== with ha port
  api_password: YOUR_PASSWORD

media_player:
  - platform: cast
    name: D Office Speaker <== once you put this, the entity_id of this media player will be media_player.d_office_speaker
    host: 192.168.1.10 <== put your google home mini ip address here.

discovery:

tts:
  - platform: google
    cache: true
    cache_dir: /tmp/tts
    time_memory: 300

Once you have put this Check your config from configuration menu and restart you HA with your google home mini turn on (connected to same network)

Once restart, Your new found media player also will be in known_devices.yaml file Change to match the name and also put the mac address of your google home mini.

In known_devices.yaml

00044bxxxxxx:  <== mac address of new device found
  hide_if_away: false
  mac: 00:04:4B:xx:xx:xx  <== put google mini mac address
  name: 00044bxxxxxx  <== give it a name
  picture:
  track: true
  vendor: 

On front end. You will see media player. You can test tts again follow the picture aboved.

Also in your router you have to port forward to 8123

Wow, that’s a lot of reconfig, especially since I have 5 Google Home devices and 6 other speaker devices. All of them have the same issue (by-the-way). None of them work with tts (2 chromecast audio, two shield tv’s). I actually suspect something more basis is wrong, but will let you know the results.

Is it a bug that HA does not configure them correctly in the first place?

I will set it up according to your instructions later tonight. Thanks so much for all your help!

If you config wrongly, it won’t work. So use the default config. HA knows google mini by entity_id, mac address and ip address. If you cannot fix ip address for you google mini then move away the host. HA will learn from entity_id for each devices instead.
So when you use media player component example

media_player:
  - platform: cast
    name: D Office Speaker <== once you put this, the entity_id of this media player will be media_player.d_office_speaker
    host: 192.168.1.10 <== put your google home mini ip address here.

  - platform: cast
    name: name2 <== once you put this, the entity_id of this media player will be media_player.name2
    host: 192.168.1.11 <== put your google home mini ip address here.

  - platform: cast
    name: name3 <== once you put this, the entity_id of this media player will be media_player.name3
    host: 192.168.1.12 <== put your google home mini ip address here.

in known_devices.yaml will be display by mac address of each devices.

I am saying I DID use the default config. I did nothing else but add caching to the tts entry. HA did the rest. Why doesn’t HA configure Google Home’s correctly on initial activation? Or not configure them at all?

Does everybody with a Google Home have to go through this to use HA with GHome and tts?

  1. If you put discovery: and enable device_tracker especially nmap tracker (local network). Any device connect to the same network will be discover and put in known_devices.yaml

  2. known_devices.yaml disocovered devices from mac address but not the name so you have to change it accrodingly. This is good to track family member and devices you want to track the status.

  3. For your privacy. You don’t want anything to be discovered in your network just #discovery:

  4. Even you don’t put any setting for cast component. But you have nmap tracker and discovery: All devices will be found in known_devices.yaml but of course not as media player.

If you put discovery: and enable device_tracker especially nmap tracker (local network). Any device connect to the same network will be discover and put in known_devices.yaml

My discovery: is not commented out.  I did not uncomment it.  It came uncommented.

known_devices.yaml disocovered devices from mac address but not the name so you have to change it accrodingly. This is good to track family member and devices you want to track the status.

There was/is no known_devices.yaml file in my config directory (I just discovered).
 Don't know why?

For your privacy. You don’t want anything to be discovered in your network just #discovery:

 My network is local and behind a firewall.

Even you don’t put any setting for cast component. But you have nmap tracker and discovery: All devices will be found in known_devices.yaml but of course not as media player.




No known_devices.yaml because you didn’t use nmap

devices discovery from nmap will be in known_devices.yaml

Before I pursue this approach further, I think I should resolve this earlier problem I encounter in a separate thread. I get the error message below immediately when HA is started and before any interactions with the frontend as follows:

"2018-05-09 01:56:37 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step
    result = coro.send(None)
  File "/opt/homeassistant/lib/python3.5/site-packages/homeassistant/components/cloud/__init__.py", line 221, in async_start
    success = yield from self._fetch_jwt_keyset()
  File "/opt/homeassistant/lib/python3.5/site-packages/homeassistant/components/cloud/__init__.py", line 270, in _fetch_jwt_keyset
    req = yield from session.get(url)
  File "/opt/homeassistant/lib/python3.5/site-packages/aiohttp/client.py", line 320, in _request
    traces=traces
  File "/opt/homeassistant/lib/python3.5/site-packages/aiohttp/connector.py", line 418, in connect
    traces=traces
  File "/opt/homeassistant/lib/python3.5/site-packages/aiohttp/connector.py", line 733, in _create_connection
    traces=traces
  File "/opt/homeassistant/lib/python3.5/site-packages/aiohttp/connector.py", line 838, in _create_direct_connection
    req=req, client_error=client_error)
  File "/opt/homeassistant/lib/python3.5/site-packages/aiohttp/connector.py", line 797, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)
  File "/usr/lib/python3.5/asyncio/base_events.py", line 731, in create_connection
    infos = f1.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/python3.5/socket.py", line 733, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
TypeError: getaddrinfo() argument 1 must be string or None"

If you just recently add the HA cloud. Then check your cloud configuration.