Yes, I do the same thing with Calcium and Ammonia and others, using number helpers for now.I used the ONVIF integration for this as I saw there is a bug in the current Tapo one. You can just point the stream to https://ipadress:2020 and for user password you have to go into your Tapo app and configure camera account on the camera settings.
It's not necessarily just about being cost effective, could be about having integration with HA, helping the community, testing for more than just Ca/Alk/Mg, etc. For now I test manually with salifert kits and added a manual entry:
Peristaltic pumps with stepper motors aren't all that expensive, I think with more rotor heads and smaller tubing like 1x3mm you might be able to achieve the required accuracy.
For the pumps, I'm using an AC, set flow rate of 1.1 mL/min from BRS ($60 for this thing and all it is is a motor...) attached to an outlet that I turn on for a certain amount of time, I created a blueprint for it:
Aquarium - Turn on a switch to activate Doser Equipment for a certain amount of Volume or Time. Automation
This script is intended to dose your aquarium for a certain amount of time. Choose an entity to turn on, typically a 2 part Doser @ 1.1 mL/min, then set the amount of time to dose for. The script will turn on the target switch for the set time, then the switch will turn off. IMPORTANT: Use the...
community.home-assistant.io
I'm also using an Atlas-scientific EZO pumps and created the code for it in ESPHome to dose whatever volume you need! I'm using 1 of them to do a 5 gallon water change weekly. Here's my store link (I can share the code if you wanted as well):
AquaPi - Peristaltic Pump EZO Circuit — Capital City Aquatics
This is an Add-On for the AquaPi for ESPHome Main Page , Blueprints , & GitHub . More Information below.
www.capitalcityaquatics.com