Just sharing this quick side project: my osmoBuddy RO/DI monitor and controller.
It's built around an ESP32 and ESPHome, and feeds into Home Assistant. It monitors:
- Flow rate
- Up to three pressures from 0-5V sensors (currently using the post-filter and tank pressure)
- Up to three switches (floats, etc, currently unused)
- Up to four 24V valves or relays.
- One on-board dry-contact relay (for signaling other switches, like an APEX for AWC or other pumps).
It doesn't do TDS measurements yet, but that's coming up in a future spin.
The "controller" part of the equation are the valves, which right now are set to be the inlet valve and a flush valve. Both are direct acting non-diaphragm solenoid valves. The water inlet valve controls the water feed to the whole unit (and was purchased from McMaster, $$$, but it needs to be reliable). The flush valve is bridged across the flow restrictor which allows it to be turned on to flush the membrane (purchased from Aliexpress). The pressure sensors are the 1/8" NPT "100PSI" stainless sensors from Amazon - they're reasonable if not DOA, and monitor line pressure to know when to turn on and off the main inlet valve, and to monitor the post-carbon-sediment stage to check membrane inlet pressures (and know when things clog up).
When tank pressures drop below a threshold, the inlet and flush valve open up, doing a pre-flush at start. After about 30s the flush valve closes and the membrane starts producing. When the tank pressure hits the threshold, the flush valve opens again to flush the membrane, and after about 30s we shut off the water flow. The flush valve stays open for a few seconds to bleed off the pressure from the unit.
There is a flow sensor which is a little spinny impeller. I have it on the post-filter side currently, but it can be moved elsewhere. I haven't calibrated pulse rate to volume yet.
Case is still in progress. Will post some GitHub info as well.
It's built around an ESP32 and ESPHome, and feeds into Home Assistant. It monitors:
- Flow rate
- Up to three pressures from 0-5V sensors (currently using the post-filter and tank pressure)
- Up to three switches (floats, etc, currently unused)
- Up to four 24V valves or relays.
- One on-board dry-contact relay (for signaling other switches, like an APEX for AWC or other pumps).
It doesn't do TDS measurements yet, but that's coming up in a future spin.
The "controller" part of the equation are the valves, which right now are set to be the inlet valve and a flush valve. Both are direct acting non-diaphragm solenoid valves. The water inlet valve controls the water feed to the whole unit (and was purchased from McMaster, $$$, but it needs to be reliable). The flush valve is bridged across the flow restrictor which allows it to be turned on to flush the membrane (purchased from Aliexpress). The pressure sensors are the 1/8" NPT "100PSI" stainless sensors from Amazon - they're reasonable if not DOA, and monitor line pressure to know when to turn on and off the main inlet valve, and to monitor the post-carbon-sediment stage to check membrane inlet pressures (and know when things clog up).
When tank pressures drop below a threshold, the inlet and flush valve open up, doing a pre-flush at start. After about 30s the flush valve closes and the membrane starts producing. When the tank pressure hits the threshold, the flush valve opens again to flush the membrane, and after about 30s we shut off the water flow. The flush valve stays open for a few seconds to bleed off the pressure from the unit.
There is a flow sensor which is a little spinny impeller. I have it on the post-filter side currently, but it can be moved elsewhere. I haven't calibrated pulse rate to volume yet.
Case is still in progress. Will post some GitHub info as well.
Last edited: