I'm looking into some DIY projects for tracking the status of big appliances. The idea is to use small e-ink labels near the unit that update automatically, showing things like when a cycle is finished or if it is currently running. It seems like a neat way to reduce that constant question in the house, without needing a full camera setup or fancy screens. I saw some setups using ESP32 chips running ESPHome and communicating with low power BLE tags to handle the visual updates. I'm curious about the best approach for integration. Should I be building out custom logic for every status change, or is there a better way to hook into the manufacturer's standard API to trigger the status changes on the tag itself? It seems like the main hurdle is keeping the system robust since these tags are running on coin cells. Does anyone have experiance managing power consumption effectively when setting up these kinds of quick status indicators? I'm trying to avoid complex code and keep it as simple as possable while making sure it doesn't drain the batteries too quickly.
Thoughts on using BLE tags for basic home automation status updates?
Oct 31, 2026
Last reply: 10 hours ago
7 Replies
First reply
I did almost exactly this for our washing machine last year, except I skipped the BLE tag route entirely. I have a Waveshare 2.9 inch panel wired straight to an ESP32 that lives on a phone charger behind the machine, and honestly that solved the power problem for me. Since the…
Read the full replyI did almost exactly this for our washing machine last year, except I skipped the BLE tag route entirely. I have a Waveshare 2.9 inch panel wired straight to an ESP32 that lives on a phone charger behind the machine, and honestly that solved the power problem for me. Since the unit is plugged in anyway, the tag never needs a battery, and e-ink only draws current when the image changes, so the whole thing sips almost nothing between updates.
For the status itself, I went simpler than most people here woud suggest. I taped a current clamp sensor around the appliance's power cord and just watch the draw. Under a few watts and steady means it finished, high draw means it's running. No cloud account, no manufacturer integration, nothing to break when they update the app. The ESPHome config is maybe forty lines.
The catch with coin cell tags is exactly what you're worried about. A friend of mine tried the cheap shelf labels and they died within a couple of months becuase they poll constantly. If you go that way you'd want something that only wakes on a BLE advertisement rather than scanning, but even then the math rarely works out for frequent updates. I set mine to refresh only on a state change, so it might sit for two days showing 'clean' and never wake up. Battery backed tags just can't behave that way without clever firmware, and clever firmware is what you said you wanted to avoid.
I went the other direction from the wired setup above and stuck with battery tags on purpose, and after two years I still think it was the right call for us. Our dishwasher sits on a circuit that gets switched off at the breaker sometimes, and the washer lives in a spot where running a cable would have meant an ugly cord across the laundry room floor. A self contained tag just sticks on and forgets about it.
The power math works out better than people expect because e-ink only costs you a burst of current when the image actually changes. Ours update maybe a dozen times a day at most, and the coin cell in the first tag lasted well past a year before I swapped it. The trick is that the tag sleeps basically all day, so the update frequency matters way more than anything else. For the integration side, I would not write custom logic per appliance. I use OpenEPaperLink with a small ESP32 gateway, and Home Assistant just pushes a new image when the smart plug the dishwasher runs on changes power draw. Current above a threshold means running, current dropping to nothing means done. No talking to the manufacturer at all, which I consider a feature since their cloud stuff can change or die any time.
The honest downside is range. My gateway sits about one wall away and occasionally a refresh fails and retries a minute later, which is fine for this use case.
I'm trying to wrap my head around this because it seems like knowing when the dishwashers are done is really tricky. If I just watch the power draw, it's hard to tell if the machine is waiting for the water to heat up, or if it is truly finished with the whole cycle. The status usally just changes when the power cuts out completly. How do these little e-ink displays know if the washer is paused between steps or if the whole job is done?
I am curious about the granularity of state detection when monitoring appliances with fluctuating power draws. If the system is predicated solely on current consumption, how reliably can we differentiate between a machine that is actively paused versus one that has simply transitioned into a brief holding state during the cycle? Typically, a pause maintains a minimal but consistent auxiliary power draw, yet this is insufficient for a precise e-ink status update without incorporating duration thresholds into the microcontroller logic. This may necessitate a bit more complex timing within the ESPHome configuration than simply watching for voltage fluctuations.
I found that relying solely on the current measurement isn't reliable enough to distinguish between a short pause and the cycle being completely done. What worked for me was adding a time-based logic on top of the ESPHome setup. I coded the system to assume the machine is still running if the power draw is consistent but low for more than twenty minutes. That way, if the cycle actually stops and the power drops to zero, the timer resets and changes the status. It makes the whole system much more dependable than just watching the milliwatts fluctuate. I use that logic for my dryer too.
I always thought those current sensor setups were too finicky for a typical home enviroment. Trying to interpret tiny fluctuations in power draw to tell if something is just idling or truly finished is just a waste of time. I remember a friend of mine rigging a simple accelerometer or even a microphone on a nearby shelf. If the vibration or noise dropped completely for a certain window of time, he knew the job was done. It is a brute force method, sure, but it avoids the math problems that arise when you are trying to track a vague power signature.
Update: went with a plug that tracks power use and it caught the running vs idle part pretty well. The messy bit is what a couple of you pointed out, the dishwasher sits at near zero watts between heating phases, so I keep thinking it's finished when it's just mid-cycle. How do you all set the cutoff without it firing early? Anyone using vibration or door sensing instead?
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required