Let Alexa speak

Is node-red-contrib-alexa-remote2 (and the forked -cakebaked) module the only one able to let Alexa speak (TTS)? I made a search and didn't find anything else, but I hope I am missing something.

Thanks for any suggestion.

There is a few nodes for alexa speech. You fail to mention why remote2 is no good. The speak at volume or speak has always worked for me. There is other ways like setting a routine up in the alexa app to speak a message or announcement and have node-red run the routine rather than nr making alexa speak directly. If you provide a bit moreinfo on what you need and why remote2 is not sufficient I can supply more info

Easy: remote2 is very buggy and instable and I am looking for another one. I need only TTS, not all the other specs, so I am looking for a simpler module.

I cannot confirm that, it has been working flawlessly for some months now.

Anyway, let's put alexa-remote2 aside for one moment and come back to the original question: is anybody aware of a simple TTS speak module for Alexa?

I don't think that you can get much simpler than remote 2. As for buggy I have to disagree. The routines does not work but every thing else is fine. If you getting errors it's more likely that you need to alter your flow. For example if you are getting the no json error then you have a problem of 2 instructions being passed on to alexa at the same time. A delay node will stop this.
Also using remote 2 you can use the custom option and use the function node for your tts. This way you bypass the speak at volume or speak tab with your own commands cutting out any chance of buggy behaviour.
If you let me know what you want to do with your flow and in what circumstances I can offer more advice.
In meantime have you looked at tasker or ifttt or maybe the smart devices recommended app

Above involves creating a skill but will do tts

I dont know a simpler version than remote2. I have some experience of vsh and amazon home nodes which dont offer tts in its own right but make alexa reply with its arbitrary responses for thermostat or lighting percentages. Unfortunately as there is not a straightforward answer I think more info is needed to either fix the remote2 "bugs" or find another work around

As I said, I am using just TTS on remote2-cakebaked, through the Routine node. And very often, it just doesn’t speak.
You said to avoid Routine. How?

I tried the custom option in the Routine node, but it is not speaking (even if the status display "success" and the module is initialized and ready):

[{"id":"fb1b83ae.bc736","type":"inject","z":"93b9b6f5.e51a08","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":390,"y":480,"wires":[["e9ed25d3.c8d578"]]},{"id":"f549d2d7.fb161","type":"debug","z":"93b9b6f5.e51a08","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":790,"y":540,"wires":[]},{"id":"49298d46.072e44","type":"alexa-remote-routine","z":"93b9b6f5.e51a08","name":"","account":"20ea8a91.5e49a6","routineNode":{"type":"custom","payload":{"type":"msg","value":"payload"}},"x":700,"y":480,"wires":[["f549d2d7.fb161"]]},{"id":"e9ed25d3.c8d578","type":"function","z":"93b9b6f5.e51a08","name":"","func":"a = { \n    type: 'speak', \n        payload: { \n            type: 'regular', \n            text: 'Hello!', \n            devices: ['Echo Dot di Fabio']\n        }\n}\nmsg.payload = a\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":480,"wires":[["49298d46.072e44"]]},{"id":"20ea8a91.5e49a6","type":"alexa-remote-account","name":"AlexaSalty","authMethod":"proxy","proxyOwnIp":"","proxyPort":"3456","cookieFile":"alexa.cookie","refreshInterval":"1","alexaServiceHost":"alexa.amazon.it","amazonPage":"amazon.it","acceptLanguage":"it-IT","userAgent":"","useWsMqtt":"on","autoInit":"on"}]

The debug window displays "null"

You need a function node with this in for the custom tts to work. I have alexa speak the payload. If you dont need that just edit accordingly. Also edit the device to your device name. The volume can be 0 to 100

msg.payload = { "type": "speakAtVolume",
"payload": { "type": "regular",
"text": "the bath water is " + msg.payload + " degrees",
"volume": 100,
"devices": "Bathroom input"
return msg;

[{"id":"d27e8ff2.3c35d","type":"function","z":"13131447.ed5dcc","name":"","func":"msg.payload = { \"type\": \"speakAtVolume\", \n \"payload\": { \"type\": \"regular\", \n \"text\": \"hello \" + msg.payload + \" complet\",\n \"volume\": 100, \n \"devices\": \"Echo Dot di Fabio\"\n }\n }\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":380,"y":120,"wires":[["49298d46.072e44"]]}]

Yes, it speaks. But I need to see if it is stable in time.

1 Like

I had the same problem with remote2 till I added the initialize node and trigger it every six hours. Now running stable for a month. Before that max 2 days

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.