Water usage via vibration / accelerometers?

Hello everyone;

I am trying to track Activities of Daily Living (ADLs) in a bathroom. Instead of using an obtrusive microphone for sound recognition, I would like to explore non-invasive hardware to detect when a toilet is flushed and when a bathroom sink is used.

I do not want to spend nor do I require the granularity that is provided by expensive water management solutions (e.g. https://www.fortrezz.com/flow-meter). Ideally, I could tape a Z-WAVE or ZigBee sensor to the water lines that feed the sink and toilet to detect no flow, flow and high flow via vibration / accelerometer sensors + software at the local gateway.

Does anyone know of implemented solutions that leverages this idea instead of purchasing $200 proprietary water sensors?

Thank you in advance!

Hi, interesting approach to logging.
I would suggest a float switch in your toilet reservoir, install it to max water level, for trigger when water drops down.

Hello,and welcome to the Forum. Maybe this will help you further. I don’t use it myself, so I can’t give a precise answer. But ESPhome is a great thing …

1 Like

After reading into it, I am going to order the components for the ESPhome and give this a go.

Still open to vibration microphone solution if anyone has a working one!

Hi @dedline, there are already some great suggestions in this thread, but basically, if you are not afraid of building your own kit using off-the-shelf components, then there are a lot of ways of detecting this type of activity, and a lot of automations you can do as a result.

If we work on the assumption that you’re capable of attaching sensors to something like a Wemos D1 Mini (or similar ESP-based board), you will find that flow rate sensors for the pipe sizes that you find in sinks and toilets are extremely affordable (literally just a few dollars). I use them to measure how much water I am pumping out of the ground, but you could just as easily use that data as triggers for other automations.

For example, if there is any sort of flow in the toilet water line, it means someone has flushed, which means we should turn on the extractor fan for a few minutes. Additionally, we could hack an air-freshener dispenser to spritz a few times when the extractor stops. This is all easily doable without writing any code using ESPHome.

Personally I have tried to minimise the presence of visible cables in my bathroom. I do, however, have a reed sensor on the toilet door, and a motion sensor peeping through the ceiling above it so that I may know when the room is occupied. I have toyed with the idea of poking an ultrasonic sensor through the roof to measure the distance between the toilet seat and the roof, on the logic that if anyone is sat there, the distance will be less than the default, and you can then tell the difference between someone stood taking a piss, and someone sat down for whatever reason.

Depending on how understanding your life partner is, I have used two ways to hide cables. One is to use a colour that most closely matches the paint, or white, and glue them along the corners of the room. A more extreme but very effective method is to use an angle grinder with a diamond blade to cut a channel in the wall (my house is brick and mortar), into which you can then install a piece of conduit, or just the raw wire if you’re as stupid as I am, and you then plaster over, make good, and touch up with paint or re-tile.

Whatever you end up doing, please post about it here on the forums, and also ask for help in the ESPhome forums. Seeing the work that others do is a big inspiration for all of us.