I had the idea of using an SW-420 vibration sensor mounted to the outside of a water pipe to detect water flow in that pipe.
The idea would be to implement several different flows from the detection.
One flow would be if water flow is detected for too long either a: the water has been left on or a pipe has broken, or b: if that water line is a toilet, the valve is stuck open.
Another flow could be used for how long did the tap stay open each time it was used?
That sensor is technically a switch. You can’t measure how strong some vibration is. According to your sensitivity adjustment either it’s detected or it’s not. You could probably detect when you open and close a faucet.