Here is my SatelLight - Redstone Lamp Edition.
A ceiling light appliance with Voice Assistant (Continues conversation), Presence Detection, Temperature/humidity/pressure/air-quality readings.
The parts that I used are;
- ESP32-S3 development board
- Ld2420 mmwave sensor
- PCM5102 Audio DAC
- inmp441 Microphone
- BME680 sensor
- 5V USB desktop speaker with 3.5mm audio jack
- AC/DC Converter - (220V to 5V-6A)
I don’t like the idea of having lots of devices in various places in one room. So what I generally aim is to have one multi device so everything is in one place and I don’t have to use all the plugs in my room and make a cable mess.
So I created a Minecraft Redstone Lamp looking ceiling light for my kids.
I’m using an AC/DC converter to get power from the ceiling directly. Convert it to 5V and power everything in the device. It can handle about 6-7A. That’s also why my favorite led strips are sk6812 ones. They are 5V ![]()
I have two separate led strips, one is inside the lamp itself around the inner tube and is 150led long. The second one is shining directly to the ceiling. Both lights are synced, so if I set it to any color both the inner main light and top ceiling light will be in sync. Lighting up the ceiling directly makes the room brighter.
I also use the top ceiling lights for voice assistant indications like while speaking, while listening, while answering etc. I’m using strobe effect currently but I’ll change that to something softer I guess ![]()
The SatelLight is directly connected to home assistant so I can make announcements or play music via music assistant and directly from within Spotify or airplay.
With the LD2420 I have presence detection and the lights are turning on if it’s after sunset before the bed time. After bed time the light turns red about 30% if there is presence so if the kids get scared or just wanna go to the toilet they can see around. I have to do some threshold adjustments but it is working just fine. Except the ld2420 has a chronical issue where after OTA the sensor does not read anything. You have to cut power and power it again.
The speakers are just simple 5v desktop speakers, I got rid of the shell and used the parts inside it directly to fit them in my device. The sound is not bad. It is loud but doesn’t have that much of a punch as you might guess. ![]()
I’m using one microphone for voice assistant. I wasn’t able to use two microphones for some reason so I found a voice assistant code that was using just one inmp441 and build everything on top of that. I could not find the original repo because there are lots of different forks of this but whoever wrote it: You are the mann ![]()
I also added continues conversation to the voice assistant. So I added a tweak to my system prompt so if I say “thanks” or “thank you” in my request the LLM will add “goodbye” to it’s response. After that the esp will check the response and if it sees “Goodbye” it will end the conversation.
Power on peak is 34W, and that is all lights are 100% both rgb and white channel + playing music while presence detection etc. I’t is hitting the limits of the power supply. That’s why I’m going to limit the lights from ever going 100% and maybe limit them to 80% just in case. Still working on that on how to do it in esphome.
I’m still developing this and I break stuff from time to time. For example after I uploaded the build video I created a bug where after boot the ceiling light is flashing constantly. Have to fix that. But I wanted to share it ![]()
Github repo for STL files and yaml code:
Build process:



