LeakSmart Sensors

Unfortunately, I have tried the above steps (factory reset and power cycle) , paired the sensor to Hubitat (as a Generic Zigbee Moisture sensor) - then used it as a HSM trigger for water leak.. the sensor itself will detect moisture and will start beeping.. however the device "current states" will never show as having detected moisture and will not thereby trigger my HSM rule. The same goes for if I use the community Leaksmart driver. I have previously paired these to Wink 2 and have verified they have the latest firmware (updated via the Wink 2 hub). This has been attempted with fresh batteries and within a few feet from the hub.

How robust is your zigbee mesh? What repeaters are you using?

Aaiyar- thanks for staying with me thru this issue. I have 3 Tradfri zigbee repeaters purchased from IKEA, 1 of which is less than 3 feet from the Hub (plugged into the same power strip as the hub). I'm also pairing the Leaksmart sensor approx 3 feet from the hub and water testing it in the same location.

Aaiyar,

 Thank you for following up with me and making sure to provide the best support possible.   I was able to make it work properly using the community provided Leaksmart driver.   I have since moved all 3 of my sensors to Hubitat.   Appreciate you !   Happy holidays!

J

I have observed the same as above. With the Generic Zigbee Moisture Sensor driver I get accurate temperatures and battery level, but the leakSMART sensor never reports moisture correctly to the device page. If I switch to the community driver moisture sensing works every time, but temperatures (and sometimes battery level) are random. Using the temp offset doesn't work because the temp value is so random.

With the Generic driver I think it is actually reporting the moisture, but the driver is not processing correctly. In the text logs when you get it wet there are a number of repeated temperature reports much more frequent than the normal interval. I have pasted a debug log of this below. The sensor was wetted at 7:44 in the log.

Any ideas on how the temperature could be fixed in the community leakSMART driver or could the Generic Zigbee Moisture Sensor (@mike.maxwell) driver be updated to fix moisture sensing??

Thanks

dev:1142020-05-08 07:44:52.590 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:52.582 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:52.578 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:47.587 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:47.585 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:47.577 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:47.573 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:42.558 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:42.557 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:42.549 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:42.545 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:37.564 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:37.563 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:37.557 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:catchall: 0104 0B02 01 01 0040 00 518D 01 00 0000 01 01 01810100, profileId:0104, clusterId:0B02, clusterInt:2818, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:518D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[01, 81, 01, 00]]

dev:1142020-05-08 07:44:37.556 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:37.555 pm debugparse: catchall: 0104 0B02 01 01 0040 00 518D 01 00 0000 01 01 01810100

dev:1142020-05-08 07:44:37.553 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:32.579 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:32.577 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:32.569 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:32.565 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:27.553 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:27.551 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:27.544 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:27.540 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:22.571 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:22.569 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:22.561 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:22.558 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:17.564 pm debugparseReportAttributeMessage: Temp resultMap: [name:temperature, value:53.19, descriptionText:Guest Bath Sensor temperature is 53.19°F, unit:°F]

dev:1142020-05-08 07:44:17.563 pm infoGuest Bath Sensor temperature is 53.19°F

dev:1142020-05-08 07:44:17.556 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0104020A0000299904, dni:518D, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0499, clusterInt:1026, attrInt:0]

dev:1142020-05-08 07:44:17.552 pm debugparse: read attr - raw: 518D0104020A0000299904, dni: 518D, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 9904

dev:1142020-05-08 07:44:17.550 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:catchall: 0104 0B02 01 01 0040 00 518D 01 00 0000 01 01 01811100, profileId:0104, clusterId:0B02, clusterInt:2818, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:518D, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[01, 81, 11, 00]]

dev:1142020-05-08 07:44:17.547 pm debugparse: catchall: 0104 0B02 01 01 0040 00 518D 01 00 0000 01 01 01811100

dev:1142020-05-08 07:43:57.523 pm infoGuest Bath Sensor battery is 100%

dev:1142020-05-08 07:43:57.520 pm debugzigbee.parseDescriptionAsMap-read attr: [raw:518D0100010A20002028, dni:518D, endpoint:01, cluster:0001, size:0A, attrId:0020, encoding:20, command:01, value:28, clusterInt:1, attrInt:32]

Possibly, would need a device in hand to try out.

I do have a (currently) unused spare. I could loan one out (or would you need it permanently?).

On loan is fine...

I am getting incorrect Temp Values using the leaksmart sensor driver referenced above as well. I tracked down the issue to the byte ordering of the temp value returned from the sensor.

changing line 340 from
def value = getTemperature(descMap.value)
to
def value = getTemperature(swapEndianHex(descMap.value))

corrects the issue

4 Likes

Looking good. I tried your modification and now the temperature reported by the LeakSmart under my refrigerator went from -133 to 65. Thank you!

Nice work! It is finally not -342F in my various rooms!

While my leakSmart sensors are reporting correct temp and battery regularly, they're not reporting dry/wet. I also added the driver code posted above but that didn't help with this problem.

Any ideas?

You've added the driver, but you haven't changed the driver being used by the device to the User driver that you just installed.

After doing that, click Save, and then be sure to click the Configure button on the device page.

1 Like

Ok figured that out...took a bit because I didn't realize there were more drivers at the bottom of the list under "User". However I'm still not seeing an expected status in the devices menu nor in the dashboard.

Are there some other settings I'm missing?

FYI I have 3 LeakSMART and 1 Dome Leak sensors but have only been working on getting the Main Flr Leak Detector (leaksmart) sensor to work (middle row, left in dashboard).

Figured it out...in order to add a LeakSMART water sensor into Hubitat you need to do the following: ...these instructions include correcting inaccurate temperature readings and adding the sensor to your Dashboard.

  1. Copy the code from the link below:


2. Go to Hubitat "Drivers Code" from main menu
3. Click on "New Driver" button at top right
4. Paste the code from github link above...give it a moment until you see the blue "New Driver" title at top left turn to "leakSMART Sensor" ...DO NOT SAVE YET!
5. IMPORTANT! You need to change one line of the original code you just pasted-in...trust me you'll want to do this otherwise at some point, maybe not right away, or maybe right away, the temp indicator will get screwed up...so replace code line 340 from "def value = getTemperature(descMap.value)" to "def value = getTemperature(swapEndianHex(descMap.value))" ...exclude the quotes
6. Go to Hubitat "Devices" menu
7. Click "Discover Devices" button at top right
8. Open up back of the LeakSMART water sensor and bring it within 5ft of the Hubitat Hub
9. In the Hubitat Device menu click on the "Zigby" button
10. On the LeakSMART sensor click the button in the open compartment next to the batteries 3 times
11. The Hubitat Discover Devices window should show that it is discovered within about 15 seconds or so
12. Name the new device and click "Save"
13. Click back on the Device menu option to open the list of all of your devices and look for the newly added LeakSMART device as you named it
14. Click on the new LeakSMART device to open its settings
15. Scroll down to the "Device Information" section and click on the "Type" dropdown and scroll down to the very bottom of the list under a second second section named "User" and select "leakSMART Sensor"
16. This is important! Click "Save Device" which will not only save your selection but also change some of the "Preferences" options above
17. Under the "Preferences" section turn-on "Compatibility Mode" ...should go from grayed-out to blue
18. Click "Save Preferences"
19. Click "Save Device"
20. That is it...you should now see at the top right of that same window that the "Battery", "Temperature" and "Water" should all show the current correct info
21. You can now add a Dashboard item for this sensor and will show you the current status...go to "Dashboard" and click the "+" sign at the top right
22. Under "Pick a Device" on the left side select the name you gave the LeakSMART sensor
23. Under "Pick a Template" on the right, select "Water" and then click "Add Tile" at the bottom right and now your Dashboard item will show up reporting the current status of that sensor
24. ENJOY:)

4 Likes

:grinning: :star_struck: Thank you!!!!

1 Like

Thank you, @adam7 ! That did the trick to fix the temperature!

The Generic Zigbee Moisture Sensor driver seemed to work fine on temperature, but it only reported 100% on battery. Now we can use the custom driver and have it working correctly for both temp and battery.

1 Like

Does anyone know where to add units for temperature and battery into the leaksmart custom driver? With this driver, the dashboard tiles show up unitless. There also aren't units present in the Device Event history. It appears the units are hardcoded into the description text, which I think is row 447.

I tried updating a couple areas, but it didn't appear to work.

Thank you for the reply. I'm stuck on step 4 waiting for the "new driver" to change to "leakSmart sensor". been waiting for 5 minutes now and still no change.