rstrouse / nodejs-poolController-dashPanel

A dashboard panel for tagyoureit/nodejs-poolController
33 stars 20 forks source link

Request: add a 'dose by time' option to the manual acid dosing screen #33

Closed johnny2678 closed 1 year ago

johnny2678 commented 3 years ago

Currently, you can only dose by mL, which requires you to have you mL/min properly set in settings. But if you're trying to calibrate to figure out what your actual mL/min is... 🤷‍♂️ :)

Maybe something like this?

image

Not a priority, just a suggestion.

rstrouse commented 2 years ago

I gave this quite a bit of thought. REM Chem is biased on volume for very specific reasons.

Doses are demand based and in order to retain that, it needs to build dosage by volume as it relates to the size of the pool, temperature, and a couple of other chemistry factors. In order to retain that we would need to first calculate a dose amount base upon the flow rate of the pump. This would still require a flow rate be entered as a starting point prior to calibrating the pump.

REM also uses this value to keep track of the levels in the tanks. It needs to know how much it removed from the tank in order properly maintain the level. That too requires a flow rate over time. It would again require some flow rate in order to get to all the management going on.

The final piece is the reporting. The flow rate is used to show how much liquid was dosed over the period and ensure the max amounts are within limits. For all these reasons the Dose By Time is in conflict with the functions of REM Chem.

So this leaves the, question of how do we get a calibrated pump volume in the beginning if we do not have a flow rate to start with. The answer to this is pretty straight forward. All peristaltic pumps have a target flow rating. So far my experience is that the rated output is close but almost always higher than actual. The reasons for this is that the ratings appear to rated without a check valve and brand new pump tube. The other thing that impacts it is that the power at the speed controller. Not every power supply puts out the same.

Mine is 8mL/min lower than the rated output for the pump of 120mL/min. It is remarkably close and once you realize this is about 1/4 of a shot glass, you can see how good the accuracy actually is. When I dump a gallon in the tank I still tell it that I put exactly one gallon in. However, there are differences between the fill line on every gallon added. That being said REM Chem still does an awesome job of reminding me to keep the tank full and the level is pretty accurate.

tagyoureit commented 2 years ago

Maybe we just put something on the REM side that does a dose for a period of time? It doesn't have to relate to Nixie and can be used for calibration.

johnny2678 commented 2 years ago

Maybe we just put something on the REM side that does a dose for a period of time? It doesn't have to relate to Nixie and can be used for calibration.

Yea, this would work. Doesn't need to be part of dashPanel. Ultimately, I've just got a script that I can run from the command line that flips the GPIO to high, runs for 10 seconds, and then stops. It's just a pain to lug my laptop out to the pool pad to start it. I guess I could wire something up in NodeRed that might be more mobile friendly.

Don't really want to bother you chaps too much with it. Was just a passing thought. My acid tank is draining slower than Dash is reporting, so I need to get the catch cups out and recalibrate again.

rstrouse commented 1 year ago

Ok so about a year later we got around to the calibration function and was added to the system. Thanks for the idea but it turned out to be more than just simply dosing by time. Anyhow pull njsPC and dashPanel for this new feature.

image image