kakopappa / arduino-esp8266-alexa-multiple-wemo-switch

multiple belkin wemos switch emulator using ESP8266
https://sinric.pro
MIT License
307 stars 197 forks source link

Alexa SmartHome skill - not finding #22

Closed sciencegirl100 closed 6 years ago

sciencegirl100 commented 7 years ago

Installed on my NodeMCU, went through Alexa app to add... nothing. So, turns out you need the smart home skill for the devices you want to add. The WeMo skill requires you to enter your wireless SSID and the WeMo device's MAC address. This breaks the compatibility with these wemo emulator projects unfortunately.

So, has anyone gotten past this? Is there a generic smarthome skill I'm unaware of?

P.S. I made sure all devices were on the same network and I even reset my Echo Dot. Nothing :/

hkauroberoi commented 6 years ago

If this helps someone.... The alexa dot firmware is : 597464620

I got it working.... First tried with making changes to switch.cpp (belkin to root) but in vain. Virtually tried everything/every code but there was no activity in the serial console. Then checked the settings in router and found out that UPNP was unchecked. Enable the UPNP in router settings and used previous code (fauxmo) - all 7 devices successfully detected.

`WM: AutoConnect WM: Connecting as wifi client... WM: Using last saved values, should be faster WM: Connection result: WM: 3 WM: IP Address: *WM: 192.168.0.100 {"device_id":"2C:3A:E8:35:D0:E7","device_name":"Device1"}Attempting MQTT connection...connected HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52003/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E703 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E703::urn:Belkin:device:

HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52003/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E703 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E703::urn:Belkin:device:

HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52004/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E704 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E704::urn:Belkin:device:

HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52005/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E705 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E705::urn:Belkin:device:

`

hinkey247 commented 6 years ago

Great news. 😀

Sent from Yahoo Mail on Android

On Mon, 1 Jan 2018 at 11:08, hkauroberoinotifications@github.com wrote:
If this helps someone.... The alexa dot firmware is : 597464620

I got it working.... First tried with making changes to switch.cpp (belkin to root) but in vain. Virtually tried everything/every code but there was no activity in the serial console. Then checked the settings in router and found out that UPNP was unchecked. Enable the UPNP in router settings and used previous code (fauxmo) - all 7 devices successfully detected.

`WM: AutoConnect WM: Connecting as wifi client... *WM: Using last saved values, should be faster WM: Connection result: WM: 3 WM: IP Address: WM: 192.168.0.100 {"device_id":"2C:3A:E8:35:D0:E7","device_name":"Device1"}Attempting MQTT connection...connected HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52003/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E703 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E703::urn:Belkin:device:

HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52003/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E703 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E703::urn:Belkin:device:

HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52004/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E704 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E704::urn:Belkin:device:

HTTP/1.1 200 OK CACHE-CONTROL: max-age=86400 DATE: Mon, 22 Jun 2015 17:24:01 GMT EXT: LOCATION: http://192.168.0.100:52005/setup.xml OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01 01-NLS: 44455635D0E705 SERVER: Unspecified, UPnP/1.0, Unspecified X-User-Agent: redsonic ST: urn:Belkin:device: USN: uuid:Socket-1_0-44455635D0E705::urn:Belkin:device:

`

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

MacSass commented 6 years ago

Happy new year everybody, new year - new testing :-) and I can confirm that I have working code for all types of devices!

I have done some extensive testing today with 3 different Echo devices: Echo Dot Gen 2 (FW 597464620) - Type 1
Echo Generation 2 (FW 595530420)- Type 2 Echo Plus - Type 2 Please read my post above on "type 1" vs. "type 2" devices.

Please also take note that I´m only referring to the code listed here in the MASTER branch from "kakopappa" - not any other code that was referenced before (e.g. those that have files like "fauxwemos", etc.). I´m referring to https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch only!

The code as it is right now is working fine for type 1 devices with no modification. Discovery of devices as well as switching works fine! For type 2 the code currently does NOT work, it does not show any devices after discovery. Symptom is that in serial monitor you only get:

Sending response to 192.168.1.28 Port : 50000 Response sent !

while for type 1 devices you additonally see this during discovery:

Sending response to 192.168.1.28 Port : 50000 Response sent ! ########## Responding to setup.xml ... ######## .....

The reason is that type 2 devices look for a response of _urn:Belkin:device:_** and if that does not happen they do not query for the services ... thus ESP never responds.

I can make the code work with type 1 and type 2 devices by making the following change that I already mentioned in a previous post. Change one line close to the bottom of switch.cpp from: "USN: uuid:" + persistent_uuid + "::urn:Belkin:device:**\r\n" to be: "USN: uuid:" + persistent_uuid + "::upnp:rootdevice\r\n"

After this your code should work with all types of Echo devices and discovery as well as switching should work fine. This is working in my home right now. I have ran several discoveries with only type 1 or only type 2 devices on the network with consistent results.

As I am not experienced in GIT usage I´m not sure how to propose that change for testing to Kakopappa, thus I will contact him directly to see what he thinks. Maybe he can open a temporary branch that you guys can test to confirm my finding.

Regards - MacSass

PS: As Amazon Echo does use UPNP discovery with UDP broadcasts obviously you need to have UPNP enabled in your router and not eventually blocked by it!

hotelafrica commented 6 years ago

it looks like i am hitting the dead end... I did everything above and no luck. Alexa just can't find the esp8266. Not sure if this is because i'm using ESP8266 NodeMCU, not wemo-mini. Or because of some kind of network setting or hardware. (TP-link smart outlet works fine through Echo) screen_20180101_144804

I am waiting for a raspberry pi to be delivered and see if I can utilize my esp8266 via mqtt...

here's my serial output, (Echo is 192.168.1.85)

Connecting to WiFi Connecting ....... Connected to JJJJ_2.4GHz IP address: 192.168.1.89 Begin multicast .. Udp multicast server started at 239.255.255.250:1900 WebServer started on port: 80 WebServer started on port: 81 Adding switches upnp broadcast responder Adding switch : office lights index : 0 Adding switch : kitchen lights index : 1 Got UDP Belkin Request..

Sending response to 192.168.1.55 Port : 61196 Response sent !

Sending response to 192.168.1.55 Port : 61196 Response sent ! Got UDP Belkin Request..

Sending response to 192.168.1.55 Port : 61196 Response sent !

Sending response to 192.168.1.55 Port : 61196 Response sent ! Got UDP Belkin Request..

Sending response to 192.168.1.85 Port : 50000 Response sent !

Sending response to 192.168.1.85 Port : 50000 Response sent ! Got UDP Belkin Request..

Sending response to 192.168.1.85 Port : 50000 Response sent !

Sending response to 192.168.1.85 Port : 50000 Response sent ! ########## Responding to setup.xml ... ########

Sending :<?xml version="1.0"?>urn:Belkin:device:controllee:1kitchen lightsBelkin International Inc.Socket3.1415Belkin Plugin Socket 1.0

uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e651b70f-81221517K01017690urn:Belkin:service:basicevent:1urn:Belkin:serviceId:basicevent1/upnp/control/basicevent1/upnp/event/basicevent1/eventservice.xml ########## Responding to setup.xml ... ######## Sending :urn:Belkin:device:controllee:1office lightsBelkin International Inc.Socket3.1415Belkin Plugin Socket 1.0 uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e651b70f-80221517K01017690urn:Belkin:service:basicevent:1urn:Belkin:serviceId:basicevent1/upnp/control/basicevent1/upnp/event/basicevent1/eventservice.xml ########## Responding to eventservice.xml ... ######## ########## Responding to eventservice.xml ... ######## Got UDP Belkin Request.. Sending response to 192.168.1.85 Port : 50000 Response sent ! Sending response to 192.168.1.85 Port : 50000 Response sent ! Got UDP Belkin Request.. Sending response to 192.168.1.85 Port : 50000 Response sent ! Sending response to 192.168.1.85 Port : 50000 Response sent ! ########## Responding to setup.xml ... ######## Sending :urn:Belkin:device:controllee:1kitchen lightsBelkin International Inc.Socket3.1415Belkin Plugin Socket 1.0 uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e651b70f-81221517K01017690urn:Belkin:service:basicevent:1urn:Belkin:serviceId:basicevent1/upnp/control/basicevent1/upnp/event/basicevent1/eventservice.xml ########## Responding to setup.xml ... ######## Sending :urn:Belkin:device:controllee:1office lightsBelkin International Inc.Socket3.1415Belkin Plugin Socket 1.0 uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e651b70f-80221517K01017690urn:Belkin:service:basicevent:1urn:Belkin:serviceId:basicevent1/upnp/control/basicevent1/upnp/event/basicevent1/eventservice.xml ########## Responding to /upnp/control/basicevent1 ... ########## request:"1.0" encoding="utf-8"?>1 Got binary state request Sending : 1 Got UDP Belkin Request.. Sending response to 192.168.1.55 Port : 4988 Response sent ! Sending response to 192.168.1.55 Port : 4988 Response sent ! Got UDP Belkin Request.. Sending response to 192.168.1.55 Port : 4988 Response sent ! Sending response to 192.168.1.55 Port : 4988 Response sent ! ########## Responding to /upnp/control/basicevent1 ... ########## request:"1.0" encoding="utf-8"?>1 Got binary state request Sending : 0 ########## Responding to /upnp/control/basicevent1 ... ########## request:"1.0" encoding="utf-8"?>1 Got binary state request Sending : 0 ########## Responding to /upnp/control/basicevent1 ... ########## request:"1.0" encoding="utf-8"?>1 Got binary state request Sending : 1 Got UDP Belkin Request.. Sending response to 192.168.1.55 Port : 52823 Response sent ! Sending response to 192.168.1.55 Port : 52823 Response sent ! ########## Responding to setup.xml ... ######## Sending :urn:Belkin:device:controllee:1office lightsBelkin International Inc.Socket3.1415Belkin Plugin Socket 1.0 uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e651b70f-80221517K01017690urn:Belkin:service:basicevent:1urn:Belkin:serviceId:basicevent1/upnp/control/basicevent1/upnp/event/basicevent1/eventservice.xml
jcarley commented 6 years ago

@hotelafrica from looking at your code, I think your response message is wrong. I got this working with my Echo Plus (firmware 595530520) Here's what I have in Switch.cpp, method Switch::respondToSearch. Pay close attention to the third to last line and the second to last line. Both contain the string "upnp:rootdevice". That is literally all the changes I made. I upload my sketch to a Node MCU, and it worked. Echo found the devices no problem.

String response = 
       "HTTP/1.1 200 OK\r\n"
       "CACHE-CONTROL: max-age=86400\r\n"
       "DATE: Sat, 26 Nov 2016 04:56:29 GMT\r\n"
       "EXT:\r\n"
       "LOCATION: http://" + String(s) + ":" + String(localPort) + "/setup.xml\r\n"
       "OPT: \"http://schemas.upnp.org/upnp/1/0/\"; ns=01\r\n"
       "01-NLS: b9200ebb-736d-4b93-bf03-835149d13983\r\n"
       "SERVER: Unspecified, UPnP/1.0, Unspecified\r\n"
       "ST: upnp:rootdevice:**\r\n"
       "USN: uuid:" + persistent_uuid + "::upnp:rootdevice:**\r\n"
       "X-User-Agent: redsonic\r\n\r\n";
MacSass commented 6 years ago

@hotelafrica: find attached my serial output. I notice that in your output the XML tags are missing, but I guess those have been lost posting to github? But your screenshot shows a lot of "#" instead of "\" - if you really have the code as seen in your screenshot than that would explain why it would not work.

See screenshot how it should look and how it works for me.

switch cpp working with type 2 echo devices Also I hope my attached log helps - it was done with an ESP-12 development board (it really should work regardless of what ESP8266 board you use, I use several different ones).

Also, instead of pasting long logs into this thread better attach a .txt file with it - it keeps the thread less cluttered and makes sure nothing gets stripped. If you can attach our log as a file I can compare the files to see if there is any difference.

Regards - MacSass ESP serial log.txt

@jcarley: I have only replaced the second to last line with "rootdevice..." the third to last I left as it was - and it is working fine for me, I think it is sufficient to change the USN.

hotelafrica commented 6 years ago

@jcarley I applied your change and tried again. No detection happening still.

@MacSass the symbol you are refering as '#' is actually different form of backslash (it actually looks like W with strike through) It's because I've installed Korean input language in my windows 10 and language setting for 'Non-unicode programs' is also set as Korean.

But since you mentioned about it, i am going to remove all those settings and maybe reinstall the arduino ide THEN try the code again. (Maybe Echo doesn't understand response because it's encoded differently?)

if it works that way, then i'll have to figure out different way to make it work with Korean set up in my computer (It's kind of must have for my daily use).

Let me play with it little more, I'll let you know!

hotelafrica commented 6 years ago

screen_20180101_195345

Removed Korean from windows (but didn't reinstall the arduino yet) and tried again.

well... not working... :(

let me reinstall the program and see what happens...

here's a log file after flashing the esp.

espLog_0101.txt

Again, thank you guys for look at my problem, hopefully I can sort this out somehow!

cheers.

jcarley commented 6 years ago

@hotelafrica Shot in the dark here. See attached screen shot.

echo2_-_switch_cpp___arduino_1_8_2

hotelafrica commented 6 years ago

@jcarley I did, no discovery. My next step is to try again with different router. I kind of already tried it by using a hotspot from my iphone but let me do it again with actual router.

MacSass commented 6 years ago

Hey @hotelafrica, to be honest I do not understand why your Alexa does not find your ESP devices ... I did compare your log to mine and obviously the UDP broadcast from Alexa is well received by the ESP, otherwise there would be no output. Also Alexa get´s the response from ESP as Alexa then requests the setup.xml which then "defines" the device services - so I clearly would expect that Alexa then lists the devices if the response provided to setup.xml is OK, which seems to be the case.

I don´t really think its your router - as the UDP requests come through.

I´m sorry - I´m out of ideas - the only thing that might help is to add more debug information. I would propose to add two statements to the switch.cpp before the two lines at the end so that it looks like this at the end:

    Serial.print("Sending :");
    Serial.println(response);
   Serial.println("Response sent !");
}

The two added lines would output to serial monitor the response that get´s send - but I´m fairly confident that this will be looking ok as well ... so it might not actually really help.

Also - try to call up the following URLs in a browser to see if your ESP gives you a good response:

http://IP_of_your-ESP/setup.xml it should return:

setup xml

Also check that http://IP_of_your-ESP/eventservice.xml returns valid XML.

I´m sorry - but I´m a bit out of ideas otherwise - it seems to be working for several others like it is for me ...

Regards - MacSass

ZoMiGo commented 6 years ago

I have the sam problem with my alexa discover devices work only over OpenHab2

Outlook for Androidhttps://aka.ms/ghei36 herunterladen


From: MacSass notifications@github.com Sent: Tuesday, January 2, 2018 6:48:28 PM To: kakopappa/arduino-esp8266-alexa-multiple-wemo-switch Cc: Goran; Comment Subject: Re: [kakopappa/arduino-esp8266-alexa-multiple-wemo-switch] Alexa SmartHome skill - not finding (#22)

Hey @hotelafricahttps://github.com/hotelafrica, to be honest I do not understand why your Alexa does not find your ESP devices ... I did compare your log to mine and obviously the UDP broadcast from Alexa is well received by the ESP, otherwise there would be no output. Also Alexa get´s the response from ESP as Alexa then requests the setup.xml which then "defines" the device services - so I clearly would expect that Alexa then lists the devices if the response provided to setup.xml is OK, which seems to be the case.

I don´t really think its your router - as the UDP requests come through.

I´m sorry - I´m out of ideas - the only thing that might help is to add more debug information. I would propose to add two statements to the switch.cpp before the two lines at the end so that it looks like this at the end:

Serial.print("Sending :");
Serial.println(response);

Serial.println("Response sent !"); }

The two added lines would output to serial monitor the response that get´s send - but I´m fairly confident that this will be looking ok as well ... so it might not actually really help.

Also - try to call up the following URLs in a browser to see if your ESP gives you a good response:

http://IP_of_your-ESP/setup.xml it should return:

[setup xml]https://user-images.githubusercontent.com/25532047/34493683-559d9024-efed-11e7-815d-5bfbd46736e9.png

Also check that http://IP_of_your-ESP/eventservice.xml returns valid XML.

I´m sorry - but I´m a bit out of ideas otherwise - it seems to be working for several others like it is for me ...

Regards - MacSass

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/22#issuecomment-354828502, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYHHZMYY--YaSqE3QwcJAKimNdpFE6RKks5tGmvsgaJpZM4QPwo4.

sunilda commented 6 years ago

There are certain places other then "response" section where Belkin is mentioned, do we need to modify them as well?

MacSass commented 6 years ago

@sunilda : I don´t think so - at least discovery should work with the change I have proposed. It does for me and for some others as well. No clue why it does not work for some others though ... sorry

kakopappa commented 6 years ago

Hello guys.

Past few weeks I have been working on a smart home skill and a website which allows you add development boards such as WEMOS D1 to Alexa eco system without emulating as a belkin switch. Mainly, because some people have issues in the UDP broadcast and different Alexa devices such as ECO, DOT has different XML formats and this is logic is quite difficult to code. So, I belive moving forward using the smart home skill is the right thing to do;

So, I would like to invite everyone to give it a try.

  1. Goto sinric.com

  2. Create an account

  3. Use the API key displayed on the home screen to connect your WEMOS D1 to sinric. Here is the code . Just replace the API KEY https://github.com/kakopappa/sinric/blob/master/arduino_examples/switch_example.ino

  4. Install smart home skill from https://www.amazon.com/dp/B078RGYWQQ/ref=syps?s=digital-skills&ie=UTF8&qid=1515150398&sr=1-18&refinements=p_n_date%3A14284925011

4.1 Link, eneter you login details to sinric.com

  1. Discover.

  2. Rate the Skill so other people can easily find it!

You can turn on/off same like emulating a belkin device.

No need to say like Alexa ask sinric to turn on bedroom lights. Simple as a Alexa turn on bedroom lights.

If you have any issue or comments report it here; https://github.com/kakopappa/sinric

Thanks

sunilda commented 6 years ago

@kakopappa will this work without internet after it is configured?

kakopappa commented 6 years ago

No it won't . Need a internet connection

On Sat, Jan 6, 2018 at 10:43 AM sunilda notifications@github.com wrote:

@kakopappa https://github.com/kakopappa will this work without internet after it is configured?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/22#issuecomment-355720487, or mute the thread https://github.com/notifications/unsubscribe-auth/AHIM5iSxrC3OXyWUOnAgcSaEJcQf5CARks5tHuvqgaJpZM4QPwo4 .

hkauroberoi commented 6 years ago

Dot's firmware is updated again and the discovery is failing again. The previous version was 597464620.

However all my exisitng modules have also stopped responding to commands and alexa says "device not responding". Will check and update again.

hkauroberoi commented 6 years ago

Spent half of Saturday troubleshooting and found nothing unusual. Took out all ESP modules from the wall boxes to debug and reflash. As per amazon website I have 2nd Gen Dot with Latest Software Version: 597465220 > https://www.amazon.com/gp/aw/help/id=201602210

The broadcasting wasn't working and serial monitor stayed blank - the moment I ran wireshark I could see that packets were being sent in serial console !!!!!! Dunno what happened :) when ever thrs an update, the detection goes berserk and that's the reason I have now integrated OTA and push updated code from my server :)

Used every code/library - the detection is working fine now without modifying. Alexa is testing patience as practically I did nothing except wasting my time :(

Can someone please let me know if they faced/are facing the blank serial console (no UDP packets) ????

hkauroberoi commented 6 years ago

@kakopappa God.... I'm sorry as I missed you last post about skill... Let me try it out right away.

espfan commented 6 years ago

Im having issues getting alexa to discover my esp8266-01. Ive read all the posts and tried eveything mentioned but no success.

I have and Echoplus on FW595530520 The code I am currently using is the one from @kakopappa (https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch) Ive made the chance to switch.cpp detailed by @MacSass and added the extra code to help debug

When asking Alexa to discover devices the serial monitor goes crazy! (ill attach the txt file) but she tells me no devices were found. espserial.txt

I presume this is the same issue most are having but any help would be appreciated.

@kakopappa This skill doesnt appear to be available in the UK but i think this is the way to go!

Edit - http://192.168.1.105/setup.xml gives: - just noticed model number :) xmlsetup.txt

http://192.168.1.105/eventservice.xml gives: eventsevice.txt

This is my first Arduino/esp project so I have no idea if this is good or not.

hkauroberoi commented 6 years ago

@kakopappa the skill is not available in india. So i quickly coded a skill and confirm that all works well now !!!

kakopappa commented 6 years ago

@hkauroberoi can you help me with the translations, please? https://github.com/kakopappa/sinric/issues/3

TetsudouSenpai commented 6 years ago

@hkauroberoi (Can someone please let me know if they faced/are facing the blank serial console (no UDP packets) ????)

I'm running the multiple switches code on NodeMCU 1.0, and using a 2nd generation Echo Dot, FW version 597465220. After the latest updates, ESP Wemo devices stopped responding. I have tried all the above solutions with no success. I've now updated the libraries to the latest version (https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch) but I get no UDP packets.

I've tried wireshark too: Alexa is sending a message that contains urn:Belkin:device:**.

The serial output from the NodeMCU only contains the wifi and switch setup lines:

Connecting to WiFi Connecting ...... Connected to TRAP XATA Slow IP address: 192.168.1.11 Begin multicast .. Udp multicast server started at 239.255.255.250:1900 WebServer started on port: 80 WebServer started on port: 81 Adding switches upnp broadcast responder Adding switch : test light index : 0 Adding switch : stair light index : 1

However there are no UDP responses.

Have you got any ideas on how to fix this?

hkauroberoi commented 6 years ago

@TetsudouSenpai I faced this problem twice. First, the upnp was turned off in the wifi router settings (this is what fixed the issue) and very recently the serial console remained blank until I ran wireshark. So far no concrete explanation !!

hkpanchani commented 6 years ago

I recently purchased echo 2nd generation with firmware version (595530420). And I tried all of the above solution , unfortunately none of them worked.ESP does responds to request but no device is added. screenshot 3

kakopappa commented 6 years ago

Why don't you try sinric smart home skill?

Sinric.com

On Wed, Jan 10, 2018 at 9:47 PM hkpanchani notifications@github.com wrote:

I recently purchased echo 2nd generation with firmware version (595530420). And I tried all of the above solution , unfortunately none of them worked.ESP does responds to request but no device is added. [image: screenshot 3] https://user-images.githubusercontent.com/35301566/34778348-2145463a-f643-11e7-983e-d36df6023bf5.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/22#issuecomment-356623642, or mute the thread https://github.com/notifications/unsubscribe-auth/AHIM5jYyOazZVD0abQPrE_zN6xSmXW3Cks5tJM17gaJpZM4QPwo4 .

hkpanchani commented 6 years ago

@kakopappa Thank you for the response.

I have already gone through Sinric.com but due to restriction Sinric skill is not available in my region(India). capture

kakopappa commented 6 years ago

Ok I will update you when the skill is available

On Wed, Jan 10, 2018 at 10:10 PM hkpanchani notifications@github.com wrote:

@kakopappa https://github.com/kakopappa Thank you for the response.

I have already gone through Sinric.com but due to restriction Sinric skill is not available in my region(India). [image: capture] https://user-images.githubusercontent.com/35301566/34779499-650f8c60-f646-11e7-9b8f-e47285b50ebb.JPG

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/22#issuecomment-356630588, or mute the thread https://github.com/notifications/unsubscribe-auth/AHIM5kf1m8bgahdJa4s6tNH_G8a6FA08ks5tJNLLgaJpZM4QPwo4 .

TetsudouSenpai commented 6 years ago

@kakopappa Do you by any chance have a way of checking which countries the skill is available in? Because in the UK it's not available either...

Also this link results in a 404: https://github.com/kakopappa/sinric/blob/master/arduino_sinric_example.ino

A very nice idea though, thank you very much for developing this!

kakopappa commented 6 years ago

@TetsudouSenpai sorry example at https://github.com/kakopappa/sinric/blob/master/arduino_examples/switch_example.ino

there was a problem with the last submission. I am working it.

TetsudouSenpai commented 6 years ago

@kakopappa Ok, thank you very much!

Does this code support running multiple switches from one ESP8266? Do I just create more webSocketClient objects?

kakopappa commented 6 years ago

You can create multiple switches with one esp module and one websocket connection.

When receiving the data check the device id for different devices

On Thu, Jan 11, 2018 at 12:55 AM TetsudouSenpai notifications@github.com wrote:

@kakopappa https://github.com/kakopappa Ok, thank you very much!

Does this code support running multiple switches from one ESP8266? Do I just create more webSocketClient objects?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/22#issuecomment-356683065, or mute the thread https://github.com/notifications/unsubscribe-auth/AHIM5vItZsqGyPDKrMj0WK99UV_U0ornks5tJPl5gaJpZM4QPwo4 .

MacSass commented 6 years ago

Hi @TetsudouSenpai and @hkpanchani , in deed my Echo Dot also has received updated firmware (at 597 465 220 now) but the script still continues to work (and find new devices!) fine with the single change that I have mentioned above: Change one line close to the bottom of switch.cpp from: "USN: uuid:" + persistent_uuid + "::urn:Belkin:device:**\r\n" to be: "USN: uuid:" + persistent_uuid + "::upnp:rootdevice\r\n"

I do see the responses flying out in the serial monitor as like this: Sending response to 192.168.1.24 Port : 50000 Response sent ! ########## Responding to setup.xml ... ####### ......

I honestly have no clue why it is not working for you - the most likely reason I can imagine would be that the UDP broadcast packages do not reach your ESP for some reason - might makes sense to trace that if possible.

Of course the better way to go might be to use the upcoming skill of Kakopappa anyhow - but I´m still waiting for it to appear on the German alaxa skill store ... hope Amazon get´s that approved soon.

Regards - MacSass

PS: Of course it would be great if the skill and sinric code would become open source as well - but I could also fully understand if Kakopappa wants to keep that closed as it seem to have been an awful lot of work ...

MacSass commented 6 years ago

@kakoppa: No feedback from Amazon yet on availability in other countries? You have any experience how long it usually takes for them to release a skill? Anything more we can do from our side to help?

Regards- MacSass

kakopappa commented 6 years ago

Hi MacSass. There was a problem when they tested the skill and rejected it. It will fix the issue first thing in the morning and resubmit

The issue seems to be on Amazon side. When I test German and English (India) it's not sending the device discovery request to my server. I created a support ticket. Should hear from them soon.

On Fri, Jan 12, 2018 at 10:44 PM MacSass notifications@github.com wrote:

@kakoppa: No feedback from Amazon yet on availability in other counties? You have any experience how long ti usually takes from the to release a skill? Anything more we can do from our side to help?

Regards- MacSass

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/22#issuecomment-357272867, or mute the thread https://github.com/notifications/unsubscribe-auth/AHIM5kACeaNBo8eHA_5e5yedXeaxLniNks5tJ33IgaJpZM4QPwo4 .

MacSass commented 6 years ago

Hi, while we are waiting for the skill being releasd to other countries, everybody that has problems with getting the devices discovered might want to take a look at https://github.com/Aircoookie/Espalexa This emulates a hue device and worked perfectly for me right away and has the advantage of "dimmer" functionality. It only supports one device though currently - but I guess that could be changed. If this also does not help you to get devices discovered then I would guess you have a problem with UPNP broadcasts getting blocked and you should look on your router side ...

Codewise the kakopappa smarthome skill obviously will be much less complex and might the the best choice for future (if dimming gets added hopefully).

Regards - MacSass

TetsudouSenpai commented 6 years ago

@MacSass Thank you very much for your recommendation! Unfortunately, it still didn't work... I have checked UPnP settings - both UPnP and UPnP NAT-T are enabled.

I have run Wireshark to see whether any packets were coming through. I can see four packets coming through from 192.168.1.7 (Alexa's IP address) to 239.255.255.250 every time I run discovery, two pairs of identical packets. There are no replies to them. The pairs' only difference from each other is the ST field: the first pair has ST: urn:schemas-upnp-org:device:basic:1 and the second has ST: urn:Belkin:device:**.

Do you by any chance know if this shows whether my UPnP is blocked or not? Or if not, how could I check it? Because honestly I'm not very proficient in this area (I'm more on the hardware side).

Thank you very much in advance!

MacSass commented 6 years ago

Hi @TetsudouSenpai, sounds like the broadcast is not going to the ESP for it to respond ... the broadcast being sent to the broadcast address should go to all devices - but you could only check if it arrives at the ESP if you would put a network tracer (switch) between the ESP and the router. Having turned on UPNP does not necessarily mean that SSDP broadcasts are forwarded ... check if you have any SSDP options in your router (that is the protocol for service discovery).

I will run a trace tomorrow here to see if I am seeing the same requests - but as said I would guess that your router does not forward the requests to the ESP - for whatever reason. What router model is that? Maybe others that have the same problem have the same router brand? I´m running AVM Fritzbox (which is popular in Germany) and do not see this issue.

Regards - MacSass

MacSass commented 6 years ago

@kakopappa Hey, any news yet from the skill for other countries? I received an invitation to beta-test but when trying to load it tells me it is not availble in Germany still. Any update? I´d love to test it? Any feedback from others yet? Regards - MacSass

hkpanchani commented 6 years ago

Not yet in india.

hkpanchani commented 6 years ago

Finally Sinric is available in india

AvisIoT commented 6 years ago

It is working in India, I was able to enable the Sinric and its responding. Just used the sample code only. Can't do more unless able to see the device ID on sinric site. Also can't control through app (already saw an issue logged about this). Anyway, thanks a lot for making this easy for hobbyist like me. Will stay tuned.

TetsudouSenpai commented 6 years ago

@AvisIoT You can actually determine the deviceID through adjusting the sinric code slightly. Just add a line Serial.println (deviceId) after the String deviceId = json ["deviceId"] line in the code. That would output the incoming ID into the serial monitor, from where you can copy and paste it into the code.

kakopappa commented 6 years ago

@AvisIoT @TetsudouSenpai

I have updated the website to show the device id now.

MacSass commented 6 years ago

Hi @AvisIoT , I already spoke to Kakopappa about adding device ID to sinric.com. I guess he will do that soon, also some more enhancements are planned. Until then you can also use the attached code to:

What you need to do: Add your api an wifi credentials to the attached code. Create device on sinric and have it discovered by alexa. Issue command through alexa and you will see the deviceID in the serial console.

You can then replace the existing dummy device IDs in the code with your correct ones ...

As said Kokopappa will make more enhancements soon to make it easier - I guess.

Regards - MacSass

switch_multi_sinric.txt

MacSass commented 6 years ago

Uhhhh - He has been faster than me :-)

AvisIoT commented 6 years ago

Thank you @kakopappa and @MacSass . I will test/experiment more next weekend. Have ordered few relay modules, once they arrive will put this to real life use... the multi-device code will be really useful in that case. @kakopappa also looking forward to update on issue #10 (https://github.com/kakopappa/sinric/issues/10)

RanTalbott commented 6 years ago

To add some useful, but also some confusing, information.

I had some trouble getting Alexa to discover one of my experiments until I made the change that MacSass suggested. Thank you for that.

But...

  1. It also discovered one that didn't have the change.

  2. The Dot told me that it hadn't discovered anything. The Android app revealed that it had.

  3. The new experiment has 7 switches. Only the last 3 were discovered. I tweaked the debug code a little bit, and confirmed that initial responses for all 7 were sent. But the Dot is only asking for setup.xml for those last three. I'll post more about this after I do some more investigating.

charles commented 6 years ago

My echo dot stop find my devices after updated my apple time capsule from version 7.7.8 to 7.7.9. After that I try every possible solution here with no success. My solution was a downgrade to 7.7.8.

I hope that helps someone.