HA, Node Red, Rpi, Sonos - How to get access NABU CASA TTS configured in HA for use in Node Red?

I’ve been using the Ned Red TTS-ultimate node to do TTS to my Sonos.

I have signed up for NABU CASA and I for the life of me cannot find out how to set up it’s TTS feature. Are there instructions somewhere that I am missing in my searches or I may be looking for the wrong thing (I was able to get it to work in the NABU CASA TTS test window).

I tried setting it up in a TTS-ultimate node but I’m getting:

"ttsultimate: node id: 0ad381b6553ce9af Error Downloading TTS: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1. THE TTS SERVICE MAY BE DOWN.".

I’ve also tried the Calls Service node with tts.cloud_say but without examples I’m just stumbling.

What am I missing to enable NABU CASA TTS to Sones?


Did you note the language setting format that is something like fi-FI (for finnish).

1 Like

Thanks for this! So I got this working:

But now what? Do I create one of these for each phrase or can I pass text to it to speak?

I’m still new to HA and haven’t gotten into YAML…I’ve been using node red. I’ve not had any luck using the call service node yet. How can I send text to a node?

Much appreciated.

You can still use node Red, there is no problem to it.

Use service call node, configure everything in the node except the text. Then pass that in the flow as an input to service node. I can try to make an example tomorrow.

In HA own automation most Basic example is to have that service call in each automation where you need tts.

Yes is you could provide example it would be very appreciated.

I spent a few hours today trying a bunch of things and it still just gives errors.

I’m new to this and I’ve only been successful using the tts-ultimate node. It speaks the text fine but it gives many errors and the voices are not as good as the cloud voices. This is my first time using the call service node for tts.


“I can try to make an example tomorrow”… have you had a chance to make an example? Much appreciated.

Sorry I had completely forgotten this.
Try this

[{"id":"9093615b51e10663","type":"function","z":"d5acbe881216232c","name":"variable set","func":"msg.payload = {};\nmsg.payload.my_message = {};\nmsg.payload.my_message = \"Example only. Customize to your own needs. Alternatively you can pass the whole data as JSON to service call node.\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":1780,"wires":[["0e44e4b193eb39a0"]]},{"id":"e71cfee070c056b3","type":"inject","z":"d5acbe881216232c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":1780,"wires":[["9093615b51e10663"]]},{"id":"0e44e4b193eb39a0","type":"api-call-service","z":"d5acbe881216232c","name":"","server":"f81417ca.9eb228","version":5,"debugenabled":false,"domain":"tts","service":"cloud_say","areaId":[],"deviceId":[],"entityId":["media_player.ylakerta"],"data":"{\"message\":payload.my_message,\"language\":\"en-US\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":510,"y":1780,"wires":[[]]},{"id":"f81417ca.9eb228","type":"server","name":"Home Assistant","addon":true}]

Ole hyvä :slight_smile: