Better Laundry Monitor Port & Update

-- == Better Laundry Monitor Release v1.4.1 == – <— click here :slight_smile:

Changes from v1.4.x

Parent:

  • none

Child:

  • Using “vibration” instead of “acceleration” in the menus.
  • Added a choice for Vibration counting to mimic Power counting, vs Timed Vibration.

(URL is the the first line of this message.)

You will need to visit each child and click Done.

This latest iteration adds a "sequential" Vibration option as an alternative to the "timed' Vibration option added by @richierich a week ago. Sequential is how the original Power Meter method worked. Perhaps a picture is 1000 words:

Of the three options for Type of Device, selecting Timed Vibration Sensor:

then Threshold values are:

01%20PM

Selecting Sequence Vibration Sensor:

then Threshold values are:

41%20PM

Which match the selection of Power Meter:

then Threshold values are:

30%20PM

which are all the original values.

Is there anything written out regarding what all of those settings means exactly? I'm confused what it means by sequential reportings and not sure what Maximum cycle time means.

I am VERY open to better descriptive names for the feature(s)....

Better Laundry Monitor has, for a long time, only monitored the Power attribute from a Power Plug device. The Thresholds are:
how much power indicates a Cycle has started? --> "Start Cycle when power raises above (W)"
how much power indicates the Cycle has stopped? --> "Stop cycle when power drops below (W)"

Because most washers and dryers have some "interval of nothingness.. " where the power drops below the cycle stop value BUT only for a short time... for example, when a Washer is filling for a Rinse. Therefore, the App wants to know how many times this happens because the LAST time it happens means the entire cycle is done. --> "Stop after power has been below threshold for this many sequential reportings:" If you have one rinse, this value will need to be two. The first drop below the Stop Cycle power reading means the Rinse has started... and the washer will come on again, but the next time, the 2nd time, it's done.

But what happens if you're running a Spin Only cycle?? The power only drops ONCE.. you will NEVER get a Notification. Therefore I added --> "Maximum cycle time" so that no matter what, you'll get a Notification at that time. This value must be at least a tiny bit longer than the time for the maximum cycle you use.

In the last couple of weeks, I've been asked to add another device type to monitor. A vibration sensor, that reports as an Acceleration Attribute. It's binary, there's no number to match, it's either detecting vibration or it's not. Therefore the list of Thresholds must be different and App users must select between the old Power Meter method or the new Vibration method.

I merged in code that was written for Vibration and there are two values it needs. When you start a washer using a Vibration sensor, right away it vibrates a bit while the water starts to fill the tub, then there's a pause, Vibrations stop, and start again. Therefore --> "Time to fill the Tub" is used to indicate from the first vibration to the one after the pause is how many minutes?

Then the Vibration method wants to know the shortest time that a cycle can last.. any loss of vibration is ignored until that timer runs out.. the next time Vibration ends, that must mean the cycle is complete.

Again, just in case, there's the same --> "Maximum cycle time" to send a Notification if one hasn't already been sent.

Also, last week, it seems that a washer vs a dryer using Vibration, may be so different that another profile is needed. Two Vibration methods (profiles) and what to name them? The first one created uses a lot of Timer values.. so it's named "Timed Vibration Sensor"

The second Vibration profile actually is very very similar to the Power Meter method (profile) and the one word that stands out in it's method is Sequential... therefore, I named the third method "Sequential Vibration Sensor"

The "Sequential Vibration Sensor" profile wants to know how many start stops of Vibration occur in a single cycle. --> "Stop after no vibration for this many sequential reportings"

Just as important, if the count is wrong, when should a notification occur if one hasn't been sent already? --> "Maximum cycle time"

Now that you know what it' trying to do.. are there better names for any element? :smiley:

6 Likes

Really appreciate your response, I'll have more time tonight to read over everything to work on setting up Washer and Dryer alerts.

Thanks for all of this.

My washer seems to have spurious jumps readings when it's not running and the monitor often and the < 1800 check doesn't help. Sometimes it's 10W. Sometimes it's 100W. Sometimes it's 2000W. Would it be possible to add a start delay as well, so I would need 2 or 3 readings above the level before it marks it started?

I've played with the code a little bit but just don't have time to do it myself right now. :frowning:

I have this implemented in my version and have testing it. Was planning to offer @csteele a pull request with changes, just been pressed for time. My wife sometimes runs the soak cycle before a wash so I needed a start delay, but your use case would be solved by my changes as well.

Hi,

I have read through your detailed explanation of how th laundry monitor works, and I just wanted to check one thing. Does the monitor look for consecutive power readings below the threshold I set, or does it accumulate the number of times it dips below over the course of the cycle? My preference is for consecutive readings, as I only poll my smart plug every minute, so there would be a chance it would not pick up a dip for a rinse cycle every time, for example.

Thanks,
Simon

Actually, looking back at the screenshots in this post I think I have simply misinterpreted your explanation. You do mention sequential readings on the setup page. I'm doing a few loads of washing now and one successful notification just came through.

Thanks for your work on this app (as well as others who have been involved), it was nice and simple to setup and looks to be working perfectly for me.

Simon

Pull Request, merged.

v1.4.2 for Child.
v1.4.1 for Parent.

I've been updating (slowly) my code to use a newer version of updateCheck() -- so I threw that in too. :slight_smile:

1 Like

Thanks @csteele

FYI this new version should be able to accommodate your use case.

Thanks, that should work great!

1 Like

So I just set this up for my washer, dryer, and dishwasher using power meter plugs. I am getting the text notifications with no trouble, however the virtual switch I have selected at the bottom of the Inform section are not being turned on or off with the cycle.

@csteele does it look like I have missed something? I do have both of the logging toggles on in the parent app, but did not see anything in the logs in the way of errors or mentions of turning the switch on or off.

This is what the log shows when I update the child app, it shows the virtual switch in the 'switchList' but does not turn it on when the cycle starts.

I had already cleared out my previous test suite.. and recreated it now.

I created a new Child and picked a virtual Power Plug I had created.
24%20PM

Then I took the defaults on the Thresholds. I selected a Pushover device and added a virtual test switch:

Logs show everything worked as expected:

dev:2409 2019-10-03 07:53:16.696 pm info  TestLaundrySwitch was turned off
app:2154 2019-10-03 07:53:16.688 pm debug State: false
app:2154 2019-10-03 07:53:16.675 pm debug send: end of
dev:2471 2019-10-03 07:53:16.082 pm info  Sending Message: end of Priority: 0 to Device: jiPhone
app:2154 2019-10-03 07:53:16.054 pm debug Power: 0W, State: true, thresholds: 8.0 4.0 2
dev:2408 2019-10-03 07:53:15.991 pm debug pseudoWasher resetPower
app:2154 2019-10-03 07:53:11.732 pm debug We hit delay 1 times
app:2154 2019-10-03 07:53:11.701 pm debug Power: 2W, State: true, thresholds: 8.0 4.0 2
dev:2408 2019-10-03 07:53:11.632 pm debug pseudoWasher setPower: 2
app:2154 2019-10-03 07:53:04.624 pm debug Power: 4W, State: true, thresholds: 8.0 4.0 2
dev:2408 2019-10-03 07:53:04.572 pm debug pseudoWasher setPower: 4
app:2154 2019-10-03 07:52:43.468 pm debug Power: 400W, State: true, thresholds: 8.0 4.0 2
dev:2408 2019-10-03 07:52:43.416 pm debug pseudoWasher setPower: 400
app:2154 2019-10-03 07:52:38.752 pm debug Power: 4W, State: true, thresholds: 8.0 4.0 2
dev:2408 2019-10-03 07:52:38.673 pm debug pseudoWasher setPower: 4
dev:2409 2019-10-03 07:52:16.709 pm info  TestLaundrySwitch was turned on
app:2154 2019-10-03 07:52:16.689 pm debug Cycle started. State: true
app:2154 2019-10-03 07:52:16.680 pm debug Power: 75W, State: false, thresholds: 8.0 4.0 2
dev:2408 2019-10-03 07:52:16.564 pm debug pseudoWasher setPower: 75

pseudoWasher started at 75W and the TestLaundry Switch turned on... it didn't turn off again til the end of the 'cycle'.

I bounced the power around a bit.. 4W then 400W and back to 4W then 2W which triggered the first threshold. Finally hit 0W and that was the 2nd time and the cycle ended.

1 Like

Just installed 1.4.1 and looking fwd to testing it out. I just used the defaults from the Parent for a washing machine setup using Zooz Zen15 power meeter. Anything I should have done differently?

One suggestion, maybe I didn't see this in the setup. I want to not notify if during certain hours. We run a lot of laundry as we go to bed.
Have you considered adding your app to @bptworld App Watchdog 2 for auto updates?

I did a little more testing and I was able to get Better Laundry Monitor to turn on and off a true Virtual Switch, but it would not turn on a HubConnect Switch which is a virtual switch on a different hub. Then come to find out that may have been because I changed the name of a hub and it broke the HubConnect connection.
Thank you for running your test. It prompted me to check out a few more things.
Maybe my setup is a bit too complicated for it's own good :wink:

1 Like

@csteele

I've got one suggestion for your consideration. I don't want TTS notifications when the maid is working (because she doesn't like them). It would be nice if notifications could be blocked if a particular switch is on or a particular mode is active.

Yes please, I occasionally run a load of laundry late at night, or overnight. I have to remember to manually turn off either the TTS in the app, or disable Alexa. I have a "do not disturb" mode, but even a setting for "between two times" would be helpful.

I've added a switch:

I've labeled it a 'blocking' switch.. meaning ON = block the voices. :slight_smile:

Text notification is unaltered. They are sent before the blocking switch is checked... the consensus (of 2!!) had to do with TTS and I extrapolated that to be both Speech and Player, but not Notification.

I'll test it a bit then release it if it meets your need.

1 Like

Released v1.4.4

added "Switch to Block Speak if ON" that, when the selected switch is ON, will prevent speak (TTS and Speech Synthesis) messages from being sent. Text Notification is unaffected by the switch.