Got my washer talking to Home Assistant over the weekend

Nov 01, 2026 Last reply: 3 hours ago 6 Replies
Jump to replies (6)

Finally got my washing machine hooked up to Home Assistant and it feels great to watch a real cycle status instead of guessing from a smart plug. I tapped a little ESP32 board onto the wires running between the display panel and the main board, set it up as a passive listener, and it just sits there reading whatever the panel shows.



Figuring out the data took most of Saturday. I ran a few short cycles and wrote down the bytes on the serial lines each time, changed the spin speed, changed the temp, and eventually the patterns clicked. Now I get the selected program, temprature, spin, options and the time left on the display, plus a simple sensor for wether it's washing, rinsing or spinning. Read only, I never send anything back to the machine. One thing I learned is that the panel only knows what it shows you. It has no idea what the pump is doing or how the water heating is actualy controlled, that stuff lives on the main board deeper inside and I wasn't about to crack that open on a machine that still works fine. Worth saying anyway, unplug the washer before poking around in there. Next weekend I'll add a notification when the cycle finishes so my other half stops asking me to listen for the beep.


I took the lazy route on my old Bosch and never opened the case at all. I clipped a current sensor around the cord where it plugs into the wall, paired with an ESP8266 in a project box next to the outlet. The power draw tells you almost everything you need: idle sits around 2 watts, filling and washing bounces around, and the spin cycle spikes hard enough that I can tell what speed it chose just from the peak. Not as pretty as reading the display, but it took an evening instead of a weekend. The part that took trial and error was the done detection. My first attempt fired the notification every time the machine paused to soak, which happened twice a load and drove us crazy. What finally worked was requiring the draw to stay under a few watts for a solid six or seven minutes before I call it finished. Machines dither around between steps, so a short dip means nothing. One thing I did pick up from my setup: log the raw values for a week before you write any automations. Every machine has its own rhythm, and ours does a wierd little mid-cycle drain-and-stop thing I never whould have predicted. Your byte-level approach is way more elegant, but for anyone nervous about opening a working appliance, the wall plug side gets you 80 percent of the way there.

I went even simpler than both of you on our top loader. Strapped a cheap accelerometer module to the side of the cabinet with a zip tie and a blob of hot glue, wired to an ESP32 sitting on top of the machine. The vibration signature is surprisingly consistent. Agitation has this slow rhythmic wobble, draining drops everthing to near zero for a minute or two, and the spin builds up in distinct steps that are easy to spot on a graph. Took a couple of washes to tune the thresholds, but now the automation knows when it goes from wash to rinse to spin without me ever touching the wiring inside. It also caught a problem I wasn't looking for: the machine started walking across the floor during spins because a leveling foot had worked loose, and the vibration numbers were way off normal before my wife noticed anything. Downside is I get no info about settings or time remaining, so if someone runs a delicate cycle I can't tell which one it was. For us the finish notification and fault spotting matter more than knowing the spin speed, but if you ever want door-left-open detection or a mid-cycle pause alert, the mechanical side tells you things the display never will.

I'm thinking about the cycle time data you guys pulled from the display. If you manage to pull the start and end times for each phase, you'll realize the variance between cycles, even using the exact same settings, is wild. Some machines take forever to transition from wash to rinse, which is prolly just inefficient programming, but it's a huge pain for scheduling. It might be easier to just monitor the duration of the diferent power spikes. Instead of trying to parse the raw display data, I bet a simple state machine coud just count how many of those distinct power-draw events happen per load. That way you're not reliant on the panel staying on.

Have you guys figured out if the 'idle' power draw stays consistent, or if it fluctuates based on ambient temperature, since that could mess up the state changes in a simple automation.

I think calling the power draw method 80 percent of the way there is an overstatement. While the current sensor is fine for big state changes like when the motor ramps up, it fundamentally cannot track progress in the same way. If the washer is just slowly filling with water, the power draw remains almost zero, so you lose any idea of how much time is left or where it is in the sequence. You are relying on a guess until the next major load spike occurs.

I'm curious about the protocol bit since I'm still learning this stuff. I tried using a simple current sensor on my older LG unit, but even that only tells me the power use, not what cycle phase it is. When you were reading the display bytes, did you have to write a lot of code just to figure out the specific data format, or was the information alredy laid out in a way that made the parsing simple? I'm a little nervous about messing up the delicate wiring on mine.

Update: the comment about cycles never timing the same was spot on. My finish notification keeps firing a couple minutes before the machine actually stops, because the countdown hits zero while it's still in the final spin. Thinking I'll wait for the display to go blank instead. Anyone tried watching the panel idle state that way, or does it stay lit after the cycle ends?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required