-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion: Controlling DOS Pumps #29
Comments
So I wonder if there's a better way. If it's possible to just set a single profile, and update the profile parameters with different pump speeds. If the constraints on dosing are only enforced in the Apex Fusion UI, it might be possible to just set the pump speed in the profile and let it run. Is it worth a try? |
A response in the neptune forums indicated the reason for the 1/3rd rate restraint is the pumps are not rated for continuous use, so they don't want to shorten the pump's life. I read somewhere in Neptune's literature the DOS pumps are designed for 5,000 hours of operation. I still think updating the profile might be a more useful approach to controlling the DOS than just having a bunch of presets and a slider. I have to set up the presets at the resolution I might want, and Neptune only allows 32 profiles in total across all devices. If I wanted to run 4 different DOS pumps with different possible ranges, I'm out of profiles... |
URL: http://apex.local/rest/config/pconf/1
mode is set from a composite value, based on the setting pair for rate and direction.
(Programmer geekery -> what's wrong with using 15 instead of -17 in this case?) bit 5 sets the direction:
so mode 21 is speed 5 ("7 mL / min") + 16 ("Forward"). |
I added a service call 'set_dos_rate'
The code behind the service is:
And my input_number setup to use it:
|
The DOS sensor returns the amount of volume remaining in the reservoir, but could also return the capacity from the status. The Neptune module has a setting for the reservoir capacity, and there is a place you can go in Fusion to "fill" the reservoir. The Apex automatically subtracts the volume delivered by the DOS from the remaining volume. You can also configure an optical water level sensor or the Neptune DDR to automatically set these values. For our purposes, these values can also be read and set using the mconf endpoint. Note this applies to both DOS pumps in a DOS module. URL: http://apex.local/rest/config/mconf/4
I've got my DOS connected to a 5 gallon jug next to my tank as a top-off reservoir (for now), so I don't see using the sensor approach (for now). Maybe the DOS sensor exposed to HA should be a special sensor that has both the capacity and the remaining volume, and exposes a "refill" button, or a "refill" service that takes an amount as a parameter? |
Just an update that I've implemented this in my own fork, and have given up using water level controls in my ATO. I'm using the salinity (filtered signal) as a direct control with a proportional response. It's working pretty well so far. |
I also added a DOS refill service to my fork at https://github.com/brettonw/apex-ha |
I have been trying to figure out how to control my DOS pump through the HA integration, and I've arrived at an intermediate hack solution that works for now, but I wonder if there's a better way.
You have two choices with the DOS. You can set it to OFF/ON, which will give you 0 or 25ml/min dosing rates. Or you can set a profile.
Unfortunately the Neptune profiles are over-constrained, so while there is some ability to set the DOS pump speed, you can't just set it to that speed and let it go. Apex will always try to manage a dose, instead of a rate. The actual dose appears to be limited to 1/3rd of the rate. I don't understand what the reasoning behind this might be. I'm curious if it's enforced at the Apex, or just in the ApexFusion UI.
In order to try to get a controlled rate, I meticulously went into ApexFusion and created 10 profiles corresponding to 1ml/min up to 10ml//min.
I created an input_number with a range from 0..10, and I update the profile on the Apex device with an automation like this:
I expose this on lovelace, so I have a slider:
The text was updated successfully, but these errors were encountered: