toddmedema / echo

For controlling local devices with the Amazon Echo
207 stars 84 forks source link

Round-robin from Alexa prevents accurately determining the requesting Echo device #7

Open jbardi opened 7 years ago

jbardi commented 7 years ago

Alexa software implements a round-robin system by which requests, although heard by a specific Echo device, are not necessarily carried out by that device. I have 1 full-size Echo and 4 Echo Dots, and if I make the request to the bedroom Dot for example, it was carried out by the IP address of the full-size Echo in the Living Room. This continued for a few minutes until requests were then being carried out by the Dot in the Family Room. All of these requests were done from the Dot in the bedroom.

This round-robbin feature has been documented in many articles, which makes it impossible to reliably assign a device called "light" and have an Echo device use the specific room you are in to turn on the light in that room, because the Alexa software will start with one Echo device to carry out all requests, no matter which Echo initiated the request, and it will use that Echo for a period of time, then choose the next one in the list for a period of time and so on until it gets back to the first device.

The ability to speak individually to each Echo is being referenced in your example files as a feature when this is not the case, especially in the mqtt example, where you are attempting to specifically identify the requesting device to post to a specific mqtt topic, which will not give you the results you are expecting.

toddmedema commented 7 years ago

@jbardi good catch, looks like they've changed that functionality since we created this repo. Welcome a pull request to fix, or at least clarify in the docs!

jobin05 commented 6 years ago

@toddmedema, Any update on the fix. I am getting same IP address all the request.

toddmedema commented 6 years ago

@jobin05 we no longer actively maintain this project - pull requests are welcome :)

mitnits commented 6 years ago

I actually got it to work by associating all my separate Echo Dots with separate Amazon accounts. This way alexas are not aware of each other, and can't be joined to play music together or used as intercom, BUT they always report correct client IP when talking to the fauxmo server.... So, you give up something, you gain something :)