v3.0 not discovered by Alexa

Issue #58 new
GeneBean
created an issue

If I use v2.3.0 of this repo with Arduino Core 2.3.0 for the ESP8266 my nodeMCU 1.0 (esp-12E) module is discovered by the Alexa app. If I update to the 3.0 version of this repo my device is never found nor is anything other than the wifi connection and free heap shown in the serial console.

In both cases I was using the provided example sketch and only changed my wifi creds and the plug name.

I did try adding #define DEBUG_FAUXMO_VERBOSE true to the 3.0 version of the sketch but it didn't change a thing.

Comments (30)

  1. Daniele Testa

    Same here. Not working with my esp8266 on version 3. I see that the lib switched from emulating WeMo to emulating Philipps Hue? Does that mean that I manually have to enable the Philipps Hue skill for Alexa before this works? If so, that should be mentioned in the documentation, because now it's not. In any case, I am also unable to enable that skill, because when trying to enabling it in the Alexa app, it just forwards me to the Philipps page and wants me to login. After logging in, it searches for some "philipps bridge" which if (of course) can not find and there is no way to skip that step.

  2. Adam Byers

    I'm wondering if the switch to the Hue protocol means that a Hue bridge is required now. That seems to be the only way to add Hue devices to Alexa is via a bridge (excepting v1 Hue devices). Kind of sad that this isn't in the documentation and the move to a method that requires another device in the chain.

  3. Daniele Testa

    Adam, I think the code is emulating a Hue Bridge, but I am not sure. I also think it's weird that they would switch to a completely new protocol all of sudden without any deeper documentation on what's going on. They should have created a completely new project instead of just updating the version number to 3. They claim that the Hue API is easier to use as the API is openly documented and adds additional features as dimming etc. I ended up just creating a super simple REST API together with an Alexa skill. Much better than having this crap break between versions.

  4. Adam Byers

    Hello Daniele, After some head banging last night (some hints in other threads lead me to this) I found that (if you're using the Arduino IDE) if you switch to the 2.3.0 ESP8266 board version it discovered just fine. Showed up a some kind of Hue bulb. The dimming even worked. So, I think the issue is between the latest Fauxmo code and the latest ESP8266 core for Arduino.

  5. Daniele Testa

    Ok, that's cool. I might give it another try. However, this kind of proves my point. If a software can break because of changes in the framework, it's most likely not good code. Not following framework guidelines etc. Having to be afraid that everything will stop working every time the software gets a new version or the frameworks gets an update is not very pleasant. Also, if the newest version of the framework breaks the code, why haven't this been noticed and fixed? Is nobody using this code? Is nobody maintaining it? This bug was reported 2 months ago with no response.

  6. Luca Inox

    Hello Daniele and Others, we are all on the same boat. This is my enviroment: Arduino IDE 1.8.7 - Echo Dot Mini 3rd generation - ESP8266 2.3.0 or 2.4.2 - fauxmoESP 3.02 - ==> device never discovered by Alexa.

  7. Rycoviac

    You have to fall back to ESP8266 2.3 in your boardmanager. Had this problem yesterday. Now it works fine for me with my Echo Dot 2nd generation.

  8. Stefan Grünwald

    One issue I found on trying to get it running is, that enable is by default true but I think it should be false. So you have to call fauxmo.enable(false); and fauxmo.enable(true);

    Now it works again with my Echo Dot. But I'm still not able to detect it using my Echo Spot.

  9. Daniele Testa

    Luca, wouldn't that be very odd? The code is suppose to emulate a Philipps Hue device, which even has an "open" API. Why would support for Hue break in 3rd generation? If that is true, it's just absurd.

  10. Luca Inox

    Daniele, many people here claim that using framework 2.3.0 the code works with echo dot 2nd generation. I have a 3rd generation device and i was not able to see my wemos D1 mini discovered by Alexa. I only loaded the basic example provided with the library just fixing the minor bug file name "credentials.sample.h".

  11. Andrew D

    Changing from lwIP variant "v2 lower memory" to "v2 higher bandwidth" in the arduino ide allowed my "devices" to be discovered when they were not before. Hope this helps others.

  12. Luca Inox

    Andrew D please can you tell us about your enviroment? ESP8266 Framework version number, Arduino IDE version, echo generation etc. and also where to find that lwIP variant parameter?

  13. Andrew D

    2.5.0-dev, but also tried and succeeded with 2.4.0 framework. Ide 1.8.5.
    echo dots v1 and v2. The LwiP variant parameter is found under "Tools->Lwip Variant" (when an esp8266 board is selected)

  14. Stuckey

    I have a Philips Hue Bridge v1.0 talking to three Philips bulbs. Having this bridge device will not help with the ESP8266 emulating Hue. The Hue bridge is a bridge between Ethernet and the Philips bulbs, which speak 2.4-GHz Zigbee, not 802.11, so the ESP2866 will not see the Hue bridge at all, except possibly as a (negligible) source of interference. I do wonder if HAVING a Philips Hue bridge, which has been around here for years and in use with Amazon Echo, precludes finding another thing (ESP8266 emulating Hue) that wants to be Hue. Not worth deconstructing and shutting down the existing Philips infrastructure here to find out; I'll find another way in.

    My current problem: the compiler error message: 'class fauxmoESP; has no member named 'onMessage'

    working on how to get 2.3.0 going.

  15. Carlos Yz

    Stuckey, the function call is different in 2.4.4 and 3.02 examples: 2.4.4 :

     fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state) 
    

    3.0.2

    fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) 
    

    and onMessage function exists only in version 2.4.4 and below causing the error, in my case

  16. Peter Feerick

    With v2.4.2 of the ESP8266 Arduino Core, I was able to get a ESP8266 'Witty' module working perfectly so far by setting the lwIP option to 'v1.4 Higher Bandwidth'. 'v2 Higher Bandwith' made the difference between the ESP8266 being discoverable by the Echo Dot Gen2, but would make the ESP8266 crash if I issued a voice command which asked for a specific brightness to be set. Simply on and off commands were fine, but soon as I asked for a specific brightness it would crash and the WDT would trigger a reset. 'v1.4 Higher Bandwidth' seems to have resolved that, and it is working great so far. Thanks for pointing that out as a possibility... I thought my new echo dot was going to be about as useful as a hockey puck! :D

  17. Luca Inox

    I tried to replicate your steps but no success. So i want to enumerate here what i did to find if i misunderstood your post. My enviroment is Echo Dot gen 3, Arduino IDE 1.8.7, ESP8266 library 2.4.2, FauxmoESP 3.0.2, board selection: Wemos D1 mini ( v2 lower memory). First i edited the src file templates.h in FAUXMO_DESCRIPTION_TEMPLATE i deleted this block "<iconList>" "<icon>" "<mimetype>image/png</mimetype>" "<height>48</height>" "<width>48</width>" "<depth>24</depth>" "<url>hue_logo_0.png</url>" "</icon>" "<icon>" "<mimetype>image/png</mimetype>" "<height>120</height>" "<width>120</width>" "<depth>24</depth>" "<url>hue_logo_3.png</url>" "</icon>" "</iconList>" i replaced FAUXMO_DEVICE_JSON_TEMPLATE[] with the block you published.

    Then i edited fauxmoESP.cpp

    char match[] = {"POST /api"}; char match[] = {"GET /api"};

    Then i edited the fauxmoESP_Basic.ino

    include "credentials.sample.h"

    fauxmo.enable(true); (i deleted fauxmo.enable(false); and again fauxmo.enable(true);)

    i left fauxmo.addDevice("light 1"); and deleted fauxmo.addDevice("light 2");

    Compiled everything successfully. Asked "Alexa find devices"..Alexa replays "ok...it will last 20 seconds, activate home automation skill...) then Alexa "No device found". What i did wrong???

  18. Stuckey

    If you have a Philips Hue Bridge on your network, Alexa will not discover your fauxmo devices. The solution is simple: 1) Disconnect power from your Philips Hue Bridge; 2) Tell Alexa to discover devices (fauxmo will be found, with the name you have given it; 3) Plug in your Philips Hue bridge. Now, Alexa will recognize your new device AND your Philips Hue lights will work normally; 4) If you decide to change the name of your fauxmo, you don't need to go though this again. Just tell Alexa to discover, she'll say no new devices, and in a minute or two, your new device name will be recognized. I'm using kakopappa's irdevkit.ino version found at https://gist.github.com/kakopappa/02299a8ceec0aaaad3ea3bd7f2af8066

    Works well. I can get four button-push commands out of it to a single device using the four binary states of 1) Command on while state is off; 2) Command off while state is on; 3) Command on while state is on; and 4) Command off while state is off. Right now, I'm using only three of these for a Somfy 3-button handheld remote.

  19. Arpad

    I apologize. I saved my post for the wrong issue. I'm going to copy it to #66, where it belongs. I'll also delete them from here, so Luca Inox's notes are also related to the other issue.

  20. Arpad

    There is a separate issue about the 3rd gen echo dot. (#66) Stuckey, you always link projects, that emulate Belkin. This backdoor is closed in the 3rd generation echo dot (And maybe in some 2nd gen firmware). The discovery is working perfectly, the Alexa even able to turn the light on, but after that it connects to the Belkin WEB API, and tries to get a confirmation about the device status (not from the device itself). As the result, Alexa will complain, and won't be able to control the light. (It means, you won't be able to turn the light off anymore.) You can see the connection to Belkin, and the actual message when you use the Alexa app. So please, don't offer different Belkin emulators to 3rd gen owners. For us, the last chance before writing (or using) Alexa skills is the Hue emulation. And this is what the fauxmo 3.0 was designed for.

  21. Log in to comment