Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm totally with you, except a notification that it's finished would actually be really helpful.

It's apparently possible to track a washing machine's progress with a smart switch that monitors power draw; I've got one lying around so might try to implement that soon, to complement my hacky RPi-Ring-doorbell-announcer :)



This is the best approach, if you can do it. Keep the devices dumb and add in whatever modules you need on top to make them as "smart" as you want them to be.


Some Ikea stuff does it halfway. Local-only Zigbee, so it's not exactly dumb, but if you want to go online you can buy a gateway.


Wait an hour. It’s done.


Our washing machine offers various programs between 30 minutes and 2 hours and 40 minutes.

Yes, it's not hard to set an alarm, except the timing on the washing machine is unreliable (I've lost count of how many times I've set an alarn with a few minutes extra and still had to wait longer.) It would just be nice to have a little notification - making that chore 1% pleasanter. :)


They all make a sound when done, you could set up a SoC with a microphone to listen to it. Or monitor power draw. Many ways to do it externally.


My worry would be that you'd have to do some diagnostics on the audio to determine the actual sound. The loudest noise my washer makes is the spin/rinse cycle, which is right before the sound it makes when it's done. You can't just key off of "loud noise" and I don't know how hard setting up to listen to specific frequencies for alerting is.


> You can't just key off of "loud noise" and I don't know how hard setting up to listen to specific frequencies for alerting is.

Fast fourier transform on the audio would give you volume for each frequency range. That probably requires some DIY hardware & programming.

But a power metering plug would be a cheap off-the-shelf solution. Find the ones pre-flashed with ESPhome for ~$15-20, find thresholds for ON/OFF with a bit of trial and error, and you're done.


Yea, I'm for sure that it's possible, but it's harder than just getting a sensor for noises larger than some Db.


Then key off of "noise, noise, noise, noise....no noise, no noise, no noise". Done. Can maybe even attach a vibration sensor to the machine...


Even easier than that: Amazon's Echo devices can be set up to detect beeps.

I have one in my kitchen, near the laundry room, and one in my home office. When things beep in that area, the one in the office says "Beep, beep." (I could have it do other stuff, but this was simple.)

It works for laundry. And the dishwasher. And the Instant Pot. And any other beepin' thing. It's just a remote beep detector.

(And if it detects beeping for 2 or more minutes, it notifies my phone, since that presumably means that my house is on fire.)


> It's apparently possible to track a washing machine's progress with a smart switch that monitors power draw;

Can confirm, it's what I do. I can even detect which part of the cycle it is in using plain Home Assistant template sensors.

It's crude but it works. Detecting washing vs not is trivial, but I went the extra mile, looking at the power history and analysed the thing visually to get the general profile of each part, taking into account peaks, throughs, noise to have some unambiguous rules. Some are wrong if taken in isolation but taking the order of priority into account, flattening the result with if/elif in a single state sensor it becomes correct. That strategy is also very easy to debug visually with a entity history list in the dashboard.

I could probably also detect error states (which I had a few, like filter clogged with lint preventing water drain) as in this case the panel stays lit with the error code basically forever VS a normal cycle has it lit but ultimately it shuts down to deeper sleep states once it's done.

I really enjoy making dumb devices smart, it's a nice decoupling too and means I can just change e.g washing machine if it dies, adjust a few values below, and be all the merrier.

(nixos config, but it's a 1:1 to YAML and you get the idea)

    services.home-assistant = {
    #...

    config = {
    #...
      template = [
        # washing machine
        # 5-6W: on (idle, panel lit)
        # 4-5W: off (sleep after on, panel unlit)
        # 0.1-1W: off (deep sleep)
        # 2100-2200W: water heating
        # noisy 8-100W, trough 10W: washing
        # ramp-up 15-500W, plateau 300-500W, noisy 100W: spin dry
        # 1300-1500W, trough 40W-150W: tumble dry
        # 7.5-8W 240s, peak 95-105W, 20-25W 30s: cooldown
        {
          sensor = [
            {
              name = "washing_machine_power";
              unit_of_measurement = "W";
              state_class = "measurement";
              state = "{{ states('sensor.shellyplusplugs_80646fc7bb4c_switch_0_power') }}";
            }
            {
              name = "washing_machine_state";
              state = ''
                {% if is_state('binary_sensor.washing_machine_heating', 'on') %}                          
                  heating
                {% elif is_state('binary_sensor.washing_machine_drying', 'on') %}
                  drying
                {% elif is_state('binary_sensor.washing_machine_spinning', 'on') %}
                  spinning
                {% elif is_state('binary_sensor.washing_machine_cooling', 'on') %}
                  cooling
                {% elif is_state('binary_sensor.washing_machine_washing', 'on') %}
                  washing
                {% elif is_state('binary_sensor.washing_machine_idle', 'on') %}
                  idle
                {% elif is_state('binary_sensor.washing_machine_sleeping', 'on') %}
                  sleeping
                {% elif states('sensor.washing_machine_power') | float(default=0) < 0.01 %}
                  off
                {% endif %}
              '';
            }
          ];
          binary_sensor = [
            {
              name = "washing_machine_active";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 30 }}
              '';
              delay_on = { minutes = 2; };
              delay_off = { minutes = 2; };
            }
            {
              name = "washing_machine_heating";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 1900 }}
              '';
              delay_on = { seconds = 5; };
              delay_off = { seconds = 10; };
            }
            {
              name = "washing_machine_drying";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 1000 and states('sensor.washing_machine_power') | int(default=0) < 1600 }}
              '';
              delay_on = { seconds = 5; };
              delay_off = { seconds = 120; };
            }
            {
              name = "washing_machine_washing";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 30 and states('sensor.washing_machine_power') | int(default=0) < 150 }}
              '';
              delay_on = { seconds = 120; };
              delay_off = { seconds = 45; };
            }
            {
              name = "washing_machine_spinning";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 150 and states('sensor.washing_machine_power') | int(default=0) < 500 }}
              '';
              delay_on = { seconds = 5; };
              delay_off = { seconds = 5; };
            }
            {
              name = "washing_machine_cooling";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 6 and states('sensor.washing_machine_power') | int(default=0) < 30 }}
              '';
              delay_on = { seconds = 90; };
              delay_off = { seconds = 60; };
            }
            {
              name = "washing_machine_idle";
              state = ''
                {{ states('sensor.washing_machine_power') | int(default=0) > 1 and states('sensor.washing_machine_power') | int(default=0) < 6 }}
              '';
              delay_on = { seconds = 1; };
              delay_off = { seconds = 1; };
            }
            {
              name = "washing_machine_sleeping";
              state = ''
                {{ states('sensor.washing_machine_power') | float(default=0) > 0.01 and states('sensor.washing_machine_power') | int(default=0) < 1 }}
              '';
              delay_on = { seconds = 1; };
              delay_off = { seconds = 1; };
            }
          ];
        }
      ];


Sometimes I feel a little dumb here. I don't know what kind of master of evil would wake a day and think about hacking the vault that keeps their underwear safe and sound, but I love it.

Now is time to add "flamethrower_mode", lock online and send mail offering the regain_access_to_your_precious_cozy_pajamas code for a fair fee, and became the hidden kings of the undieworld with our "pay_per_brief" program. Muahahah!


I guess it might be quite fun to graph that and overlay the graph of the current cycle over an original benchmark - it might indicate when, for example, the heating element was no longer working as efficiently.


I imagine that would get complicated pretty quickly. Water takes significantly longer to heat up in the winter just because it's so much colder to begin with.


Similarly basically all washing machines today weight laundry and stuff then tune cycle duration, amount of water, drying time (if applicable), etc...


My Miele washer and dryer send me notifications when done.


That is, I think, the only valid use case. I have an AEG washer that does some voodoo to decide wash times and only shows the estimate at the start, then it weighs the clothes, looks at how dirty they are and so on. The washer is two floors down and I never know when it’s actually done. As a side note, I think my washer is “smart” ready, meaning it has all the electronics already in and the panel has the lights already installed, just that it’s not activated because a didn’t pay another 100 euros for it.

I guess another use case would be measuring water and energy consumption but I doubt that people paying top dollar for these appliances are the type to keep an eye on such things.


"but I doubt that people paying top dollar for these appliances are the type to keep an eye on such things."

Some people do - to brag in their circles (and to their own consciousness) how green they are. So then you can go flying around the world for fun with a clear consciousness ...


I sometimes use it to start the machine remotely when I'm away the whole day, so I can time it to be ready when I get home and can switch over the clothes to the tumbler immediately.


You can use Bluetooth for that though, and it would probably be cheaper.


Bluetooth requires a paired device and has range issues.

I'd see the internet connected route as useful for anyone in the household to be able to check notification without having to pair all the phones (and then what if you don't want it on a phone), and getting the notification when outside. Now it would better with a home server dealing with the data, but we're so far from that.

In general I see bluetooth as fine for personal wearables (headphones) and not great when a device is shared (bathroom scales, smart plugs, switches etc)


ISTR you can use a Bluetooth beacon without pairing. Range might be mitigated by using a decent antenna, but might run into legal power limits.


Definitively possible. It’s what I do with my dumb washing machine. Just have your home automation tool of choice notify you if power draw moves below 5w or something.


We live in a smaller appartment building with a shared laundry room with two machines. They both say exactly how many minutes the laundry has left so we just set our timer for the last machine. They take between 35 and 55 minutes per run. We can run 6-8 machines in the five hour slot we can book. Since they slowly get desynced depending on what program you run, there is no need to get a notification. You have 20 minutes to sit until the next machine needs taking care of :-)


Even dumber: I sense when the washer door has been closed longer than 70 minutes (the longest cycle is just shy of that), and start making a loud noise, which continues until the door is opened.

Simple as that, no wireless components required. I simply leave the door open when the machine isn't running.


People want notifications so they knew immediately when the laundry is ready: Either to take it out before it gets musty, or to start another load as soon as possible.


I have the very simple one. I can hear it across the apartment, because the spinning is noticeable. The actual washing is even louder.


   Siri set a timer for *looks at washer screen* minutes
That's it. But tbh wish my smart speakers would learn all the appliance chimes instead.


My dryer will straight up lie to me and say “20 minutes” for anything between 0 and 60 minutes. I think it realizes the clothes are still too damp and just keeps running, but whatever differential equation it’s using to predict time remaining seems flawed.


When that happens to me, my solution is to pause the cycle, clear the lint screen, and resume. Lint screen is always cleaned before a cycle, but sometimes a single load produces enough lint to be a problem.

And having written that out, now I want a notification from my dryer when it’s not making progress as fast as it expects…


My dryer timer is reasonably accurate, but on my washing machine the last two minutes are like the last two minutes of a football game.


Yep - ours seems to take 0-10 minutes longer than it predicts at the start.


My washing machine is a liar, I'll start a 3 hour program and in 10 minutes it'll say 2h20min remaining. Sometimes I check up on it and it says 20 minutes remaining, but it then takes another 30-40 minutes until it's actually done.


You are still dependent on a smart gadget but with less quality.


NSA filters the power to sensitive computers.

You can exfiltrate encryption keys if you can monitor power usage.

https://www.securityweek.com/platypus-hackers-can-obtain-cry...


That link doesn't support what you're saying.

Someone might be able to do that if they're monitoring power usage directly on the CPU with >microsecond precision for an extended period of time, not with a power metering plug that gives a fairly inaccurate reading at the wall every second or two, after having gone through the power supply transformers, rectifiers, capacitors, and containing noise from every other component in your device.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: