A while ago, my mom bought me this neat little spirally table lamp for Christmas that looks cool and totally fits my style! However, all of my other lights are automatically controlled via Philips Hue and sadly this spiral lamp just isn't compatible with that as-is. It has a white LED strip inside with adjustable color temperature and brightness but doesn't remember those settings whenever it loses power, so it always defaults to warm white which means that I can't just plug it into a smart plug to control it (I'm a 5000K daylight white kind of guy). I also have a variety of different lighting scenes set up in Hue and my lights rarely stay at just one color and brightness, so ideally this lamp should be able to sync its color and brightness to match. A bright white lamp would totally ruin the vibe of my green-and-purple or deep-orange nighttime scenes.
Fortunately, the construction of this lamp is quite simple and easy to hack. The white flexible plastic diffuser in front of the LEDs just pops out with minimal force, and underneath it is some basic white LED strip affixed to the inside of the lamp with double-sided tape. I peeled out the existing LED strip and replaced it with some DotStar addressable RGB LED strip cut to the same length, which ended up being 51 LEDs in total - just under a meter.
I then turned my attention to the lamp's microcontroller and power supply. The base of the lamp was almost totally empty and just contained some wire terminations, as its microcontroller was actually installed in a little enclosure inline with the lamp's power cord. I snipped out the existing cord and installed a regular DC barrel jack in the hole left behind (which was conveniently the correct size to accept my standard barrel jack) so it could be powered by a standard 5V power supply.
To control the DotStar strip, I installed an ESP8266 into the base of the lamp. It's socketed onto a little piece of protoboard that's stuck to the inside of the base with 3M VHB so it hopefully shouldn't ever come loose.
The ESP8266 was programmed with ESPHome so that it could be easily controlled over Wi-Fi from within Node-RED, the visual programming language that I use for home automation. Inside of Node-RED, I created a script that watches for the state/color of one of my nearby Hue lights to change, then reads that light's new RGB value and forwards it onto the ESP for it to match. That way, the color and brightness of this lamp is always automatically synced with the rest of my Hue lighting setup.
I'm pretty happy with how it turned out! The lamp looks great on my couch side table and adds some much-needed light to this previously dark corner of my living room, all while matching the vibe of the rest of my lights.