NEVER program a Neptune DOS this way

Last night I learned the hard way how never to write logic statements when making custom configuration to my DOS.  The line in question was:

If ALK < 8.0 Then On

I was attempting to NOT have my DOS add any of my ALK 2 Part if the alkalinity of the aquarium was less than 8.0 dKH.  What I did not think clearly about in my late night "lets mess with the aquarium programming" is that this line is evaluated AFTER the dosing schedule I had created for the DOS.  Originally the DOS only added 30 ml per day of alkalinity 2 part.  However as with all Neptune commands, the last one that evaluates as true is the one that is counted.  Meaning if I had the following:

If PH > 8.5 Then Off
If ALK < 8.0 Then On

and the system had a pH of 8.9 and an Alkalinity of 7.8 dKH both lines would be "true". However only the last "true" statement is used.  So this would cause the DOS to turn "on".  My second mistake was assuming that "on" state was still using my dosing profile.  This is NOT true as any custom lines are evaluated AFTER the DOS schedule.  So what did this do?  Well it turned my DOS on which really is the DOS continuously running.  450ml later I realized my mistake and turned it off.  Ran an Alkalinity test and I had jumped from 7.2 to 11.01 dkh.  Likely in the coming days and weeks I will lose a grouping of my SPS due to this error.  Going forward I would recommend a few things about to always keep in mind when editing DOS logic.

  • Always remember that any custom logic is evaluated AFTER the DOS schedule.
  • NEVER use a custom line that turns the DOS to ON.  This will simply make the DOS continuously run regardless of schedule.  A much safer approach is to only use "off" commands.  ie I could have used:

    If ALK > 8.0 Then Off instead of If ALK < 8.0 Then On

    The first one works well, the second kills your aquarium.

Quick video to show where the DOS custom code lives.

 

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.