Announcement

Collapse
No announcement yet.

Alexa TTS that works better (IMHO) than the solution for Home Assistant.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • AZweimiller
    replied
    I occasionally want to send custom TTS text to Alexa that isn't directly triggered by an established HomeSeer event. I use it for inter-house announcements. Yes, you can say "Alexa announce <announcement>" and this will re-broadcast your voice but I have found that unless you are very near Alexa when recording, it is often muffled and hard to understand. I prefer using her TTS voice. To make these announcements I have a placeholder event in HS4 with a manual trigger. It just sends MQTT to Node-Red. I have to edit the MQTT string to set the destination device (or use Everywhere) and what I want to say. This is cumbersome when I just quickly want to fire off an announcement. I have attempted to improve this workflow by integrating with my Telegram bot.

    All I have to do is type a message to my bot that starts with either Announce, Speak, or Whisper and then the text I want to say. The bot responds with a list of my Echo devices in a custom keyboard. You just tap the destination device and the options disappear and are replaced with "Message Sent".

    Click image for larger version  Name:	Alexa TTS Telegram.PNG Views:	0 Size:	28.8 KB ID:	1484238

    Leave a comment:


  • mterry63
    replied
    Originally posted by tloomos View Post
    I thought I understood this, but tried to set it up and I guess I'm still missing something. When I go into my devices in my Alexa app and try to create a group called "Everywhere", I get an error saying "That name can't be used, please try something different". I've tried both of the options (Create a room or device group vs Combine rooms or groups) and I get the same error either way.

    To try out the idea of combining multiple echo devices into a group, I just created a group called Test. However, when I try to add an echo to it, I get an error saying "Echo devices can only be in one group" since all my echos are already in room specific groups. I could eliminate some of those groups, but others I use so that when I play music in that room it plays through the Sonos in that room instead f through the echo device.

    I feel like maybe I'm missing something basic here and making this harder than it is?
    I think you're looking at the wrong type of group. In the Alexa App, Device, scroll to the bottom for SPEAKER GROUPS. Everywhere should already exist, since all the Echos are automatically members. Create whatever speaker groups you want. Echos can be in more than one group. AFAIK, only true Echos can be in Speaker groups. Tablets and Fire TV devices can't participate.

    Once you create the groups you can use their names in the MQTT topic to send announcements to those groups.

    Leave a comment:


  • tloomos
    replied
    I thought I understood this, but tried to set it up and I guess I'm still missing something. When I go into my devices in my Alexa app and try to create a group called "Everywhere", I get an error saying "That name can't be used, please try something different". I've tried both of the options (Create a room or device group vs Combine rooms or groups) and I get the same error either way.

    To try out the idea of combining multiple echo devices into a group, I just created a group called Test. However, when I try to add an echo to it, I get an error saying "Echo devices can only be in one group" since all my echos are already in room specific groups. I could eliminate some of those groups, but others I use so that when I play music in that room it plays through the Sonos in that room instead f through the echo device.

    I feel like maybe I'm missing something basic here and making this harder than it is?

    Leave a comment:


  • mr.Magoo
    replied
    Everywhere is a Alexa group containing the echo devices you wish to represent "everywhere".

    This is useful (imho) for example when you'd like announcements made "everywhere" except...
    In my case I do not want it on my fire tv's since it interrupts playback, and I do not want it on my doorbell echo (set at max volume and do not disturb as it only handles the ding-dong for the doorbell).

    not sure if the script/integration can support multiple devices, but personally I'd just use groups even if it did... it's easier to maintain through the Alexa app.

    Leave a comment:


  • tloomos
    replied
    Hi, I recently came across this thread and have learned a lot from it! I was able to get this working pretty quickly using MQTT, but one feature didn't work so I pulled in the WebHook approach and I'm having the same problem there. On both of these, I can do an Announcement, Whisper or Speak to any single Alexa device with no problem. However, the ALL option doesn't seem to work - I get an error saying "could not find device: "Everywhere" Is there additional config I need to do somewhere or is "Everywhere" a built-in option to reference all devices?

    Also, is it possible to send a single request and target multiple devices? From a quick peek at the script it looks like msg.payload.payload.devices[#] is an array where # indicates the index of the element. If I sent in a delimited list of device names, could I parse that into an array, loop over the array and set the devices by incrementing the index for each (starting with 0 for the first one)?

    Leave a comment:


  • drhtmal
    replied
    Sorry, I missed the part about you not being able to authenticate

    Leave a comment:


  • drhtmal
    replied
    What is the config of the Alexa node that is throwing the no body error. When you click on the done to open the config dialog box

    Leave a comment:


  • alphatech
    replied
    This is what I have. Not sure if this helps
    Attached Files

    Leave a comment:


  • drhtmal
    replied
    Originally posted by alphatech View Post
    I try to refresh the cookie. I open the browser, enter the ip address:3456, it get me to Amazon Alexa. I enter the user name and password. I get the message 'Enable cookies" I tried several browsers with the same issue. I would appreciate any help.
    What settings do you have for the alexa node?

    Leave a comment:


  • alphatech
    replied
    I try to refresh the cookie. I open the browser, enter the ip address:3456, it get me to Amazon Alexa. I enter the user name and password. I get the message 'Enable cookies" I tried several browsers with the same issue. I would appreciate any help.

    Leave a comment:


  • alphatech
    replied
    After months working without issues, I'm getting authentication failed: "no body" message. Any idea why?

    Leave a comment:


  • drhtmal
    replied
    I find using MQTT to be the most flexible method.

    1. Can be triggered from an event
    2. Can be triggered from another flow
    3. No need for an intermediary device
    4. Can specify which device to use, the message spoken and other SSML markup like whisper

    Leave a comment:


  • AZweimiller
    replied
    Doesn't the native method require using an intermediate virtual device to trigger the node red flow? I find mqtt more elegant, personally.

    Leave a comment:


  • mterry63
    replied
    Yes, but his method was published prior to HS4. At that time, MQTT was the only way.

    Sent from my Pixel 2 using Tapatalk

    Leave a comment:


  • drhtmal
    replied
    Originally posted by mterry63 View Post
    If HS4 supports Node-Red directly, why install MQTT? The only thing MQTT does in this discussion thread is bridge HS3 and Node-Red. Since HS4 supports Node-Red directly, MQTT shouldn't be necessary to leverage speaking with Alexa and HS4.
    You use MQTT to make it easier to send what alexa devices you want to have speak and what you want it to speak. Mr Magoo's setup is quite elegant. I think it is the best way to do this.

    Leave a comment:

Working...
X