My typical “use case” for Echo Speaks is to create a virtual momentary button tile and have an Alexa routine that waits for a trigger phrase and then triggers the button tile. A Webcore piston waits for the momentary button tile to be pushed and then executes.
In the Webcore piston, I typically execute one or more “Speak” commands. The speak commands are hardcoded to speak using one or more Alexa devices. Ideally “Echo Speaks” would be able to target the speaker on which the routine was initiated from.
Unfortunately, there is no reasonable way to detect which echo the user spoke to initiate the routine. This is some concern because I have eight Echo devices located throughout my house and ideally responses would go to the nearest speaker.
My work around is to create a new virtual switch for each Echo device. I name these devices like LOCATION_Kitchen_Show, LOCATION_Bedroom_Show, and LOCATION_Office_Dot to support my Kitchen Echo Show, my Bedroom Echo Show, and my Office Echo Dot. I then create one Echo Routine for each Echo device which waits for the phrase “Location Kitchen”, “Location Bedroom” and “Location Office”. The routines all trigger a momentary button tile called “Location” and then they turn on the appropriate switch. When the location button is pressed, a Location piston is called to turn off all of the switches named LOCATION_Kitchen_Show, LOCATION_Bedroom_Show, and LOCATION_Office_Dot. When that piston exits, the calling Alexa routine turns on the appropriate switch.
Any of my pistons that use Echo Speaks, examines the total of 8 switches to see which switch is on and sets a variable in the piston which is used to call the “Speak” function.
So, I have a routine called comfort report that gives inside and outside temperatures, relative humidities, and thermostat mode and set point.
I simply say, “Alexa, Location Kitchen” and then "Alexa “Give me a Comfort Report” and then the routine runs with its output in the kitchen. Note that all my pistons that use this location logic run in the kitchen until I issue a command such as “Alexa, Location Office”.
I know this is not pretty, but it works. Anyone else have a better use case to achieve this functionality?