Leaksmart Water Sensor

5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎30‎:‎02‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690430019401132315953.$() is applicable for argument types: (script14690430019401132315953$_log_closure2) values: [script14690430019401132315953$_log_closure2@5ae7fafe]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎30‎:‎02‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690430019271132315953.$() is applicable for argument types: (script14690430019271132315953$_log_closure2) values: [script14690430019271132315953$_log_closure2@188e7ed9]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), any(groovy.lang.Closure) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎52‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429916621132315953.$() is applicable for argument types: (script14690429916621132315953$_log_closure2) values: [script14690429916621132315953$_log_closure2@6d5e8963]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429916131132315953.$() is applicable for argument types: (script14690429916131132315953$_log_closure2) values: [script14690429916131132315953$_log_closure2@736346b6]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429915681132315953.$() is applicable for argument types: (script14690429915681132315953$_log_closure2) values: [script14690429915681132315953$_log_closure2@57129799]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), any(groovy.lang.Closure) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429915131132315953.$() is applicable for argument types: (script14690429915131132315953$_log_closure2) values: [script14690429915131132315953$_log_closure2@30dc77b4]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429914071132315953.$() is applicable for argument types: (script14690429914071132315953$_log_closure2) values: [script14690429914071132315953$_log_closure2@39e86bf5]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), any(groovy.lang.Closure) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429914071132315953.$() is applicable for argument types: (script14690429914071132315953$_log_closure2) values: [script14690429914071132315953$_log_closure2@4a07bf86]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), any(groovy.lang.Closure) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429913431132315953.$() is applicable for argument types: (script14690429913431132315953$_log_closure2) values: [script14690429913431132315953$_log_closure2@479747cb]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;) 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎51‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script14690429912641132315953.$() is applicable for argument types: (script14690429912641132315953$_log_closure2) values: [script14690429912641132315953$_log_closure2@417766f4]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;)
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎48‎ ‎PM: debug refresh() -- retVal = [st rattr 0x75F1 1 1026 0, delay 500, st rattr 0x75F1 1 1 32, delay 500] 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎48‎ ‎PM: debug Refreshing 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎45‎ ‎PM: debug Ending configure(), returning retVal = [zdo bind 0x75F1 1 0x01 1 {0022A3000013AD64} {}, delay 500, zcl global send-me-a-report 1 32 32 30 21600 {01}, delay 200, send 0x75F1 0x01 1, delay 500, zdo bind 0x75F1 1 0x01 1026 {0022A3000013AD64} {}, delay 500, zcl global send-me-a-report 1026 0 41 30 3600 {6400}, delay 200, send 0x75F1 0x01 1, delay 500, zdo bind 0x75F1 1 0x01 2818 {0022A3000013AD64} {}, delay 500, zcl global send-me-a-report 2818 0 0 30 3600 {}, delay 200, send 0x75F1 0x01 1, delay 500, st rattr 0x75F1 1 1026 0, delay 500, st rattr 0x75F1 1 1 32, delay 500]. 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎45‎ ‎PM: debug Configuring Reporting, IAS CIE, and Bindings. 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎45‎ ‎PM: debug Begin configure(). 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎40‎ ‎PM: debug refresh() -- retVal = [st rattr 0x75F1 1 1026 0, delay 500, st rattr 0x75F1 1 1 32, delay 500] 
5dc47a34-07f8-4c50-afc8-2eb4000d70d4 ‎3‎:‎29‎:‎40‎ ‎PM: debug Refreshing 

That’s what I get from your latest code. Sorry it took me so long to post.

Update from github and try now…

Also, can you tell me when you try the new code if you got this error on install of the device? Hitting refresh? Hitting configure & done?

Updated from GitHub, hit configure, says “Begin Configure()”, hit poll, no output, hit refresh, no output, wet contacts get:

 ‎5‎:‎09‎:‎06‎ ‎PM: error groovy.lang.MissingMethodException: No signature of method: script1469048945977111945188.$() is applicable for argument types: (script1469048945977111945188$_log_closure2) values: [script1469048945977111945188$_log_closure2@78c88457]
Possible solutions: is(java.lang.Object), now(), run(), any(), app(java.util.Map), use([Ljava.lang.Object;)

Looking into it now. Unfortunately when I do a wet contact I get…

50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- map = [name:water, value:dry, descriptionText:leakSmart Sensor is dry, translatable:true].
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- Begin getMoistureResult(dry).
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- Sensor is dry.
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- Parse alarm code 1.
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- B02 temp data 1.
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- B02 Cluster Data: [1, 129, 1, 0].
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:16 PM: debug leakSmart -- parse(catchall: 0104 0B02 01 01 0140 00 F8F0 01 00 0000 01 01 01810100.
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: debug leakSmart -- map = [name:water, value:wet, descriptionText:leakSmart Sensor is wet, translatable:true].
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: debug leakSmart -- Begin getMoistureResult(wet).
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: info leakSmart -- Sensor is wet!
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: debug leakSmart -- Parse alarm code 17.
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: debug leakSmart -- B02 temp data 17.
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: debug leakSmart -- B02 Cluster Data: [1, 129, 17, 0].
50e39cc9-4ba6-46f5-b49e-eb485550f2ac  6:19:06 PM: debug leakSmart -- parse(catchall: 0104 0B02 01 01 0140 00 F8F0 01 00 0000 01 01 01811100.

By the way, I pushed new code. I don’t think it will resolve your issue but worth a try. Can you try removing the device, excluding it and re-adding it?

Whats the latest on what it takes to get wet/dry to report correctly? I got mine paired and battery and temp showing correctly, but tripped the moisture sensor for 30 seconds and it beeped a bunch, but never showed wet in SmartThings.

Try removing the batteries for a few seconds. That’s how I got all 6 of mine to work

Getting them to start communicating is kind of a pain. @ady624 method also worked for me. BTW - I have an update coming to this DH later today. Likely won’t make this process any easier, but I had one of my devices go “INACTIVE” this week.

1 Like

I wish I had more time to test your code Eric. Right now I’m still using the dhelm2 code I reformatted. Everything is working.

All - Thanks to @krlaframboise for point out my issue, I’ve got this DH working now that it starts communicating right away without any weird post configuration steps. I should be posting the new code to github tomorrow once I clean up a few things.

2 Likes

Ok everyone, I’ve posted the new code. It works solid for me. It no longer requires post configuration steps to get it working. You should see temperature and battery data immediately. I tested the pairing process on 4 devices all paired fine except for 1 which I had to reset (as it wouldn’t stop beeping and the logs showed null data coming back) and start over. Once I did that it worked fine. If you guys want to test this out and give me feedback it if works for you.

3 Likes

Eric, thank you, my sensor that had reported battery & temp but not water is working after removing and re-adding as a device with the new code. Added two more new sensors just fine.

Great job @whoismoses . It’s working great. Thanks for all your hard work.

Now that this is working, I created an official thread…

4 Likes

All, it seems that out mixed results could be due to firmware versions. I have version 21.

In this post I am talking about pooling resources to share a Wink hub to update them…

2 Likes

I have a Wink hub and looking to add a smartthings hub. Do you know if there is any problem with co-existence? Thanks.

I don’t think there will be an issue. I think there are several people who have multiple hubs (different brands). I’m not sure this will apply but others have rooted their wink hub.

Thanks for the info. I have heard of the rooting of the Wink hub over at hackaday but I was not sure if there was any real advantage to doing so. Do you know why they are rooting the hubs? Is there a similar root process for smartthings? I am a newbie in the hubs but not in embedded software development. Thanks.

An observation and question… I have a couple of these Leaksmart sensors, one is reporting a low-battery condition with decent batteries. I measured the aaa batteries at 1.44V each. It would seem sufficient. One sensor reports 100%, the other 0% (low-battery). I am suspecting a firmware issue or bad hardware component. I also grabbed a couple at the HD for $17 per.

I was thinking about buying several more just as temperature monitors. There is a guy selling them in bulk on eBay for $27 per. I suppose that is not a bad deal if you can’t find them on clearance at HD. Does anyone know of a better source for smart devices (wink or smartthings)?

One use case I would like to try is using them for freezer alarms. I dropped one in a freezer temporarily and it continued to report. I am concerned that the battery life may be reduced at freezing temps. Does anyone have an opinion as to whether they are suitable for freezer alarms?

There are firmware issues the can cause them to draw at different rates. Your wink should update them. No idea if they will work as Freezer alarms.

If you watch you can get them on Amazon for $27-$33 depending on the day. I’d much rather deal with Amazon and pay a couple more dollars.

In terms of interference, Wink and SmartThings are able to coexist in the same household. I have no idea if they were degrading my signal quality or anything, but both zwave and zigbee networks worked and neither range nor latency seemed to suffer. That said, they won’t interoperate with one another (e.g. sharing devices) unless you want to go through a significant amount of effort (writing smartapps and device types, rooting Wink, adding API endpoints, etc.) to make them play nicely. I wrote SmartWink because there was no other way to get my Lutron devices working seamlessly on SmartThings - I had lost hope that ST would add it natively when the v2 hub came out without Lutron support, Lutron’s own bridge only functioned (way too poorly for light switches) through IFTTT, and Wink/Quirky didn’t seem likely to prioritize integrating with a competitor given that they were on the brink of bankruptcy at the time. I wish there were easier ways.

You could perhaps extend SmartWink to support the leaksmart sensor if you’re looking for native smartthings support of something that only Wink has the hardware for - some of the infrastructure there should be reusable for non-Lutron devices.

1 Like