I have created a capability to allow pistons that use “Echo Speaks” to speak to a dynamically selected Echo device. This is achieved with a Piston that I have written called “Location”. I am posting this piston verbatim because the non-randomized version is needed to see what is going on. Basically, I have created 1) A virtual switch for every Echo Device that I have named things like Location_Office, 2) I have a Virtual button called “Location” that calls the piston when it is pushed, 3) I have one Alexa Routine for each Echo device. Each of these routines presses the Location button to call the piston and then presses the virtual switch for that Location .eg Location_Office. The piston sets a GLOBAL Webcore variable named @Echo_Location. Then, any other Piston that I have written uses @Echo_Location for its “Speak” commands. Actual usage is like this: “Alexa, Location Office”, Alexa responds, "Location is now set to Echo Office Dot. Then all of my Echo speaks commands that use @Echo_Location speak to Echo Office Dot until I give another location command.
Here is an actual example of my use of my “Location” piston example above.