Smart Pet Water Sensor using Aqara Water Leak Sensor

Sometimes we did not know our 95lbs labrador had completely slurped up his entire bowl of water. So I thought there had to be a way to automate something so we knew he was out of water.

I looked into several sensors such as ultrasonic distance sensor as it seems other projects had used them for this exact problem, but I did not like how cumbersome it would be to remove it and also it would have to be constantly powered. I also considered some kind of weight sensing system but that also seems rather complex and again would need constant power. Beyond those options. I could not find a single thing out there so I figured I would design my own solution. I originally tried a window/door sensor but it seems that the resistance of the water would drain the battery in just a few days.

So version 3 takes an existing Aqara Water Leak sensor and extends its trigger distance with 2 stainless steel screws at the bottom of the housing. It uses thumb screws on the back to secure it to the lip of the bowl. No modifications to the sensor is needed! Just pop the sensor in the holder and place the sensing screws and that is it! Changing the trigger distance is as easy as changing the screws to a different length. I tested the sensor itself being submerged in water for a few days and it seems they are already water tight. So it made it the ideal sensor to use for this! It has also received overprotective protective dog mom stamp of appoval!

If others are interested, I am selling printed parts as well as full kits including the sensors here!

6 Likes

Does the Aqara sensor’s battery deplete more quickly when it stays in contact with water most of the time?

1 Like

From my extensive testing. No. Either wet or dry HA has them reporting in every 50 minutes like clockwork. This is synonymous with either my door/window sensors. I have about 40 sensors in total that encompass just windows, doors, moisture and they are all reading 100% battery. This has been an ongoing project for a few months now and I have not seen any issues. This is also supported by another user that had a similar idea on reddit. They went for 9 months and it had no issue. I have also seen where people use these sensors to detect water levels of their water tanks which would put the sensor in the same wet state.

Here are 2 sensors one wet one dry and they are reporting in at the same interval.

There is an issue with battery life if you use the normal Aqara window/door sensor. For some reason the resistance of the water causes it to drain its battery much faster. It is not a reporting interval issue as far as I can tell. It has more to do with how the PCB is setup electrically. That is just my guess though.

1 Like

thanks for this great idea! I plan something similiar to monitor the level of condensed water in a bucket. As far as I understand you replaced the hex-screw on the sensor with longer ones? If so, are the hex-screws metric and which diameter do they have? I plan to replace the hex-screws with longer ones to avoid direct contact with the sensors housing.

all the best, Andrew

I did not replace the hex screws. What I did was take the <redacted>. The screws that come with the sensor are entirely too thin to go long distances.

I also wanted to make the design modular enough so it did not require any changes to the sensor itself.

what a genius! yeah I also noticed that its hard to find longer screws with the dimension M2 (2mm). I will modify my 3d-printed part to implement your idea. many thanks

You are welcome. The next secret will cost you :wink:

1 Like

I have this set up and connected via Homekit to my phone. The issue I see is that it gives me an alert when the sensor is wet instead of when the sensor is dry. What are you guys doing to invert the binary sensor status?

Can you post how you are triggering the automation?

Simply put you want to ensure it is a state trigger from “Wet” to “Dry” for your trigger. Then the opposite as another trigger.

Edit: I misunderstood. I do not use HomeKit but @dimitri.landerloos solution is what I would assume should work when exposed to homekit.

Thats fine fo the HA automation but the sensor is shared to my phone via HomeKit. That only reports a wet alert which is opposite. Was hoping to invert the sensor value?

Go to helpers and create a template binary sensor like this:


Then use a template to determine your current state and invert it. Something like this will work.

{% if states('binary_sensor.lounge_cat_water_fountain_level_water_leak') == 'off' %}
  on
{% elif states('binary_sensor.lounge_cat_water_fountain_level_water_leak') == 'on' %}
  off
{% endif %}

ok created the template sensor… How do I get it to run and change when the actual sensor changes? It currently does not read as inverse and does not change? Always reports as Dry

{% if states('binary_sensor.winston_s_water_bowl_moisture') == 'dry' %}
  on
{% elif states('binary_sensor.winston_s_water_bowl_moisture') == 'wet' %}
  off
{% endif %}

Try with on and off as the if statement instead.

{% if states('binary_sensor.winston_s_water_bowl_moisture') == 'off' %}
  on
{% elif states('binary_sensor.winston_s_water_bowl_moisture') == 'on' %}
  off
{% endif %}

that worked