I just tried it with a BSS138 as well, to rule that out for sure. Unfortunately, it doesn’t work with that either.
So you have gate directly on 749 signal line, source on gnd line and drain on esp gpio pin with 10-47k pullup.
If it doesn’t work, there is something that doesn’t match. Either that signal voltage is not 2.3V or there is some other problem.
What’s the behavior? Esp doesn’t count?
correct.
correct
I have already discussed this with the manufacturer to see whether the signal could be tapped in parallel, but even back then they did not see any feasible option.
It therefore seems that the only viable solution is to wait until the meters are replaced.
I’d like to understand why it doesn’t work.
With the given information nothing comes to my mind… Since you only have two wires, it definitely is reed switch and not some sensor. And 2.3V should trigger BSS138 with good margin…
Did you ever measure the signal voltage?
Do you have an idea how long is the pulse? Possible it’s shorter than some filter you use or shorter than loop cycle?
You tested that your mosfet circuit works, if you disconnect gate from signal wire and give gate a 3.3V pulse from esp, it gets triggered?
@goev88 Thank you for making this post. I have been researching this topic, since I have very similar meters to yours, also from Neovac:
In my case, unfortunately, the Superstatic equivalent is not in my home but in a utility closed in the basement, and I am not comfortable cutting the wires, especially if I can’t double-check that the Superstatic is still receiving data.
My first idea was to point a camera at the meters and do some image recognition, but that seems like a last-resort solution.
Instead, after researching the no-contact sensing approach more, I came across 4 interesting pieces of information, and I’d like your opinion.
- In a device like the Flume, the sensing seems to be done by a hall-effect or a magnetoresistive sensor. But one key aspect is that they have a huge PCB antenna to overcome the water meter and device casings.
(source: Diving Into the Flume Water Monitor)
I am not sure what the sensor is exactly, but I’ll keep researching it.
-
According to Flume’s support, my meter is a multi-jet type meter, but their device only supports positive displacement meters. I’m not yet sure what the implications are in terms of designing my own device, but that might throw a wrench in the works.
-
I found about a (dead?) project for an open-source device similar to the Flume. The author chose an ALT021-10E sensor for his design, citing the very high sensitivity necessary to overcome the casing without amplification:
1 x ALT021-10E
An ultra sensitive tunneling magnetoresistance (TMR) sensor. This is the only sensor I’ve found that is sensitive enough to measure the rotation of the water meter magnet without amplification. While this works in V2, the next design will include a small amplification stage to add room for margin.
(source: https://web.archive.org/web/20240225145535/https://hackaday.io/project/191398-ydrip)
They don’t talk about multi-jet vs positive displacement types, but I would not necessary conclude that their device was compatible with both. Maybe they only designed it for one type.
- A device like the Flume seems to operate by getting its antenna as close as possible to the moving part of the meter, not the display. I mention that because you said in one of your previous posts that you could not overcome the plastic casing around the meter. However, if your meter is built like mine, I think your sensor should be against the metal part below the plastic casing. A picture is worth a thousand words:
So I have a few questions for you:
- If you’re still interested and you still have the hardware, could you try your sensor (LJ12A3-4-Z/BX, NPN, NO) against the metal body part of the meter and check if that changes anything?
- Do you have thoughts about how you would go around including an antenna to amplify the signal to the sensor?
- Did you consider other no-contact sensors when you initially researched a solution? From Digikey, I don’t see a lot of sensors in the same class as the ALT021-10E
- Do you know what would cause the Flume to be compatible with one type of meter and not the other? In both cases, there’s metal moving around in the meters, and I assume you could detect it with the right equipment
I’m really interested in seeing what’s doable with these meters, so I think I’m going to keep researching this topic for a while. If you’re interested, I can post updates here. Otherwise, I’ll start my own thread.
Thanks!
I gave it more thought and I think I want to get an off-the-shelf part. The ALT021-10E sounds very nice with its very high sensitivity, but I could not find a pre-existing sensor board, and with its tiny package size (DFN6), it’s going to be impossible for me to interface it. It’s not meant for DIY and I don’t want to create a custom board for it.
So instead, I’m thinking of giving the BMM350 a try. It’s commonly available as a board, affordable (<$10), supports I2C and has readily available libraries. Sure, it’s less sensitive, and my use case is not listed as something they market the sensor board for. But since it’s supposed to be able to work as a “magnetic compass” and for “dead reckoning”, I am hopeful it would be good enough to accurately measure the impeller’s magnet in my water meter.
What do you think? Is this worth a shot, or do you think there’s no way it will work? Any pitfalls you can already foresee with this approach?
It could work. But you need to write the code for it.
II cut a reed cable at my place to test other possibilities. If you reconnect it afterwards using a Wago terminal, data transmission continues normally.
I tried AI-on-the-edge, but unfortunately, it didn’t work as desired for my setup.
I also looked into Flume and contacted their support. According to them, they don’t support Neovac or lack experience with it. I therefore discarded this option.
There are similar products, such as the one from HomeWizard, which uses the same approach but doesn’t work with Neovac. I tested this as well.
I tested this too, and unfortunately, it doesn’t work either. [Referring to the metal body test]
I don’t have any ideas on that. [Referring to the antenna question]
I didn’t test any other sensors, as the LJ12A3-4-Z/BX (NPN, NO) is actually already very sensitive.
According to Flume, Neovac is listed as incompatible because they lack experience with it. It might be compatible, but someone would need to verify it, and honestly, I didn’t want to do that.
Feel free to give it a try. I invested a lot of time and money trying to integrate the Neovac water meters into HA, unfortunately without success. Please let me know if you have better luck. So far, I haven’t found a solution other than completely replacing the water meters.
I disagree. Using it here without issues since almost two years. Glare is not an issue as you can reduce luminosity of the LED. This my live picture:
What are you using it for? My goal was to get live readings. When I turn on the tap, I wanted to see how many litres are flowing through in real-time, and AI on the edge is too slow for that. At least, it didn’t work for me.
You wrote that you couldn’t use it because of glare and I replied that this is no problem.
The process of taking a picture and processing it takes about a minute. I take one reading every 5 min, which is ok for me. That interval can probably safely be reduced to 2 min.
That’s good to know, thanks for sharing! It’s definitely my plan B if I can’t make it work with a magnetoresistive sensor.
By the way, did you need to 3D print an enclosure around the meter with the ESP32 CAM? Every post I have seen about this approach seems to mandate a 3D printed adapter, but I had a different plan consisting in “taping” the ESP32 against the closet door and pointing it at the meter. I don’t have a 3D printer, nor do I have the skills to design a custom fitting adapter specifically for my meter. So being able to do away with the 3D printed parts would be a relief.
–
@goev88 Thank you for your detailed answers, that was very helpful! I understand your frustration with this project, but thanks for sharing your insights nonetheless and helping me.
Just out of curiosity, how did you initially select the LJ12A3-4-Z/BX sensor? It sounds like it is designed as a binary proximity sensor rather something that can measure variations in the magnetic field.
(sorry for the potato quality, it’s the only datasheet I could find)
If I am reading the datasheet correctly, it looks like it is designed to detect metal up to 4mm away. I am not sure how it is supposed to make the distinction between the metal of the enclosure and the metal of the impeller’s magnet. And I estimate that the magnet is 3-5cm away from casing, inside of the meter (diameter of the meter / 2), so that’s too far for that sensor.
(credit: Single Jet Vs Multi Jet Water Meter - BMAG Meter)
Given all that, I am unsure about how you wanted to use that sensor, but it’s probably because I misunderstand how it’s supposed to work.
The ESP with its camera needs to be mounted in a minimum distance to get a sharp picture. The printed adapter is just simplifying this task and not a must.
A friend printed my adapter. If I were you I would buy a PVC tube and cut it to my needs. Fixing one side on the meter should not be too difficult. Close the other side with wood or thick paper, make the two holes for the camera and the LED and tape the ESP on it.
After spending more time reading about similar projects, I think have a much better understanding of the approach you tried with the proximity sensor.
I believe the goal of the sensor is to detect the metal in the meter dial’s hand. Basically, the sensor “pulses” every time the metal part goes under it while water is running.
But for that to work, you need both:
- A piece of metal in the meter’s dial
- A sensor that is sensitive enough to detect the metal through the plastic / glass face of the meter
- A meter that is not fully metal, as it would always trigger the sensor
So for this reason, I believe it was never going to work for your NeoVac meter, because it does not have a metal part in its dial and your sensor is half as sensitive (4mm instead of 8mm) as the sensor that was successfully validated by Pieter Brinkman. And point #3 also means it would never work by pointing the sensor at the brass part of the meter, that was my mistake, I originally completely misunderstood how the sensor was meant to be used.
Flume and YDrip, on the other hand, take a different approach and try to detect variations in the magnetic field around the meter. On paper at least, this should be a more robust approach, as I believe that NeoVac meters should still have a magnet embedded somewhere to be able to send a pulse to the Superstatic (or equivalent).
I found online that there are some very cheap meters which are designed with the counting face of the meter being immersed in water. In these meters, it seems like everything is mechanical and they only use gears to rotate the numbers on the display. However, this is not the case for NeoVac’s meters, so I believe they must have some magnets inside to translate the rotation of the impeller on the wet side to something that can be measured and displayed on the dry side.
And assuming this magnet is strong enough generate a magnetic field that is not lost in the ambient magnetic noise, it is possible that it could be reliably measured from outside the meter. So that gives me hope that a hall effect sensor or a magnetoresistive sensor could work for that application.
And on that note, I’m off to research the most promising sensors for that approach. I just want to mention this thread, as they are basically doing the same thing but for a gas meter: Attempting to read an Elster ACM-250 dumb gas meter with a QMC5883L
I have some more data to share with all of you. While I’m waiting to receive some sensor parts, I installed an app called Physics Toolbox Suite on my S25 and used it to record the magnetic field next to the Neovac water meter while a bath was being drawn.
It was very interesting, you can definitely see some periodic variations of the magnetic field in close proximity to the meter. But I am confused by the scale of the variations. I was expecting to see a sinusoidal shape, with a period matching either a full rotation of the small hand or of the last digit of the meter (1L).
However, as you can see from the graph, the period seems much longer, on the scale of 1 minute. In 1 minute while drawing a bath, you get much more than 1L. So I’m not too sure what to make of it yet. I’ll definitely repeat the experiment, with a longer measurement period, and also write down the corresponding numbers on the display.
But overall, I find this encouraging. It seems like when the water is running, a variation of the magnetic field outside the meter can definitely be detected, so it should be possible to use such a sensor to read the meter automatically. I also stumbled upon this other project, which looks quite promising. Even though it is designed for a different type of meter (I think nutating disc meters are also called positive displacement meters) than what NeoVac manufactures, the same general principles should apply:
- Find where to place the sensor on the meter
- Take measurements of the local field when it’s not running
- Use that data as basis for detecting variations
- Determine the correlation between the variations and how much water is going through
- Profit!
The wheel visible in the left window looks like optical encoder disc for IR reflection sensor.








