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.
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?
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
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.
For your privacy. You don’t want anything to be discovered in your network just #discovery:
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.
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"