datech / node-red-contrib-amazon-echo

Alexa controlled Node-Red nodes supporting latest Amazon Echo devices. NO Alexa Skills required. NO cloud dependencies.
MIT License
140 stars 42 forks source link

Can't detect devices #146

Open smilerz opened 3 years ago

smilerz commented 3 years ago
SUMMARY

I know that this has been reported many times - but none of the solutions has offered me any path to success.
I have nodered v1.1.3 configured in docker with node-red-contrib-amazon-echo 0.1.10 installed. nodered is running as root AND port 80 forwarded to another port.
nodered is running on the host network I can successfully connect to http://[x.x.x.x]/description.xml and http://[x.x.x.x]/api/description.xml. nodered and all of the Alexa devices are on the same network.

I've tried every combination possible of device discovery and process input to see if any of those have an impact. But every time I ask Alexa to discover nothing is found.

ECHO DEVICES
CONFIGURATION
[{"id":"37d2ea18.1ad166","type":"amazon-echo-hub","z":"7d7f52f5.62b3ac","port":"8765","processinput":"2","discovery":true,"x":200,"y":520,"wires":[["b81ae8cd.a4aff8","c75ea6a6.808f18","d51e90b6.22f9e"]]},{"id":"b81ae8cd.a4aff8","type":"amazon-echo-device","z":"7d7f52f5.62b3ac","name":"lights","topic":"","x":400,"y":520,"wires":[[]]}]

I simply don't know how to troubleshoot the issue anymore - any assistance would be appreciated.

Barabba11 commented 3 years ago

which router do you use? some of them may not allor ARP discover between wifi and wired interface. Test port 80 of NR device from a wifi PC

smilerz commented 3 years ago

which router do you use? some of them may not allor ARP discover between wifi and wired interface. Test port 80 of NR device from a wifi PC

It's a Netgear RBR50 - I can hit port 80 on the nodered host (wired) from a wireless laptop without issue.

smilerz commented 3 years ago

Can anyone offer some guidance on troubleshooting this issue?

glennpierce commented 3 years ago

I have the same issue.

I have node-red installed (not in a container)

I have done the set capabilities trick so the amazon echo hub has bound to port 80 ok. (I run as a non root user)

running /usr/sbin/tcpdump -v host 192.168.20.11 (running against one of my echos) when running dicovery shows activity

ie

15:23:08.820489 IP (tos 0x0, ttl 1, id 23901, offset 0, flags [DF], proto UDP (17), length 1052)
    192.168.20.11.50000 > 239.255.255.250.1900: UDP, length 1024
15:23:08.820695 IP (tos 0x0, ttl 1, id 23902, offset 0, flags [DF], proto UDP (17), length 1052)
    192.168.20.11.50000 > 239.255.255.250.1900: UDP, length 1024

I can access server/api/pi and server/description.xml fine from the same network as the echo.

Like the original poster I am now out of ideas. The echo returns no results and I don't see node-red reporting any debug info,

smilerz commented 3 years ago

Like the original poster I am now out of ideas. The echo returns no results and I don't see node-red reporting any debug info,

I gave up and used node-red-contrib-virtual-smart-home - it requires enabling an alexa skill and a functional internet connection, but so does voice recognition anyway. It was a pretty easy tradeoff and it works like a champ.

dev-inciter commented 3 years ago

I had the same issue at first.

In my setup node-red is installed on a raspberry which is running as a hub. It is connected to my network via lan and runs an access point.

In my first configuration the access point was setup as a routed access point with its own subnet. At the same time the raspberry was a gateway to all wireless clients connected to it. The problem was the same as initialy described by @smilerz . A tcpdump did not even show connections from the echo device. Maybe the amazon echo devices avoid gateway ip addresses?

I now changed the configuration to a bridged access point. The raspberry does not act as a gateway anymore and lan and wlan have the same subnet now.

Now Alexa found the device I set up for testing without problems.

glennpierce commented 3 years ago

I have a unifi USG setup with the echo'sis a different vlan. I think my issue was with the unify as the seems to be issues with mdns and vlans. My setup was correct but eventually I restarted my gateway and access points and it began to work which was odd.

Barabba11 commented 3 years ago

Echo should receive answer after broadcast to its subnet, if there are vlans it probably doesn't work. Broadcast Ethernet frames should work in your network. Be sure you enable discovery in node hub options

alexdpunkt commented 3 years ago

I have the same issue. Everything set up correctly, machine is responding on port 80 and delivers /description.xml as expected. Alexa Hub is displayed as "online" in node red GUI. All devices on same network. But no chance, devices are not detected and existing devices are displayed as offline in the alexa app. It was working some time ago, suddenly it stopped working (months ago).

jcsogo commented 3 years ago

I have the same issue. I am running nodered in a docker container, in which I have forwarded both the tcp and udp ports 80 to an internal por 8118 to which I have setup the node. I can access from a computer in wifi the /desciption.xml and /api/description.xml files, but no device is discovered.

I have checked that arp shows my entire network.

Any help would be appreciated.

Barabba11 commented 3 years ago

enable in the hub the discovering option

jcsogo commented 3 years ago

enable in the hub the discovering option

It is enabled. I have checked several times. Actually, I have disabled it, run the discovery and enabled it back again and re-run the discovery. Just in case something is not correctly enabled/detected.

Is there any traffic that I can try to capture to see if the packages are being properly delivered to and back from nodered?

alexdpunkt commented 3 years ago

I also tried running node-red as root, for having it "really" run on port 80, because the URLBase of /description.xml contains the actual port which the node-red hub runs on. I suspected the devices access the URLBase, which again could be "blocked" or not resolved for some reason... but I think that's not the case, Alexa is still not finding any devices.

<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <URLBase>http://192.168.0.60:8000/</URLBase> 
oneseventeen commented 3 years ago

I'm having a similar issue where it worked fine a few weeks ago and I noticed today that my node-red devices show up as disconnected in Alexa. I removed the device from Alexa and attempted to re-discover it, but it didn't work. I then updated Home Assistant, Node Red, and removed and re-added node-red-contrib-amazon-echo and it still doesn't discover it. For me, going to http://192.168.86.117:80/api/description.xml shows everything I would expect for my devices.

It makes me wonder if either the Echo or Google WiFi had an update recently (those are the only 2 other factors that could have updated in my situation).

Any thoughts on how to troubleshoot it? Since mine stopped working when I didn't make any changes to node-red, it really makes me think it is an Amazon or Google update, but I don't know how to verify.

Me accessing /api/description.xml from my laptop does at least show that standard TCP traffic works fine from wifi to wired on my network (laptop I'm using to test is on the same wireless network as my Echo).

oneseventeen commented 3 years ago

Quick update: after power cycling my echo, I could discover devices, but it still didn't interact with them successfully (even a device node plugged into only a debug node wouldn't respond, but the Echo said it was successful).

When looking in the Alexa app on my phone, it showed 3 instances of the device that "wasn't working". I deleted all of them and discovered again from the mobile app (not the echo plus "discover devices" voice command) and it successfully added the "phillips hue light" and my voice commands work as expected.

I have a hunch there was an update to the Echo recently that is causing issues, but so far the mobile app seems to be working. I'd still love to learn how to fix discovery from the Echo, but the fact that I have another way to connect makes it less urgent (until they make similar changes to the mobile app).

If there's any way I can troubleshoot and test, I'm happy to do it, but only have a surface understanding of the way this plugin works.