[Deprecated] Amazon Alexa Text to Speech (TTS) v0.6.2 - Direct Integration (USA, Canada, UK, Italy, Australia, & Brazil)

You can do queing yourself in the rule . Just do separate voice actions to each Alexa with a delay action between each in rule machine. I generally do either a single or the all action.

In addition, you could even include the daughters lesson zone but have an additional motion check to decide to use that one or not.

1 Like

Thanks for such a great driver! Brilliant!

I noticed if I tried to put a special character on the 'text to speak' such as ampersand symbol; my echo dot will say "sorry, I'm having trouble accessing you simon says nice skills right now".

Perhaps a good idea to warn people not to use special character there?

just my 2 cents

1 Like

Need suggestion(s). To refresh Alexa cookie with AlexaCookieNodeJs, I have setup node in Raspberry Pi with crontab for pm2 restart AlexaCookie. In past I did not have issue. But after replacing my Raspberry Pi and reinstalling all three weeks before, I am facing issue with cookie refreshing. Today I got following message while trying to access at http://192.168.0.102:1081

I waited more than 10 minutes. Nothing happen. Than followed manual cookie updating through alexa.amazon.com and it was successfully.

Any suggestion on troubleshooting? Thanks

HI, the only amazon alexa device I have in my house is an Ecobee thermostat that is an alexa speaker. I have installed this app but it doesn't show the ecobee as a device, it just shows "All Echos". Does anybody know why that might be? Looking at my device list in the Alexa app on my phone, I see that it has a section for sounds and it is listed under Echos and Alexa.

Has anyone else tried to get this app to talk through an Ecobee?

Thanks

If you select the "All Echos" device, can you use that child device to send TTS to your Ecobee Thermostat?

I did try that and got silence.
I did make sure that alexa could send sound to it. I said "Alexa, play music on ecobee" (ecobee is the name of the device) and it started playing CCR.
But when i try to send a text string to it on the devices page nothing happens.

In an Alexa Routine in the Alexa App on your mobile phone, can you make it speak a message?

1 Like

I don't know how to do that, but I will look it up and give it a try.

Yup, that worked. I was able to create a route in my iOS app and target the ecobee device and I sent it a customized text string.

I wonder if the list of devices that get returned has the ecobee as a type that you filter out? I will browse through your code....

2 Likes
  1. Open a Hubitat live log page.
  2. Send a TTS message to the ecobee.
  3. Cut and paste a screen shot of the log message here.

The live log is pretty uninteresting:
app:732020-11-03 04:48:23.069 pm debugSending 'Hello' to 'All Echos'
dev:722020-11-03 04:48:23.040 pm debugSpeaking message = 'Hello'

There are some debug statements in the app code when it fetches the list of devices. I will try uncommenting those to see what gets returned.

1 Like

On line 261 of the Alexa TTS Manager App, you will see the following...

                    if (it.deviceFamily in ["ECHO", "ROOK", "KNIGHT", "THIRD_PARTY_AVS_SONOS_BOOTLEG", "TABLET"]) {

It sounds like your Ecobee deviceFamily is not in the list.

add in the follow like of code just before line 261 and then go through the discovery process again..

log.debug "${it.deviceFamily}"

Look in you Live Log (or Past Logs) and let me know what values are printed out from that line of debug code.

1 Like

I had already uncommented the debug statements that were already there. Here is the device record for the ecobee:

{
  accountName=Ecobee, 
  appDeviceList=[],
  capabilities=[
    AMAZON_MUSIC, TIMERS_AND_ALARMS, REMINDERS, TUNE_IN, GOLDFISH, I_HEART_RADIO, AUDIO_PLAYER, AUDIBLE, MUSIC_SKILL, SOUND_SETTINGS, SLEEP, DREAM_TRAINING, MICROPHONE, PAIR_BT_SINK, DEREGISTER_DEVICE, CHANGE_NAME, DIALOG_INTERFACE_VERSION, PERSISTENT_CONNECTION, SUPPORTS_CONNECTED_HOME_CLOUD_ONLY, KINDLE_BOOKS, CUSTOM_ALARM_TONE, VOLUME_SETTING
  ],
  charging=null,
  clusterMembers=[],
  deviceAccountId=A0902409SZ1Q17CLBTC0,
  deviceFamily=UNKNOWN,
  deviceOwnerCustomerId=A1091GFLY2I2GM,
  deviceType=A2X8WT9JELC577,
  deviceTypeFriendlyName=ecobee SmartThermostat with voice control,
  essid=null,
  language=null,
  macAddress=null,
  online=true,
  parentClusters=[],
  postalCode=null,
  registrationId=null,
  remainingBatteryLevel=null,
  serialNumber=XXXXXX,
  softwareVersion=4006025
}

unfortunately, the device family is "UNKNOWN", which doesn't really help much!

I wonder if searching the capabilities for something like AUDIO_PLAYER might be a better approach. Looking through the capabilities for the Ecobee, I can't see another capability that might indicate the TTS capability. But probably if it is an Audio player, then it would be a suitable target.

I am going to modify my local code to give it a try.

Try adding "UNKNOWN" to the following line and see it it works or not... Can't hurt to try.

                    if (it.deviceFamily in ["ECHO", "ROOK", "KNIGHT", "THIRD_PARTY_AVS_SONOS_BOOTLEG", "TABLET", "UNKNOWN"]) {
1 Like

Success! Once the code was changed to add Ecobee, I was able to successfully send it a message to speak. This is awesome! thank you for your work on the app and helping me getting it going.

BTW, I added this code (with a couple of lines for context):

                    if (it.deviceFamily == "THIRD_PARTY_AVS_MEDIA_DISPLAY" && it.capabilities.contains("AUDIBLE")) {
                        validDevices << it.accountName
                    }
                    if (it.deviceFamily == "UNKNOWN" && it.capabilities.contains("AUDIO_PLAYER")) {
                        validDevices << it.accountName
                    }

4 Likes

Excellent!

@greg.veres - thank you for your contribution! I have added your changes to the Alexa TTS MAnager App code in my GitHub repository.

1 Like

and mine here.. oglewon. not sure if you added my code to support volume setting or not.. the code is here.

i also change the if's just added a little as they are mutually exclusive ie

if (it.deviceFamily in ["ECHO", "ROOK", "KNIGHT", "THIRD_PARTY_AVS_SONOS_BOOTLEG", "TABLET"]) {
//log.debug "${it.accountName} is valid"
validDevices << it.accountName
}
else if (it.deviceFamily == "THIRD_PARTY_AVS_MEDIA_DISPLAY" && it.capabilities.contains("AUDIBLE")) {
validDevices << it.accountName
}
else if (it.deviceFamily == "UNKNOWN" && it.capabilities.contains("AUDIO_PLAYER")) {
validDevices << it.accountName
}

1 Like

yep, I still have it on my to-do list. Sorry for the delay... I have been distracted with other things... :wink:

1 Like

NP. i have it hosted for now

@ogiewon Tjoho! It works! :smiley: Thank you very much! :clap:

2 Likes