Better Laundry Monitor Port & Update

Hi, quick question - I just installed this driver and set it up for both washer and dryer using a Kasa Energy smart plugs (and Hubitat driver for them).

I've only done a single load of laundry (1 each) so this is just an early question. I noticed on the driver page the "(finished on XX at YY)" text. Any idea why the date/time is so far off for the Dryer times? FWIW - the dryer load was done after the washer :slight_smile:

There are great benefits to Open Source software but the downside is.. I dunno why it's displaying that way. I didn't write that portion and I didn't do much to merge it in. :slight_smile: Perhaps @storageanarchy can shed light.

This is an indication that something interrupted the power tracking for the device - it's actually the Month/Date portion of the UNIX time epoch (numerically, -1). Shouldn't happen often - it's kind of a bug that it slipped through, but not a serious one.

That said, let me know if it occurs repeatedly. Live Logging for the monitor instance may provide more information about what went on to cause this.

1 Like

I’m seeing the same thing on mine. Didn’t notice this until just today but I recently upgraded my Aeotec smart switch 6 to an Aeotec smart switch 7.

That's weird - something must have changed in the way that power is reported - perhaps the Aeotect 7 is different that the AeoTech 6. I'll have to dig into this, but I don't have any power plugs to test with at my current location...

If you don't mind:

  1. Please PM me a screen-shot of your power configuration for the Monitor app in question
  2. Turn on debug logging for the Monitor
  3. Turn on Live Logging for the Monitor
  4. Run a short cycle on your washer/dryer (a few minutes, not just on/off)
  5. PM me the Live Logging data for the Monitor
  6. PM me the Events from the power plug for the testing period of time

Thanks!

Hi, I know this is old and perhaps you don't maintain it but I have come across a bug as explained by the attached image.

Also, it is not clear what this means in the app dialog.
"Stop after power has been below the threshold for this many sequential reportings:" Does this refer to the refresh of the device data or a refresh loop performed by the app? It is also not clear how long one of these cycles is, which would be helpful.

I also sometimes find that some virtual switches do not get fired as they should but I'll have to investigate that further.

Screen Shot 2022-03-08 at 2.10.33 PM

In my example above, for a washer, a "cycle" starts when the power goes above 20 watts. So an initial power on, LCD power, etc. are ignored. When the washer starts adding water, or when it starts agitating the tub, presumably that's the important "start" of a cycle.

A "cycle" ends when the power drops below 2 watts.. presumably the LCD is still on, and the valve to add rinse water is using a couple watts, and so that doesn't count as an end. But to counteract any bouncing around down there, the power has to fall below 2 watts twice to count. In my case, that covers the rinse cycles. When the cycle is truly over, power is below two watts and it's the second time. In case the power sensor doesn't report zero watts multiple times, then 6 mins below 2 watts is the same as if it went below 2 watts twice. Then, in order to be sure we never leave the wet clothes in the washer, at 54 mins after the first start, a notification goes out.

Fundamentally the start of a cycle tends to be easy.. it's the ed that is hard to define and so the code tries to come at it several ways.

1 Like

Thank you, I understand what you are doing. But in the example I posted the power had been below the 2 minute threshold for 10 additional minutes and it did not terminate the cycle. I can't tell if it's stuck in a loop but there is no additional debug output and it can stay like that for a long time.

Your power reporting sensor is reporting Zero Watts once... it never sends a 2nd report, and that's pretty normal. You could set it to report every 5 mins, but that would be but that would be 287 more reports than you need each day. That's exactly what the "Stop after power has been below the threshold for this many continuous minutes:" option is for. You can think of it like it functions as a 2nd report.

Yes, I understand. I have set those values to 1 and 1 and it appears to be working correctly. However, someone else might have a legitimate reason to select 2 and 2. If they do it will never finish.

It will if the power sensor sends a 1 watt followed by a zero watts. In other words, the numbers are all based on what the sensor is sending. Your sensor and mine might not be set identically and my washer/dryer consumes power differently from yours, perhaps.

I'd suggest you revisit your "stop" threshold - I found setting the wait time to 3 mins on our dryer / Washing machine produced reliable results.

Dryer:

Washing Machine:

Fundamentally one needs to "plot" a cycle as reported by the sensor over time and then match the threshold values to where the start and end points occur. If they occur more then once, then the repeat counter needs to increment that many times.

3 Likes

I must have done a bad job with my explanations so I repeated the test with a new power plug I just got using a simple bulb for the load. Only so much laundry I can do.

As you can see from the pics I set the value for "Stop after power .... minutes:" at 2.
Turn on the load at 11:34:20 (6W)
Turn off the load at 11:36:14 (0W)
Hits the delay 1 times at this point.

If I understand correctly the app should have stopped at 11:38:14 when the power had been at 0W for 2 minutes. But as you can see that did not happen and the cycle continued until the deadman kicked in at 11:49.

Don't mean to belabor the point but I wanted to be sure you understood the scenario under which the program does not operate as I thought it was intended.

Thanks for a great app BTW, my wife thinks this is one of the best things about Hubitat.

image

"We hit delay 1 times." indicates that you have not yet hit the Sequential Readings loop counter you set = 2. The NEXT time you get a report less than 1W, the cycle would end.

Here's something to try since you've run out of laundry... :smiley:

Get that Driver, create a Virtual device to use it and build a BLM child that uses that as the sensor. Then you can just type in values into it's SetPower field and "do a load of Laundry" in seconds.

Using that, here's my logs:

dev:1   2022-03-12 02:39:01.899 pm info  pseudoSwitch was turned off
app:464 2022-03-12 02:39:01.892 pm debug Cycle finished after delay.
app:464 2022-03-12 02:39:01.882 pm debug banner: today at 2:39pm
app:464 2022-03-12 02:39:01.854 pm debug send: Gary's laundry is done!
app:464 2022-03-12 02:37:17.581 pm debug Power: 0W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:37:17.542 pm debug pseudoPowerPlug setPower: 0
app:464 2022-03-12 02:37:01.830 pm debug Ending duration is set, waiting
app:464 2022-03-12 02:37:01.811 pm debug Power: 0.1W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:37:01.771 pm debug pseudoPowerPlug setPower: 0.1
app:464 2022-03-12 02:36:57.538 pm debug We hit Power Delay 1 times
app:464 2022-03-12 02:36:57.513 pm debug Power: 0W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:57.430 pm debug pseudoPowerPlug setPower: 0
app:464 2022-03-12 02:36:47.386 pm debug We hit the Power Delay 1 times but cleared it
app:464 2022-03-12 02:36:47.377 pm debug Power: 4W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:47.337 pm debug pseudoPowerPlug setPower: 4
app:464 2022-03-12 02:36:43.319 pm debug We hit Power Delay 1 times
app:464 2022-03-12 02:36:43.306 pm debug Power: 0W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:43.273 pm debug pseudoPowerPlug setPower: 0
app:464 2022-03-12 02:36:32.703 pm debug Power: 1W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:32.661 pm debug pseudoPowerPlug setPower: 1
app:464 2022-03-12 02:36:30.467 pm debug Power: 4W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:30.435 pm debug pseudoPowerPlug setPower: 4
app:464 2022-03-12 02:36:28.244 pm debug Power: 1W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:28.211 pm debug pseudoPowerPlug setPower: 1
app:464 2022-03-12 02:36:25.391 pm debug Power: 2W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:25.358 pm debug pseudoPowerPlug setPower: 2
app:464 2022-03-12 02:36:22.753 pm debug Power: 4W, State: true, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:22.700 pm debug pseudoPowerPlug setPower: 4
dev:1   2022-03-12 02:36:18.577 pm info  pseudoSwitch was turned on
app:464 2022-03-12 02:36:18.569 pm debug Cycle started.
app:464 2022-03-12 02:36:18.564 pm debug banner: today at 2:36pm
app:464 2022-03-12 02:36:18.539 pm debug send: Gary's Laundry is started!
app:464 2022-03-12 02:36:18.534 pm debug Power: 9W, State: null, thresholds: 5.0 1.0 2 2 optional: 1500.0 null 4
dev:464 2022-03-12 02:36:18.501 pm debug pseudoPowerPlug setPower: 9
app:461 2022-03-12 02:36:01.648 pm info  Child app: Better Laundry Monitor - Gary's Laundry
app:464 2022-03-12 02:36:01.646 pm info  debugOutput: true, descTextEnable: true
app:461 2022-03-12 02:36:01.620 pm info  There are 1 child smartapps
app:461 2022-03-12 02:36:01.575 pm debug Updated with settings: [descTextEnable:true, debugOutput:true]
app:461 2022-03-12 02:35:58.760 pm info  You are using the current version of this Application
app:461 2022-03-12 02:35:38.468 pm info  You are using the current version of this Application
dev:1   2022-03-12 02:35:37.940 pm info  pseudoSwitch is off
--- Live Log Started, waiting for events ---

I've pushed an Update of BLM Child out to Github and updated HPM. I changed the way the power is interpreted ( >= vs > ). There's also a reset button I use during testing with the virtual power driver that I've left in the release.

Screen Shot 2022-03-12 at 2.58.18 PM

During your experimentation, try setting "Stop after power has been below the threshold for this many continuous minutes:" back to zero.

There's a generic thing Hubitat does that might be affecting how you're interpreting the values being entered. Duplicate values are filtered out. If the Power Meter sends 9W followed by 9W, ONLY the first one makes it to the BLM App. This has an effect on your threshold of 1Watt. The power plug you are using probably does not send two Zero Watt reports, and even if it did, Hubitat would filter it out. If the power plug reports .76 Watts then Zero, that would constitute two sequential readings below the threshold.

3 Likes

OK, now I understand. I did not realize the two "Stop after" controls were linked, I thought they were independent. I will check out your new driver. I am using Sonoff WiFi S31 power plugs with Tasmota BTW, I can get them on Amazon for < $10. Flashing them is not too bad once you know what you are doing.

1 Like

Hi @garyjmilne,

I too have been using Tasmotized Sonoff WiFi S31 power plugs (they are IMHO the best designed plugs for Tasmotizing) to monitor my washer and dryer states in the following manner:

RM4 - List of example rules

Rules Examples

---- TO ENSURE A LONG UNINTERRUPTED LIST PLEASE REFRAIN FROM COMMENTING ----

Name of Rule: Laundry - Washer is Done

Comments: Uses Power Monitoring (Tasmota modded Sonoff S31 Outlets) on Washer and Dryer to notify when Wash Cycle is done. Announcements are made by 2 different Alexa Routines triggered by virtual contact switches (w/auto off) on designated Echo devices. If Washer load is done but Dryer is still in use, then Alexa announces “Wash is done but dryer is in use. I will let you know when the dryer is available”. If Washer is done and Dryer is not in use, then Alexa simply announces “Wash load is done. Please transfer laundry to Dryer”. Private Boolean prevents repeated announcements per washer cycle. Delay assures false notifications are prevented during lulls in washer cycle (between various wash or spin cycles). Similar Rule for Dryer announces when Dryer is done. Can be easily modded to also include Pushover notifications if desired (WAF dictated that only Alexa Announcements were desired in my use case).

I understand that this thread is about the Better Laundry Monitor Port (and of course hope I am not thread jacking and old thread) but am wondering if I am missing some feature that the app provides that a simple RM rule does not. Given the length of this thread and the pretty extensive discussions of problem solving etc. I feel that I am obviously missing some advantage that this app has over a simple RM rule. For my use case, I have been using a very simple RM rule for just over a year (I am a relative noob) that I posted in the referenced thread of Rules Examples and it has consistently given me timely laundry notices without any false positives nor false negatives (again, for my purposes and at least in my specific use case with an electric washer and gas dryer).

Any information/explanation would be helpful and is greatly appreciated as I am still learning from this great community.

Nope, not missing a thing.

If you're able to build a Rule that meets your needs, then it's a good solution. For those that find it daunting to build a Rule like that, then a dedicated App will be a good solution too.

3 Likes

Thanks for the quick reply @csteele! Was just curious since as a noob part of my problem is not knowing what it is I do not know!

Personally I prefer the simplicity of Better Laundry Monitor. I already have enough rules and let's face it, while it's very capable, it's not the greatest tool for making anything complex. With BLM, I just added my dishwasher and it took me about 60 seconds. Could never have done that with RM. Also, I like that BLM adds a title to the app that shows the time of the last action.

4 Likes