The bug of home automation has bit me again. I've half played with home automation several times over the years. It started out with X10 (which I still think I have in a box somewhere). Then, a few years ago, I attempted to look at Home Assistant. At the time, I was just dabbling, and it was over my head. Then, just recently, I stumbled across WebThings by Mozilla.
As I read about it, it was everything I wanted in a home automation system. I don't want to be tied to some proprietary hub and a proprietary online service. And I guess I didn't really want that online service to know every time my bathroom light was turned on. I'm not exactly a huge privacy nut, but having a cloud service be an integral part of being able to control lights in my house just rubbed me the wrong way. Webthings promised not to be that.
So, I downloaded the image and burned it to an SD card and slapped it in a rPi 3B+ I had and made an order on Amazon for a HUSBZB-1 combination Zigbee and ZWave USB controller and a ZWave Smart Mini Plug. It all went together pretty smoothly. The controller was automatically recognized. I was able to include the smart plug into the ZWave network on the first try. This was great! In no time I had a couple rules made so that the lamp I had plugged into the smart plug would turn on at sunset and off at 11pm. Then turn it on again in the morning for my workout.
So far so good! This home automation thing is going to be easy!
After that, I got to thinking about an idea my wife had about having some RGB lights under the cabinets in the kitchen. I had played with some ESP32s and WS2818b RGB LEDs in the past. I bet I can make something with those that could be controlled by WebThings! Sure enough, there's an Arduino library to create "Native WebThings".
I had a few goals for this project:
- Be controlled by WebThings
- Be able to use a captive portal to connect the ESP32 to my home network (I don't want to accidentally check my wifi creds into GitHub).
- Be able to not only control the color, but also be able to fade the brightness over time, turn it into a giant rainbow, set different color patterns, etc.
- Support OTA firmware updates (this may be a stretch goal)
That's where I'm at now. More to follow!