Better Laundry Monitor Port & Update


I also would like to see this modified app. I have a vibration sensor coming, and was hoping someone could make this app utilize those type sensors for dryers where there aren't a lot of good options for power monitoring.


Realized now that @csteele was the one that posted the version I edited not @ChrisUthe. I just created a pull request for @csteele to consider in his HubitatCommunity version.

In the meantime you can download my version via my pull requests:
Parent App
Child App

You will create a child instance of the app for each device. I have one using the Iris smart plug for my washer and another using an acceleration sensor for my dryer.

I will remove these links when and if csteele approves my pull request.


I have installed and configured... now I guess I will HAVE TO do laundry to


I've been hosting an "End of Summer" Pool Party for my kids. And haven't had time to look. I'll try to review it tomorrow.


Pull Request has been merged. Thanks @ritchierich

I have another version I initially started working on several months ago but never found the inspiration to complete. I'm adding a start notification option, and it uses an updated version of @Cobra's updateCheck with asyncHttp. I've completed the changes and am now doing laundry to test. :smiley:


Just learned that this device has a double use. It detects when a LED comes on BUT it also detects temperature with the same sensor. So you could put one on your dryer even if the dryer has no lights.


Thanks for this. Finally got around to moving everything over from ST this weekend. Get on the forums to follow an app for laundry monitor and lo and behold my old code has been ported. Saved me the trouble of trying to port it.


It's been through a couple of hands...

I'll PM you a copy of what I'm testing... I spent the weekend rebuilding the Selection Menu.

As you 'complete' a selection, you get feedback...



Glad to see you here and on HE. Your various pieces of code solved many issues for me. This particular app has been working flawlessly for me and I really appreciate it, as does the WAF.


Glad to be here. I've had my hubitat running since the beginning, but mostly for my set it and forget it automatons.

Had to wait for the app to come out before I could consider moving everything over from ST. I finally had time this weekend to move everything over. By this weekend I'll be retiring my ST hub for good (unless I need to fire it up to upgrade some firmware)

Now I just need to learn what's different in the coding versus ST.


I had to change the 'off' trigger in my local copy of the app to be based on power threshold and time instead of power threshold and number of power reports in order to get my outlets (Zooz ZEN15) to report reliably and no false positive when power is zero and there is a single report.


-- == Better Laundry Monitor Release v1.4.0 == –

Changes from v1.3.x


  • Switched to async version of updateCheck().
  • Added debugOutput switch and send it’s state to each child.


  • Converted selections into cascaded dynamic pages to visually divide the required selections into functional choices:
    • "Sensors to be monitored”
    • "Thresholds to be monitored”
    • "Who and what to Inform”
  • Each description changes to Blue when selections have been made.
  • Added Message Start to complement the Message when the cycle ends.
  • Switched to async version of updateCheck().
  • Child inherits DebugOutput from Parent.

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


Are you copying the raw version of the device driver? May have extra lines that is causing the issue


Nope, I'm just not thinking straight, but you made the same mistake I did. This is an app, not a driver. Was copying it into drivers instead of apps, most likely because I just added another parent/child driver and was on autopilot.


Ah glad you got it working


Anyone else having repeated notifications with the new version? I wanted to confirm whether its just me. My washer with a pocket socket keeps telling me its done even though the threshold hasn't been met and it keeps repeating too.


First, let me say, I believe you...

But... the Ended code doesn't repeat, by itself. It has to go through the Started portion first.

Is your v1.3.2 version (pull merge) working?

My change is 90% UI .. very slight cleanup such as changing handler() to pwrHandler() just so it's more in line with accelerationActiveHandler().


I don't have real devices on my Development Hub, but I do have a Virtual Power Plug driver.

I also don't have any Notification device setup... but I do have a virtual switch. :slight_smile:

I setup BLM to use the virtual Power Plug, default Thresholds: 8, 4, 2 and to notify using an Additional Switch:

Logs show:

dev:3 2019-08-15 04:55:27.302 pm info VirtualSwitch was turned off
app:3 2019-08-15 04:55:27.252 pm debug State: false
app:3 2019-08-15 04:55:27.206 pm debug BLM Complete
app:3 2019-08-15 04:55:27.172 pm debug Power: 0W, State: true, thresholds: 8.0 4.0 2
dev:2 2019-08-15 04:55:27.030 pm debug pseudoWasher resetPower
app:3 2019-08-15 04:55:13.754 pm debug We hit delay 1 times
app:3 2019-08-15 04:55:13.705 pm debug Power: 1W, State: true, thresholds: 8.0 4.0 2
dev:2 2019-08-15 04:55:13.511 pm debug pseudoWasher setPower: 1
dev:1 2019-08-15 04:54:58.603 pm info Aeon Multisensor 6 UV index is 0
dev:1 2019-08-15 04:54:58.508 pm info Aeon Multisensor 6 illuminance is 0 Lux
dev:1 2019-08-15 04:54:58.455 pm info Aeon Multisensor 6 battery level is 100%
dev:1 2019-08-15 04:54:57.622 pm info Aeon Multisensor 6 humidity is 39%
dev:1 2019-08-15 04:54:57.499 pm info Aeon Multisensor 6 temperature is 83.1°F
dev:3 2019-08-15 04:54:39.475 pm info VirtualSwitch was turned on
app:3 2019-08-15 04:54:39.439 pm debug Cycle started. State: true
app:3 2019-08-15 04:54:39.424 pm debug BLM Started
app:3 2019-08-15 04:54:39.395 pm debug Power: 10W, State: false, thresholds: 8.0 4.0 2
dev:2 2019-08-15 04:54:39.143 pm debug pseudoWasher setPower: 10

In the Virtual Power Plug, I set power to 10 (greater than 8) and saw the Start events. Then set it to 1 (less than 4) and got notified that it's hit the threshold once. I then cleared the power and got the End events.

The virtual power plug doesn't bounce or send multiple events like a real one can.


I updated to your latest version today and still experiencing it - was getting it on the pull merge too actually.

But now that I am looking at things on my dual monitor I think I see what's going on, there are dips in the power consumption that meet the threshold. I am thinking I may need to put in a time threshold too as a first criteria. So wait until after this amount of time and then measure the power drops. My wife has been using the super long cycle with a soak too lately and that has thrown my thresholds off.


I can see how various brands and vintages of washers and dryers can have vastly different activity profiles. The new UI may lend itself to adding more 'stages' in the Threshold area.

I tested again just now with Acceleration:

app:5 2019-08-15 06:06:06.823 pm debug Disarming detector
app:5 2019-08-15 06:06:06.820 pm debug BLM Done
app:5 2019-08-15 06:06:06.816 pm debug Sending notification
dev:3 2019-08-15 06:06:06.807 pm info VirtualSwitch was turned off
app:5 2019-08-15 06:06:06.754 pm debug checkRunning()
app:5 2019-08-15 06:05:06.674 pm debug startedAt: 1565904697361, stoppedAt: 1565906706642
app:5 2019-08-15 06:05:06.643 pm debug no vibration, isRunning: true
dev:2 2019-08-15 06:05:06.562 pm debug pseudoWasher Inactive
dev:3 2019-08-15 05:31:37.387 pm info VirtualSwitch was turned on
app:5 2019-08-15 05:31:37.361 pm debug Arming detector
app:5 2019-08-15 05:31:37.353 pm debug vibration
dev:2 2019-08-15 05:31:37.267 pm debug pseudoWasher Active
app:5 2019-08-15 05:31:29.953 pm debug no vibration, isRunning: null
dev:2 2019-08-15 05:31:29.824 pm debug pseudoWasher Inactive

it looks ok, but as you have identified, I'm not sure "fillTime" applies to a Dryer.

Perhaps more thought towards 'profiles' might yield some benefits. The problem for me is that once it hits a certain level of complexity, RM would be a better choice. Rather similar to Simple Lighting or Motion Lighting eventually graduate out to RM.