In particular, I have
Code: Select all
ReefAngel.Relay.DelayedOn( Port3 );
Code: Select all
if(!ReefAngel.HighATO.IsActive()) {ReefAngel.Relay.Override(Port3,0);}
The second detects whether the water level in the skimmate collector has reached the sensor, and masks the protein skimmer into the "off" position.
The unexpected behavior follows a feeding mode cycle, where the skimmer has already filled the skimmate collector. The skimmer is masked off before the feeding mode, but turned back into "Auto" mode following the feeding mode (presumably because of the "DelayedOn" command).
While the Override command will mask the skimmer back off again if the HighATO is still active, that is not always the case with the sensor. Sometimes it detects a HighATO condition (based on the Avast Marine water level pressure sensor), masks the skimmer off, but then decides the level isn't high enough to warrant the HighATO switch (either due to leaking air pressure from the upended pipe, or who knows why). In short, sometimes this can cause an overflow from my skimmate collector (the skimmate continues to drain from the collection cup for several seconds after the skimmer is powered off, due to a siphon effect).
Both of these lines are in the loop() command. Is this behavior expected? Can I accomplish what I want (keeping the skimmer masked off) while still benefiting from the DelayedOn behavior?