Water flow sensor/meter for stream?

I have an irrigation dam that is collecting water from a small stream. The water flow in the stream varies depending on rain, snowmelt, temp and the amount of water content in the ground. Occasionally it runs dry (in summer).

I would like to roughly measure the water flow in the stream and relay that information to Hubitat. This information would allow me to switch between taking water from the dam or from a well, which is important because partly/wholly emptying the dam causes a lot of erosion (of the sides).

The easiest/cheapest way would be utilizing a small pulse meter/sensor and connecting it to a Zigbee/Z-wave-enabled pulse counter. However, while there are myriads of small pulse-based flow meters (which all work basically the same) there does not seem to be an off-the-shelf Zigbee/Z-wave-module I could connect such a meter to.

The closest I've found is this one (and yes, I'm in the EU: LIXEE - Zigbee 3.0 pulse meter (water, gas) - Jeedom) . But it seems made to function with specific gas/water meters, not just counting "any pulse". Water flow meters/sensors generally have three "pins" (GND, voltage and "pulse out") but the Lixee input is 2-pin.

The other alternative is using an Arduino, which can easily count the pulses from the meter/sensor. But the next step would then be connecting the Arduino to a Zigbee-module (or Z-wave) so that it can communicate the counted pulses to Hubitat. There are quite a few such modules (for instance Xbee).

While I'm fairly confident I can get the meter->Arduino->Zigbee to work, I can find no reliable information about how to read/receive the information in Hubitat.

Another way to make all this work would be to use an off-the-shelf "Zigbee water meter"-module and "transform" it into an outdoor-functionality thingy. Having part of the water in the stream run through the meter is fairly easy (as is calibrating that measurement against the total water flow). However, while such modules exist they are quite pricey, due to a lot of extra functionality (alarms, shut-offs etc.). There is a fairly new product on Aliexpress that might work ("Tuya Zigbee Smart Valve Ultrasonic Water Meter with LCD Display Water Quantity Flow Consumption Measurement IP68 Smart Life"), with the additional benefit of being ultrasonic-based (instead of "moveable part" paddle-wheel based). But this is a Tuya Smart Life thingy which (as far as I can ascertain) no-one has made a Hubitat driver for.

After all this my actual question is fairly short (:slightly_smiling_face:): does anyone have a "this WILL work"-suggestion (or even -solution) for my actual problem (measuring water flow in a stream and relaying that information to Hubitat, so that it can be used with rules/automation)?

It won’t be difficult to make a custom Hubitat driver for the LIXEE counting module, because this device is already supported in Home Assistant.

The unsure thing is interacting it to your existing flow meter with pulse output.

Sounds great (because you could do a lot of interesting stuff with a Zigbee pulse counter...).

I have sent an email to Lixee asking about the two input pins. It's a French company, it might take a day or two... :slightly_smiling_face:

I do think it would work, because I suspect the pins are "GND" and "pulse input". Pulse meters do not send any other info than "on" and "off" (connection - no connection) and the measurement is the number of connections ("pulses") per time. To achieve that you need two pins, one for ground and one for the "pulses".

The third pin on a "standard" cheap flow meter just adds a small amount of voltage so there is something to indicate when a "pulse" is being sent. This allows the recipient to simply measure contact/pulse. This "standard" has evolved simply because it makes more sense to have the actual meter as the the passive part (you could achieve the same functionality the other way round too, by adding the voltage from the counter and just making contact in the meter).

I'll drop the answer here (if and when I get one)...

1 Like

Sounds like your biggest concern is the water level behind the dam. Why not measure that directly?
There are a number of 1-5v DC level transmitters on Amazon and elsewhere with options for 0-1m through 0-5m range. Then use a Fibaro Smart Implant to read the voltage. You would need a 12v power supply to drive the transmitter.

I was also wondering about this.

Is the measurement of changes in flow rate needed in this application? Or maintaining a bare minimum flow rate?

Water level is presumably simpler to measure, but I might not be understanding this setup and how the actual flow rate plays into the decision of which water source to use.

As a retired instrument engineer, I know that open flow water is tough to measure. A pipe on the dam outflow would be easier to measure.

I am definitely not an expert lol but I would’ve assumed that as well :slightly_smiling_face:.

It's a good suggestion and one I've also checked out, but it only solves half of my problem and is also only "reactive" (="stop taking water when at set minimum level").

It's a bit complex (as IRL generally is) but the very short version is that [incoming] water that will fairly quickly refill the dam and/or then exit as "overflow" is "free water" :slightly_smiling_face:. But in order to use this "free water" you need at least an estimate for the flow/fill rate/amount...

Yeah, I'm a conservation biologist by trade, and have also worked with streams and rivers so I am familiar with the challenges with hydrology/flow rate.

At the same time the pulse rate from a flow sensor is affected by the flow rate, and by placing that sensor "correctly" the amount of flowing water will correlate with the flow rate. I have the possibility of measuring the exact amount of water entering the dam (using a temporary wooden dam and bucket, basically :crazy_face:) under different flow circumstances and correlate those measurements to the equivalent pulse rates.

Then make a simple "model" (I don't need an elaborate one, even though the thought is an interesting challenge in itself, as is linking that to values for precipitation/evaporation :sweat_smile:) that will allow me to estimate how much water is flowing, by measuring the pulse rate from the sensor. Since I don't actually need the measurement, only logical action/cut-off settings for the rule machine, this would work great. As long as I can measure that damn "water flow"...

Hmmm, your reply got me thinking (thinking is dangerous... :slightly_smiling_face:).

A depth sensor + a Smart Implant in the dam would allow me to "auto-calibrate" the flow sensor pulses to the inflow (amount of water entering the dam). It would only work when the dam is below capacity (no outflow), but is a much more elegant solution than a wooden dam & buckets... :slightly_smiling_face:

Since the Smart Implant accepts two analog inputs, I could measure the water level in the well with an additional depth/pressure sensor (as a bonus). And the Smart Implant has two outputs as well... hmm...

Thanks!

I, and others, have found the Fibaro Smart Implant less than reliable.
And, reliable is what you want as opposed to digging around in bad weather to diagnose things.

good to know, thanks
any other devices with 1-5v dc input? zwave or zigbee

I could be wrong here but I seem to recall that the Shelly Plus Uni has the ability to count pulses.

According to the manual the Shelly Plus Uni can not only count pulses, it also has a volt meter (which allows for connecting a voltage-based pressure sensor, for measuring water depth).

But what it doesn't have is a bona fide Hubitat driver. Which would allow you to "tinker" with it (which is what it is made for). There seems to be a working community driver from 2021, but such a setup adds a certain "unreliability" (for my part). It also seems you are somewhat dependent on the Shelly app, which adds a some extra "complexity".

I'm using it to measure a 12 volt supply and it has worked quite well for that purpose. I haven't used any of the other functions so can't speak to how well they work (other than I was able to turn the outputs on and off).

I haven't had to use the Shelly app for much of anything as the Uni has a built in web server. Overall I was pretty impressed with a $15 gizmo.

So I got an answer from Lixee, concerning the Zipulses module. According to the answer it is meant to work with a "Hall effect device/sensor". Which according to Wikipedia is this: Hall effect sensor - Wikipedia (any day you learn something new is a day not wasted :slightly_smiling_face:).

So while it does count "pulses", it is geared for measuring the spinning thingy on standard water and gas meters by generating the "pulses" itself, with it's own sensor (based on the Hall effect and the voltage/magnetism fluctuations from the "spinning thingy" on the standard meters).

It seems it unfortunately does not count simple "off-on-off-on-off"-pulses from standard flow sensors.

Addition: Or maybe it does, since those simple 3-pin flow sensors (of which there are thousands) actually also work according to "the Hall effect":

Back to Lixee then, with re-phrased and more specific questions...

Here is a review/test/"in practice"-description (in French, but "Google Translateable") of the Lixee Zipulses module, if anyone is interested:

... and here is fairly thorough online manual (for the Lixee Zipulses module), also in French (but Google translateable):


If the Zipulses will work with a standard (water flow) pulse sensor (which now seems to be a distinct possibility), how do I go about to get a functional driver for Hubitat (being a 100% total Hubitat driver noob)?

According to the online manual it is Home Assistant-compatible ("natively compatible with ZHA and Z2M"): GitHub - fairecasoimeme/ZiPulses: Pulses Zigbee sensor to capture Gazpar or water counter

A short update: I have a dialogue going on with Lixee, they want to test "standard 3-pin water flow meters" with the Zipulses module before saying if it works (or not). Seems like a nice company (really helpful, no BS).