originallyus / node-red-contrib-alexa-local

An easy-to-use NodeRED node for adding Alexa capability to NodeRED. NO Alexa Skills required.
106 stars 25 forks source link

Moving to new Raspberry- now Alexa can't find some devices #63

Open SteveRMann opened 6 years ago

SteveRMann commented 6 years ago

I am moving my flows to a new Pi installation (hass.io, really). Most of the flows from the old pi work on the new pi, but some of them just won't be discovered. I tried creating new nodes and still, no discovery through (alexa.amazon.com).

I even told alexa.amazon.com to forget everything, and when running discovery, some of the moved nodes and none of the new nodes are found. Also, a lot of nodes that I know are offline get "found" again. (Any idea why?)

I went back to the "old" pi and tried adding a new node there, and still, no discovery.

Any ideas would be appreciated.

sarsw commented 6 years ago

Agree, my Rock64 developed boot issues so I set up a temporary Pi2 and installed "The Script" from Peter Scargill again. My Alexa skills are not found. I thought it was confused as they'd been learnt on the Rock64 (albeit on the same IP and same flows) so I deleted all skills and the 1st Gen Echo Dot can't find the skills anymore. Surely this can't be broken. It's the main reason I have an Echo! My family loves changing TV inputs and turning the TV on/off etc etc using Alexa. Thoughts anybody? (I'm using the latest dietpi)

SteveRMann commented 6 years ago

Let's make sure we're talking about the same thing here. Discover finds devices, not skills. I don't think the model of the Echo unit makes any difference to discovery- all of the people saying "My (select a model) doesn't discover" is only coincidental with the overall problem of discovery. It's your alexa.amazon account that is learning the devices through discover. When you start a discover, the skill scans your local network for devices- not the Alexa unit. You can unplug your Alexa unit and run discovery on the Alexa App or the Alexa.com website, and any devices that are online will still be found.

My fix: I restored my original Raspberry Pi3 from a backup and deleted any Alexa Local nodes from my flows on the new Raspberry Pi3. Discovery now works as expected. I have seven Alexa units around the house- Kitchen, family room, 2 bedrooms, my office, the garage and basement. Also a Raspberry Pi3 running AlexaPi. Alexa can hear us from just about any room in the house. I have about five or six lights controlled by Alexa, plus the A/C. Most of them are on the Sonoff Basic or ESP8266 nodes that I built. I got into this discover problem because I am adding ZWave switches to the home and could not get Home Assistant to work on my current system, which is why I have a second Raspberry Pi running Home Assistant (hass.io version). I was moving the Node Red flows from the original system when discovery broke.

It's only a suspicion, but I think that discovery is confused by having Alexa Local nodes on two Raspberry Pi's on the same local network. I am not at all familiar with the API for discovery, but perhaps the folks at OriginallyUs might be able to comment here.

P.S. When you have more than one Alexa unit, you will appreciate the "Announce" and "Drop-In" skills. Drop-in acts like an intercom, and announce will send your message to all of the Alexa units on your net. I.E., "Alexa, tell everyone that dinner is ready" will send a dinner bell followed by "dinner is ready". Tell everyone to wake up, and you get a rooster crowing. Tell everyone "it's time to go" and you get a cartoon sound that's hard to describe, but think- Road Runner. Tell everyone "bedtime" and you get "twinkle little star".

sarsw commented 6 years ago

I was meaning Alexa could not see my devices I'd configured in the flows using the alexa local node. I think my problem was my temp Pi solution was on another switch in a different part of the house and not the router/AP that Alexa was connected to. I moved the Pi and Alexa eventually found all my devices I'd configured in the node flows. It took several discovery attempts though. I think the nodes on the Rock64 install had taken a few attempts too. I'm satisfied mine is working ok... maybe dodgy network here or perhaps discovery only works on the same router?

SteveRMann commented 6 years ago

".. or perhaps discovery only works on the same router?" The Alexa unit has to be on the same local network as the devices you are discovering. A second router implies that you have a subnet that has a different IP address family.

SteveRMann commented 6 years ago

It appears that I can't have Alexa Local running in two instances of Node-Red. It confuses Alexa Discovery.

torinnguyen commented 6 years ago

it is ok to have Alexa local running on two instances of Node-Red, as long as the devices each has unique names on their own.

On Sun, 8 Jul 2018 at 19:22, SteveRMann notifications@github.com wrote:

It appears that I can't have Alexa Local running in two instances of Node-Red. It confuses Alexa Discovery.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/originallyus/node-red-contrib-alexa-local/issues/63#issuecomment-403284111, or mute the thread https://github.com/notifications/unsubscribe-auth/AAu1WIKh-uAUzY1cIUhyTKGS5MUmrKV-ks5uEfmggaJpZM4VC5F2 .

-- http://originally.us

toufou54 commented 5 years ago

SteveRMann, when you said "It's your alexa.amazon account that is learning the devices through discover. When you start a discover, the skill scans your local network for devices- not the Alexa unit."

Can you explain me how your famous "skill" scan my local network without physical devices plugged-in ?? Maybe with some magic tricks, sorry but I'm totally lost here, this is impossible (for my point of view)

SteveRMann commented 5 years ago

toufou54: You do not need any Alexa unit on your net for discover to find devices such as smart switches, smart lights, etc. Alexa units are just another smart device to be discovered.

toufou54 commented 5 years ago

SteveRMann: sorry but that's don't explain me how it can be done, which hardware and which process is launching the discovering process ?