r/homeassistant

Image 1 — I designed a silent, open-source curtain opener that runs on ESPHome
Image 2 — I designed a silent, open-source curtain opener that runs on ESPHome
Image 3 — I designed a silent, open-source curtain opener that runs on ESPHome
Image 4 — I designed a silent, open-source curtain opener that runs on ESPHome
Image 5 — I designed a silent, open-source curtain opener that runs on ESPHome
Image 6 — I designed a silent, open-source curtain opener that runs on ESPHome

I designed a silent, open-source curtain opener that runs on ESPHome

Hey r/homeassistant - I'm Daniel.

About 6 years ago (ya, long time ago) I set out to build an automated curtain opener. I wanted something to open my curtains automatically in the morning, but there were no products out there.

I initially open-sourced the project but it had many issues that I didn't have the time or skill to address. People have been reaching out to me over the years about it, so I finally decided to get it working again. I’ve learned a lot in the last 6 years, and have completely redesigned it so it’s working flawlessly.

The Ropener:

  • Retrofits onto your existing curtain rod.
  • Silent TMC2209 stepper motor.
  • ESPHome-native. Local-only. No cloud, no app. Drop the YAML in and it works.
  • Matter optional via Matterbridge for Apple Home / Google / Alexa.
  • Stall detection instead of end-stop switches (one less thing to align). Works on almost all curtain types.

Everything is open source:

  1. STEP files + STLs on Printables: https://www.printables.com/model/1725737-
  2. Firmware (ESPHome YAML) + PCB design (KiCad) + assembly docs on GitHub: https://github.com/Valar-Systems/Ropener
  3. License is Open Community License (OCL v1) - fork it freely for personal use.

Fair disclosure: I started selling an assembled kit at my shop valarsystems.com for people who'd rather not source parts and print everything. But the open-source release is the default — buying the kit is just the convenience path for those who want it. Everything works standalone.

Happy to answer anything about the hardware, firmware, ESPHome implementation, or the mechanical design. Will be hanging out in the comments for the next few hours.

Full demo video (1 min): https://youtu.be/kw-FztIAOuc

u/nutstobutts — 11 hours ago
▲ 0 r/homeassistant+1 crossposts

Custom AI voice assistant made with Home Assistant

I wanted to share a build, because I still can't quite believe how well it works and how easy Home Assistant made it to put together.

I wanted a voice assistant that could not only control my smart home, but also be conversationally intelligent, have its own personality, and actually sound like a real voice.

I assembled a mic and speaker and connected them via an ESP32 with ESPHome to Home Assistant. The mic picks up what I say out loud in the room. Then in Home Assistant's voice assistant tools, I added a custom wake word and connected the system to ChatGPT to handle my commands, comments, or questions. The tools even allow for the style of the response to be customised to give it a specific flair or personality. The response comes back from the AI and is routed via ElevenLabs to convert the text to speech, which then plays out loud through the device speaker.

The assistant is also exposed to all my smart devices, so it can control them when I ask and it's intelligent enough to read between the lines, so I don't need to specifically command every action. I can say "The kitchen is messy" and it knows to send my robot vacuum to the kitchen, rather than me needing to say "Send the robot vacuum to clean the kitchen".
And because I gave it a sarcastic personality, it'll usually have a dig at me first something like "Oh, the kitchen's messy is it? What a shocker."

I also use automations to trigger the voice assistant rather than always needing to activate it with a wake word. This means it can greet me when I come home unprompted, when my door sensor is activated.

The electronics parts are so cheap and easy to put together that I've got a device in every room for complete coverage.

I filmed the whole build if anyone wants to see it come together: https://youtu.be/p02rbeQ2Oe8

youtu.be
u/Rambunctious_Relf — 13 hours ago

Finally gave up on HA Dashboards and build a fully responsive home app with Lovable

Spent years tweaking Home Assistant dashboards.
YAML. Custom cards. Layout hacks. Endless “just one more fix.”

At some point I just gave up.
No matter how much time I invested, it never really looked great. So I started over.

Built a fully responsive home app in Lovable that integrates with Home Assistant and even talks directly to some devices using MCP. The UI changes throughout the day depending on context, presence, energy usage, and time.

Important part: this app doesn’t replace Home Assistant automations. HA still does the heavy lifting. This is the experience layer on top of it.

One app, mobile, tablet, desktop. Installable as a PWA. And very easy to make updates, tell Lovable what you need.

u/bsnel76 — 18 hours ago

🩷 this community!

Been involved in this community forever! (over 12 years I think judging by my son's age, my first project was baby monitoring.) I've never taken time to say how awesome I find you all here, every single one. Although I don't fit what seems to be the stereotypical active user from the forums, tech inclined 50+ yo male, I always feel welcome and supported. So many things have changed through the years and seriously I feel old saying it but you never to the scene guys have no idea how much easier it is now and how good you've got it, but I wouldn't trade the learning curve or experience for anything! I can only laugh at what once took maybe days or weeks to figure out comparably being solved in moments. I'm so grateful you're all here to share your knowledge and I never thought I'd find a bond with a community like this. Keep getting excited over tracking those kitty poops or whatever project it is thats getting you excited this week you silly old men, I love you all! 🩷 Xx

reddit.com
u/smallbaconfry — 14 hours ago
▲ 3 r/homeassistant+1 crossposts

Question about band names and local voice control in music assistant

Hey friends, I am using a fully local voice assistant set up to control my music library. Most of the time it works great, but there are some band names that it just cannot deal with.

For example, two of my favourite bands are Lagwagon and NOFX (40 year old white guy in the house!), and I have not figured out a way to say that with my slight Cape Breton accent that can be correctly transcribed.

I just set up a script that catches things like “play leg wagon” and “play leg wedding”, which is how whisper interprets me saying that , which works but clearly isn’t ideal. Before I continue down this dark rabbit hole, I was wondering how other folks deal with this.. I am using the small whisper model.

Initially, I tried tying in an AI, with the “process locally first” option enabled, in hopes it would work as a back up, but the extra delay was too much, and my wife was deeply unimpressed.

reddit.com
u/corganmurray — 11 hours ago
▲ 3 r/homeassistant+1 crossposts

Use a SwitchBot Keypad without buying the SwitchBot Lock (ESP32 + ESPHome)

The SwitchBot Keypad is kind of useless on its own — it only works if you also
buy a SwitchBot Lock, because the keypad just talks to the lock over Bluetooth.
I wanted to use the keypad as a local access controller for Home Assistant
without buying the lock, so I built a workaround.

It's an ESPHome external component that makes a plain ESP32 impersonate a
SwitchBot Lock over BLE. A real keypad pairs to it and sends its normal
encrypted lock/unlock frames; the ESP32 decrypts them and passes them to Home
Assistant as events. The keypad has no idea it isn't talking to a real lock.

The nice part is that every unlock event tells you how it was unlocked (PIN,
fingerprint or face) and which credential slot was used, so you can build
per-user automations — a different notification or action depending on who's
at the door.

Pairing is done through a small web UI hosted on the ESP32 itself: you sign in
to your SwitchBot account, pick the keypad from the list, and it does the BLE
pairing for you. No Python scripts, no laptop, no sniffing. After that it runs
fully local — just BLE and Home Assistant, no cloud. The AES key is generated
on the device and never ends up in your YAML or git.

I've tested it with the Keypad Touch and the Keypad Vision. The original Keypad
and the Vision Pro should work too since they use the same protocols, but I
haven't been able to verify them — would love reports from anyone with those.

Repo with the ESPHome config and setup instructions:
https://github.com/pierluigizagaria/switchbot-keypad-bridge

reddit.com
u/No-Yak-8477 — 13 hours ago
▲ 2 r/homeassistant+1 crossposts

How to force a specific pipeline for assist_satellite.start_conversation? (Bilingual Voice PE)

Voice PE puck set up with two wake words → two Assist pipelines:

- "Hey Jarvis" → Grok EN (Clara voice, EN STT)

- "OK Nabu" → Grok FR (Sylvie voice, FR STT)

Manual commands work great. The pain: inbound notifications via webhooks (SMS / Signal) that call assist_satellite.start_conversation to announce + listen hands-free.

start_conversation uses the puck's currently-active pipeline — i.e., whichever wake word was last used. So if I just talked to "Hey Jarvis", a French SMS arrives and Clara reads it with an English accent, then STT mishears my "oui" as "with"/"play"/etc and Grok gets garbage.

Things I tried that don't work:

- select.select_option on select.X_assistant and _assistant_2 before start_conversation — only rebinds wake-word → pipeline mapping permanently, doesn't override the active

pipeline for the in-flight conversation - Setting preferred_item in /config/.storage/assist_pipeline.pipelines — confirmed via test it does NOT override the satellite's bound pipeline for start_conversation

- No pipeline_entity_id parameter on assist_satellite.start_conversation (afaict)

Current workaround: skip hands-free entirely. Use tts.speak with explicit voice: SylvieNeural / ClaraNeural for the announce (correct voice, no mic open). Then I manually say "OK Nabu, lis mon dernier SMS" to read the body — that works because the wake word puts the puck on the right pipeline.

The question: is there a way to specify which pipeline start_conversation should use per-call? Or another service that opens the mic on a specific pipeline without going through the wake-word flow? Even editing storage to flip the satellite's "active pipeline" between calls would be acceptable.

HA 2026.5 / Voice PE firmware latest / Grok-based conversation agent. Cross-language home, both EN and FR daily.

reddit.com
u/racoon9898 — 12 hours ago
▲ 7 r/homeassistant+1 crossposts

I bypass-wired a smart ceiling fan and documented the terminology mess that almost killed me

I wired a Tuya WiFi ceiling fan in bypass mode so the wall switch acts as a Zigbee event input instead of cutting power to the canopy.

The typical: "smart device needs constant power, wall switch keeps killing it" problem.

I don't know if you guys have found yourself in the same situation, but truth to be told...

The wiring itself is not the hard part.
The hard part was figuring out what to even search for!!

Because the same trick have a dozen names across HA forums, Zigbee2MQTT, Sonoff docs.... I was getting confused, I did not even know what I was reading...

So here a list of terminology I have found.

Hardware wiring choice:

  • bypass wiring (HA community)
  • decoupled switch wiring (Z2M's name for the same thing)

Firmware feature on the relay:

  • detached relay mode (Sonoff)
  • decoupled mode (Z2M)
  • switch-only mode (Tasmota)

They can produce similar end behaviour but they are not the same thing.
...took me embarrassingly long to untangle.

So I wrote it all down.

Repo has diagrams, vendor PDFs, a parametrised HA automation, and a terminology table at the bottom of the README so the next person doesn't have to go through a similar situation:

https://github.com/agigante80/homeassistant-bypass-wiring-fan

The project is a Sonoff MINI-ZB2GS in a Spanish switch circuit, driving a Ovlaim DC ceiling fan, but the technique is brand-agnostic and the diagrams are editable Excalidraw.

PRs and feedback is more than welcome! :)

u/Gongshu — 17 hours ago

How are you using Roborock integration?

I've been thinking of scenarios where HA might be used for my Roborock, but I'm not able to find out what HA can do better/automate which I can currently do in its own app. I understand the need of centralising usage, but this is something which I'm not able to fully creative.

reddit.com
u/sydpermres — 20 hours ago

What smart home device unexpectedly became part of your daily routine?

I originally got into smart home stuff for the fun side of it, but some devices genuinely ended up changing my day to day habits more than I expected.

Robot vacuums might be the biggest example for me, because I stopped having to constantly think about the floors being dirty.

Curious what devices ended up becoming background infrastructure in your home instead of just a cool gadget.

reddit.com
u/Virtual-Path1704 — 23 hours ago

CarPlay Widgets

It would be nice to have a section that we could have our own icon/button widget right on the main home screen. Garage Door button would be awesome. Is there something in the roadmap for this?

u/TechTechno57 — 21 hours ago
▲ 1.2k r/homeassistant+1 crossposts

I built a little sourdough starter monitor

Edit: Alright nerds, due to popular demand, I made a GitHub repo as quickly as I could. Feel free to have a look and build the thing if you'd like to, and feel free to send me any critiques or changes you think should be made. I don't know what I'm doing so I'm very open to suggestions. The files and info can be found at https://github.com/ChronoConstant/Sourdough-Monitor. Have fun.

I like making things and I’m enjoying getting started with sourdough so when I started my starter this idea popped into my head and I decided to build it for fun.

At its core it’s really just an ESP32-c3 that uses a time of flight sensor to measure the distance from the lid to the top of the starter and uses that value to calculate how much the starter has risen. It sends and logs that data via MQTT to my Home Assistant dashboard which I have hung on the wall in my kitchen next to my stove. It also logs temperature and humidity as well as the time since the starter was last fed. I can trigger a feed from either the button on top or from the button on the dashboard and that tells the device to reset the rise percentage and log a new baseline height for the starter. Battery life is still up in the air but it’s looking like probably at least a month between charges so that works for me. The lid itself is just something I whipped up in Fusion and printed out. Not the most aesthetically pleasing but it’s functional.

The plan going forward is to begin logging the data in a more robust accessible database so I can use it to create some predictive algorithms for rise times in different temperatures and humidity.

It’s overkill but I’m enjoying the pretty graph and it scratches a little itch in my brain so I’m happy with the results.

Just to be clear I’m not selling anything. I built most of the code for the firmware with AI and just made adjustments where it was necessary. This is just a personal project I wanted to show off. I’d love to hear any critiques or ideas on how to improve it.

u/Chrono_Constant3 — 1 day ago

Crude key holder

Forgot a few times to lock the shed at night so used a window sensor to know if the keys are hung up. Use an automation at night to turn all the light off before going to bed and if the key is not hanging up I get a notification to check the shed and keys. A bit crude but functional

u/Dfes1989 — 1 day ago

Built an Auto-Pause system using mmWave Radar to keep my toddler from standing too close to the TV

Hi everyone,

I wanted to share a fun project I recently finished. Like many of you with toddlers, my daughter has developed a fascination with standing about two inches away from the TV screen. To protect her eyes and teach her to keep her distance, I decided to automate the parenting.

Whenever she gets too close (< 240cm), the TV automatically pauses. Once she steps back, it resumes. She actually adapted to it immediately and now stays behind the "invisible line" on her own!

Hardware

  • Sensor: Hi-Link HLK-LD2410C (24GHz mmWave Radar)
  • Board: M5Stack Atom Lite (ESP32)
  • Mounted directly under the TV edge (I initially hid it inside my wooden TV cabinet, but the wood density messed with the radar scattering).

The Netflix Hurdle: Everything works perfectly for apps like SmartTube and my local TV provider app, but the official Netflix app actively blocks state updates (playing/paused) via the Android TV integration. I had to build a bypass in Node-RED to ignore Netflix so the flow doesn't get stuck.

Demo & Code:

Has anyone else found a reliable workaround for reading the play/pause state of the Netflix app on Android TV?

reddit.com
u/Tuxabyte — 1 day ago

Ecobee Comfort Modes Not Switching

I cannot for the life of me get these “modes” to reliably switch from HA. Anyone have a fix or similar issue? The reason I want them to switch is so Ecobee uses the master bedroom sensor at night, and living room during the day.

Using HomeKit integration direct to HA

u/Plastic-Coat9014 — 22 hours ago
▲ 11 r/homeassistant+4 crossposts

Best Matter smart bulbs for long-term Home Assistant setup? Tapo, Linkind, Nanoleaf or Govee?

I’m planning to replace most of my home lighting and I’d really appreciate advice from people with long-term experience using Matter smart bulbs.

Current setup:

  • Home Assistant
  • MikroTik network (currently Wi-Fi 6, planning to move to a MikroTik hAP be3 with Thread Border Router support)
  • Mostly Tapo devices right now (smart power strips/plugs)
  • Apartment setup, starting with living room, dining room and hallways first
  • Gamer/tech enthusiast, but I care more about reliability and good lighting quality than RGB gimmicks

I’m intentionally excluding Philips Hue because the cost becomes very hard to justify where I live.

Right now I’m mainly comparing:

  • Tapo L535E
  • Linkind Matter RGBTW bulbs (especially the 1600lm A21)
  • Nanoleaf Matter bulbs
  • Govee Matter bulbs

Things I care about:

  • Good white light quality (important!)
  • Consistent color temperature between bulbs
  • Efficiency/power consumption
  • Low flicker/fatigue
  • Matter reliability
  • Home Assistant integration
  • Long-term ecosystem stability
  • Good brightness for common areas
  • Preferably local-first behavior

I discovered my current bulbs are generic ones 1055lm 6500K 12W, so the Tapo L535E would basically match my current brightness while using less power.

However, the Linkind 1600lm RGBTW bulbs look VERY tempting because of:

  • CRI90
  • 1600 lumens
  • 1800-6500K
  • RGBTW architecture

At the same time, I keep seeing mixed opinions about long-term software/ecosystem maturity compared to TP-Link/Tapo.

One thing I’m struggling with:
Should I keep using Matter over Wi-Fi for bulbs since my network is already good, or should I start investing into Thread/Zigbee for lighting before I scale further?

Some people say Wi-Fi Matter is perfectly fine unless you have huge deployments, while others regret putting dozens/hundreds of Wi-Fi devices on their routers.

Also:
Is mixing bulb brands in connected spaces (living room + dining room + hallways) visually annoying in real life? I’m worried different whites/tints/dimming curves will look inconsistent.

Would love to hear real-world experiences from people running these bulbs long term, especially with Home Assistant.

One thing I’m also trying to understand better:

Linkind explicitly advertises true RGBTW architecture, while Tapo mostly markets the L535E as RGBW + tunable white.

Does anyone know if the Tapo bulbs actually use dedicated warm + cool white channels internally, or are they partially mixing white through RGB?

In real-world usage, does this actually affect:

  • white light quality
  • color consistency
  • CRI perception
  • dimming smoothness
  • overall comfort

…or is it mostly marketing/spec-sheet differences?

reddit.com
u/IcyBlueberry8 — 1 day ago

Dumb Automation Question

Does this mean that the sensor needs to detect vibrations for 25 minutes before it turns on the output? I have a vibration sensor in the chair i sit in when I do meds to turn lights on, but the routine keeps starting over due to the length of time I do meds.

Thanks in advance

u/Ztuab — 1 day ago

Determine if a switch was manually triggered

If I look in the activity log for a switch device, it shows a difference between when a switch is turned on manually versus when it’s triggered by an automation. Is it possible to determine this from within another automation?

reddit.com
u/jllauser — 21 hours ago