Washing machine state sensor
-
@Moshe-Livne Not very pretty or efficient, but works perfectly. :stuck_out_tongue_closed_eyes:
http://forum.mysensors.org/topic/1530/mysensoring-a-ge-washer
http://forum.mysensors.org/topic/1529/mysensoring-a-ge-electric-clothes-dryer
@ServiceXp looking for non intrusive. I have encountered problems last night with detecting the beeps as the cheap sound detector modules are, surprise surprise, not very good. I have ordered some better ones. Another option would be to monitor current (heaps of examples so it should be easy)
-
@ServiceXp looking for non intrusive. I have encountered problems last night with detecting the beeps as the cheap sound detector modules are, surprise surprise, not very good. I have ordered some better ones. Another option would be to monitor current (heaps of examples so it should be easy)
@Moshe-Livne I tried a bunch of "wattage watching solutions" and non of them worked very well, but that was also using Vera as my controller (now using HomeSeer). We use 4 different cycles which may have caused some of those problems we encountered also.
-
@Moshe-Livne I tried a bunch of "wattage watching solutions" and non of them worked very well, but that was also using Vera as my controller (now using HomeSeer). We use 4 different cycles which may have caused some of those problems we encountered also.
@ServiceXp I was thinking of having the logic in the arduino. should be simple, no? current drawn - in cycle. no current for 5 min - cycle ended. what am i missing?
-
@ServiceXp I was thinking of having the logic in the arduino. should be simple, no? current drawn - in cycle. no current for 5 min - cycle ended. what am i missing?
@Moshe-Livne With a current sensor you might even be able to profile each cycle.
eg: current ~5amps for 3mins = rinse
current ~8amps for 8mins = wash
current ~10amps for spinNo, not really necessary, but A+++ for cool factor!
-
@Moshe-Livne With a current sensor you might even be able to profile each cycle.
eg: current ~5amps for 3mins = rinse
current ~8amps for 8mins = wash
current ~10amps for spinNo, not really necessary, but A+++ for cool factor!
@gregl Oh super useful! predictive finishing! can calculate when the cycle will finish and by triangulating my position and using google maps calculate how long it will take me to arrive and let me know i am late for taking out the washing!
Or it can do a prep talk to the dryer, getting it all worked out for the upcoming laundry :-) -
@ServiceXp I was thinking of having the logic in the arduino. should be simple, no? current drawn - in cycle. no current for 5 min - cycle ended. what am i missing?
@Moshe-Livne said:
@ServiceXp I was thinking of having the logic in the arduino. should be simple, no? current drawn - in cycle. no current for 5 min - cycle ended. what am i missing?
I think it depends on your washers efficiency and the cycles you use. My washer is one of those HE machines that using adaptive cycle routines with-in the select load type. Creates a wattage watching nightmare. Couple that with Vera's instability, I just gave up and took a more direct approach.
-
@Moshe-Livne said:
@ServiceXp I was thinking of having the logic in the arduino. should be simple, no? current drawn - in cycle. no current for 5 min - cycle ended. what am i missing?
I think it depends on your washers efficiency and the cycles you use. My washer is one of those HE machines that using adaptive cycle routines with-in the select load type. Creates a wattage watching nightmare. Couple that with Vera's instability, I just gave up and took a more direct approach.
@ServiceXp
I like this project, but since my washer and dryer have LEDs which indicate that cycle is complete too, I was thinking to optically sense that cycle was complete if I cannot get to the electronics easily (and maybe even void my warrantee). I'm going to try to find a very small sensor, perhaps.
My real issue is how to get my wife excited about increasing our laundry efficiency ;)
-
Tried the washer thing a year back...
But it quickly got down-voted by my wife after some innocent "bugs" in the watt-algorithm. I was forced to stop the Sonos speakers to announce "Tvätten är klar" ( <-- Swedish) several times during the wash cycle.
Hope to build enough confident to give it another try. But I suspect we got one of these eco-washers...
-
Maybe a vibration sensor do the trick ;-)
like this one or similar: http://www.dfrobot.com/index.php?route=product/product&product_id=79#.VYM0i6O0N8E
-
@ServiceXp
I like this project, but since my washer and dryer have LEDs which indicate that cycle is complete too, I was thinking to optically sense that cycle was complete if I cannot get to the electronics easily (and maybe even void my warrantee). I'm going to try to find a very small sensor, perhaps.
My real issue is how to get my wife excited about increasing our laundry efficiency ;)
@BulldogLowell @ServiceXp Bosch in their infinite wisdom made the LED integral part of the start/stop button, putting a bit of a damper on optically sensing it. So far the 2 sound sensors I have are so bad that unless you do something really drastic like nuclear explosion they are very stoic about environmental beeps. they are ok for sensing knocks. now, I am not trying to sense Watt or try to profile the current use, as this is hopeless (my washing machine is also too smart for her own good). I am just going to watch for current draw above the "zero" over 5 min period. I think it would be safe enough but will not know until I get the sensors.....
@kalle - got the vibration sensor in the mail yesterday! great minds, etc. but it is more complicated as while doing hot wash there are lengthy waits for the water to heat up.
my plan is to use one of these powerboard things (http://www.mitre10.co.nz/shop/electrical_hardware/cords_powerboards/hpm_surge_protector_powerboard_6_way_106033/) and block the last two and use the space for the arduino and sensor to measure current on the last socket. I have excellent RCDs installed :-)
@hek - I use discreet notification using google hangouts.... -
@kalle, I actually tried the vibration sensor (based on this design) but I could only get it to perform properly by pressing a button to tell the Arduino that the cycle had started, which made it useless for when I wanted the machine to delay the start.
I tried checking for vibrations as a trigger for 'Machine start' but it would trigger when loading the machine, and again when unloading... basically that was useless.@Moshe-Livne, I wanted to try sensing electricity usage, but when profiling the machine I found that when 'off' it was still consuming almost 5 watts, which is not a major problem if you define that as a threshold, but our machine sometimes just sits there doing nothing as far as I can see during the cycle. I was worried it would be a bit of a 'hit and miss' affair as @hek experienced.
@ServiceXp, I looked at your solution also when browsing the forums and almost went that way. But I didn;t want to open my machine, I know that my wife would not be happy about that. And with three small kids I can't afford to take my time about it, we need the machine every day :)
-
@kalle, I actually tried the vibration sensor (based on this design) but I could only get it to perform properly by pressing a button to tell the Arduino that the cycle had started, which made it useless for when I wanted the machine to delay the start.
I tried checking for vibrations as a trigger for 'Machine start' but it would trigger when loading the machine, and again when unloading... basically that was useless.@Moshe-Livne, I wanted to try sensing electricity usage, but when profiling the machine I found that when 'off' it was still consuming almost 5 watts, which is not a major problem if you define that as a threshold, but our machine sometimes just sits there doing nothing as far as I can see during the cycle. I was worried it would be a bit of a 'hit and miss' affair as @hek experienced.
@ServiceXp, I looked at your solution also when browsing the forums and almost went that way. But I didn;t want to open my machine, I know that my wife would not be happy about that. And with three small kids I can't afford to take my time about it, we need the machine every day :)
-
@kalle, I actually tried the vibration sensor (based on this design) but I could only get it to perform properly by pressing a button to tell the Arduino that the cycle had started, which made it useless for when I wanted the machine to delay the start.
I tried checking for vibrations as a trigger for 'Machine start' but it would trigger when loading the machine, and again when unloading... basically that was useless.@Moshe-Livne, I wanted to try sensing electricity usage, but when profiling the machine I found that when 'off' it was still consuming almost 5 watts, which is not a major problem if you define that as a threshold, but our machine sometimes just sits there doing nothing as far as I can see during the cycle. I was worried it would be a bit of a 'hit and miss' affair as @hek experienced.
@ServiceXp, I looked at your solution also when browsing the forums and almost went that way. But I didn;t want to open my machine, I know that my wife would not be happy about that. And with three small kids I can't afford to take my time about it, we need the machine every day :)
@mvdarend you are a ray of sunshine, aren't you? I think power profiling is the way to go. although the washing machine will sit around doing nothing for a while (especially during pre-wash) I think it is still safe to say that there will be spikes of usage when heating, spinning, etc
I am not too fussy about catching the machine the minute it finished so even 30 min with nothing over the threshold will be fine for me. I tend to leave the washing for DAYS in the machine :disappointed:
I now have 3 different vibration sensors. They do work for an extent but as you said - the number of false positives is a pain.
@Prateek-Gupta I think that is a bit of over solving a washing machine problem :-) -
@mvdarend you are a ray of sunshine, aren't you? I think power profiling is the way to go. although the washing machine will sit around doing nothing for a while (especially during pre-wash) I think it is still safe to say that there will be spikes of usage when heating, spinning, etc
I am not too fussy about catching the machine the minute it finished so even 30 min with nothing over the threshold will be fine for me. I tend to leave the washing for DAYS in the machine :disappointed:
I now have 3 different vibration sensors. They do work for an extent but as you said - the number of false positives is a pain.
@Prateek-Gupta I think that is a bit of over solving a washing machine problem :-)@Moshe-Livne Yes, I agree. But then this could be applied to a numerous electrical appliances across your home. Almost, all the devices have a unique power signature down to different operating modes.
-
Created a custom widget in HomeGenie and set it up to send PushBullet notifications. After running for a week I've noticed a few small problems.
- If I leave the door open and the sun shines on the sensor, it's status changes to 'Running'. Increasing the threshold doesn't help so I'll need to protect the sensor from outside elements better. *
- The LED on the machine also flashes just before it goes into running mode. I think I'll go with an extra status depending on the previous one (Off -> Flashing = 'stand by', Running -> flashing = 'Idle') or something like that.

- My 3D printer is ordered and on its way, so I'll be able to create a custom holder. You guys are killing my finances :)
-
Created a custom widget in HomeGenie and set it up to send PushBullet notifications. After running for a week I've noticed a few small problems.
- If I leave the door open and the sun shines on the sensor, it's status changes to 'Running'. Increasing the threshold doesn't help so I'll need to protect the sensor from outside elements better. *
- The LED on the machine also flashes just before it goes into running mode. I think I'll go with an extra status depending on the previous one (Off -> Flashing = 'stand by', Running -> flashing = 'Idle') or something like that.

- My 3D printer is ordered and on its way, so I'll be able to create a custom holder. You guys are killing my finances :)
@mvdarend While waiting for the current sensor (and also discovering that new powerboards have one way screws! evil people!), I have re-checked my vibration sensors. i am using this one http://www.aliexpress.com/item/1pc-lot-SW-420-Normally-Closed-Alarm-Vibration-Sensor-Module-Vibration-Switch-30512/32259757483.html which is better than the others i think.
currently I am just monitoring 5 minute periods and if there is a vibration during this time I mark it as "active". my theory (that I can't check as I ran out of laundry) is that 3 periods of vibrations signal that a cycle is in progress. a period of quite means the cycle has finished. will post final results the minute the kids will produce enough dirty cloths. -
@mvdarend While waiting for the current sensor (and also discovering that new powerboards have one way screws! evil people!), I have re-checked my vibration sensors. i am using this one http://www.aliexpress.com/item/1pc-lot-SW-420-Normally-Closed-Alarm-Vibration-Sensor-Module-Vibration-Switch-30512/32259757483.html which is better than the others i think.
currently I am just monitoring 5 minute periods and if there is a vibration during this time I mark it as "active". my theory (that I can't check as I ran out of laundry) is that 3 periods of vibrations signal that a cycle is in progress. a period of quite means the cycle has finished. will post final results the minute the kids will produce enough dirty cloths.@Moshe-Livne How is it working so far, have you been able to test it?
-
@Moshe-Livne How is it working so far, have you been able to test it?
@mvdarend so far so good. have added a bit of logic to my sketch and need another load to test it :-)
this is the current sketch:
// Washing machine finished sketch #include <MySensor.h> #include <SPI.h> #define CHILD_ID 3 #define BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch #define SAMPLING_PERIOD 600000 MySensor gw; int oldValue=-1; unsigned long period_start = millis(); int state = -1; // Change to V_LIGHT if you use S_LIGHT in presentation below MyMessage msg(CHILD_ID,V_TRIPPED); void setup() { gw.begin(); // Setup the button pinMode(BUTTON_PIN,INPUT); // Activate internal pull-up digitalWrite(BUTTON_PIN,HIGH); // After setting up the button, setup debouncer // Register binary input sensor to gw (they will be created as child devices) // You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage. // If S_LIGHT is used, remember to update variable type you send in. See "msg" above. gw.present(CHILD_ID, S_DOOR); } void report_state(int state) { Serial.print("reporting state: "); Serial.println(state); gw.send(msg.set(state)); } int prev_state = -1; int prev_state_length = 0; // Check if digital input has changed and send in new value void loop() { // Get the update value int value = digitalRead(BUTTON_PIN); if (value == 1) {// 0 means vibration detected state = 1; Serial.println("setting state to 1"); } Serial.println(millis()-period_start); if (millis() - period_start > SAMPLING_PERIOD) { period_start = millis(); Serial.println(state); if (state != prev_state) { if (state == 1 && prev_state_length > 2) { //a vibration period after long period of quit means a cycle started report_state(state); prev_state_length = 1; } else if (state == 0 && prev_state_length > 2){ //a long quite period after a cycle means cycle finished report_state(state); prev_state_length = 1; } } prev_state = state; state = 0; } delay(100); }will refine it once i verify it works through all the different cycles - this is not even a tested version, just to give you an idea about how it works. looks promising so far.
-
found some flaws in the logic - updated and checking - do not use the code above