this post was submitted on 02 Dec 2023
26 points (100.0% liked)

homeassistant

11878 readers
1 users here now

Home Assistant is open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Available for free at home-assistant.io

founded 1 year ago
MODERATORS
 

I've got an antique lamp that needs a new switch knob, but then scope-creep happened and now I want to "smartify" it. I started off thinking that, since it has a metal body, I'd install a capacitive touch switch, but now it's escalated to wanting to put an ESP8266 or ESP32 in it to handle the capacitive sensing, Home Assistant connectivity/control, and maybe even switching to some kind of low-voltage RGBW LED instead of a 120VAC Edison-base bulb (especially since I suspect I'd need some kind of antenna sticking out the top, since the metal lamp body would presumably otherwise block the ESP32's signal).

The lamp, BTW:

(Apparently it's a Genie lamp by Laurel Lamp Company, in case anybody cares. Also, the lamp shown is the same model, but it's not my picture.)

I'm aware that the "easy" way would probably be to just screw a smart light bulb into the socket and wiring I already have, but (a) I'm picky about both avoiding "clouds" and using FOSS firmware, and I don't feel like sorting through the junk on Amazon to figure out which ones can be flashed with ESPHome, and more practically (b) that wouldn't let me turn it on and off just by touching the lamp body, which is what sent me down this rabbit-hole in the first place.

Anyway, I know this sort of thing can be done, but I'm not completely sure how. I know I could figure it out myself eventually, but I figured it couldn't hurt to ask for advice in case somebody happens to be able to rattle off part numbers for the whole BOM off the top of their head, or knows exactly the right ESPHome howto to point me towards, or something like that. Any advice is welcome!

(In case it's relevant: my level of experience is that I programmed an Arduino to run neopixels (WS2812 RGB addressable LEDs) once, I've flashed ESPHome on some Sonoff S31 smart switches, and I'm a software engineer by trade but have never worked on anything IoT related professionally.)

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 11 months ago (2 children)

That's what I'm doing now (with one of my Sonoff S31s flashed with ESPHome), since I can't use the mechanical switch. It's not ideal because I would like to be able to turn the lamp on and off at the lamp (but in a "smart" way rather than mechanical) and the smart outlet switch is down behind a dresser where I can't easily reach it.

[–] [email protected] 4 points 11 months ago (1 children)

The only real way I've found of doing stuff like this is another smart button or switch nearby. I use my buttons for whole groups of lights and toggles based on current state and whether you short/long/double click the button.

[–] [email protected] 2 points 11 months ago (1 children)

A single ESP32 dev board and a 120VAC-> 5V power supply module should be all the hardware necessary to read a touch sensor, talk to Home Assistant, and control RGBW LEDs. I figured the tricky bits would be (a) the software to get the three different functions to all run at the same time (I'm hoping that ESPHome might reduce that to a "configuration" problem instead of a "programming" one), and (b) finding a nice, bright, RGBW LED in a suitable form factor (one that isn't a smart light bulb, but instead replaces the lamp socket itself).

I'm not really interested in solutions that require multiple microcontrollers or that aren't actually better than using a smart switch or smart bulb.

[–] [email protected] 1 points 11 months ago (1 children)

Well yeah. I guess if you want to DIY a solution there's a lot more you can do. My issue is building a polished finished product rather than exposed wires and a switch, since I have the wife approval factor to consider now. So it's easiest for me to buy a smart outlet and a button or switch vs wiring up my own solution and trying to 3d print a case these days.

[–] [email protected] 1 points 11 months ago (1 children)

The idea is that, with the exception of the LED assembly and antenna, it'd all fit inside the hollow lamp body. There's plenty of space: I could even fit a Raspberry Pi Zero (or maybe even Model A) in there if I wanted.

[–] [email protected] 1 points 11 months ago (1 children)

You could even just take the switch apart and rewire it to an IO pin, and then actually control the bulb socket with a relay. In that case you could have it truly integrated and nobody would notice a difference.

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

That would work if I wanted to settle for just on/off control of the light bulb and give up on the idea of controlling the hue and color temperature of an RGBW LED.

Basically the issue I'm running into is this:

  • on/off control of the lamp with HA by itself -- easy (it just requires a smart outlet, which is what I'm already doing)
  • hue and color temp control of the light by itself -- easy (I could just buy a smart bulb to do it)
  • capacitive on/off control of the lamp by itself -- easy (I could just buy a capacitive switch for <$10)
  • capacitive control of the lamp and control with HA -- moderate (all I need is an ESP32, but I might have trouble with the lamp body blocking the wi-fi signal unless I figure out a way to add an external antenna)
  • capacitive control of the lamp and control with HA and hue and color temp control of the light -- hard (it's a full-blown engineering project involving creating a custom LED housing to replace the lamp's Edison socket, or at least modifying a smart bulb to add a capacitive touch input attached through the bottom of the socket to the lamp body somehow)
[–] [email protected] 1 points 11 months ago

Yeah, I do something similar to Andrew; bought a few IKEA tradfri buttons and remotes, and set them up to toggle lights or media in various rooms.