thebigpotatoe / Super-Simple-RGB-WiFi-Lamp

A project based on the ESP8266 and WS2812b
MIT License
66 stars 28 forks source link

Add support for Amazon Alexa #40

Open thebigpotatoe opened 4 years ago

thebigpotatoe commented 4 years ago

Received an idea to add support to the project to amazon Alexa using the library FauxMo. I personally think this is a great idea that would enhance the functionality of the light along side the web-page. Any ideas or experience to share is welcome!

LarsMichelsen commented 4 years ago

I recently created a device integration module for the home automation system Home assistant (https://www.home-assistant.io/) to integrate the lamp with it. I used the existing websocket interface of the lamp to connect them which worked pretty good.

My initial thought was to solve this via MQTT, which would have been easier to integrate with Home assistant. However, I discarded this, because an additional external API would increase the complexity of the lamp firmware, just to cover a rather special case.

I'm not sure if the direct Alexa support is really that helpful. Maybe an intermediate step via a home automation solution is better?

thebigpotatoe commented 4 years ago

I love home assistant. I use in in conjunction with node red to hook everything of mine in the house together since everything comes with a different API's these days. Its amazing what you can do with it, but the short fall for most people is that you need to run a server 24/7 either on a spare PC or a pi.

What I liked about the library FauxMo was that it connects to Alexa without another hub. It opens up another http API on the esp which can be used by Alexa to control the device. I really liked this as many people are buying into home hubs these days , particularly alexa and google, and it would be nice to offer this out of the box for those who don't have the ability to set up something like home assistant.

Case in point is I own a lot of LIFX bulbs. I've hooked them into node red and home assistant for automation, but I always find myself just asking google to turn them on and off when required. Its just a more convenient way than opening a web page on your phone and doing the same thing.

But your right, I think opening up the ability for this repo to talk more protocols would be important. I like the idea of MQTT (which I use a lot also) to do this as it seems to be the go to protocol when people are playing with home automation. It's also supported out of the box by node red and home assistant which is helpful.

Which library do you use for mqtt?

LarsMichelsen commented 4 years ago

Wow, never used node red before. Looks pretty interesting.

You're probably right. Because of its widespread use, Alexa integration will be quite interesting. Personally, I am not a fan of the system, even though it is technically interesting. It would be great to have a similar powerful system without having a public cloud connected microphone in the living room ;-).

I have not yet implemented an arduino device with MQTT.

thebigpotatoe commented 4 years ago

Wow, never used node red before. Looks pretty interesting.

It's amazing. I used it heavily in debugging the original source of this repo as it has websockets built in. Highly recommend it for HA and IoT.

Personally, I am not a fan of the system, even though it is technically interesting.

Agreed, but this is where regular consumers are at, so bringing it onboard will hopefully entice new users of this repo.

I have not yet implemented an arduino device with MQTT.

I'll shortcut you some time. Ignore PubSubCLient, it uses blocking IO. Use async-mqtt-client or my fork of it . Its an amazing library, does all you need, easy to setup, super stable.