Programming help

Russter

Northern Reefer
Can someone please help me with programing?

I am not sure if I am doing this right at all but I think I have the basics. What I want is to set up some failsafes in the code and just to make sure everything is covered. I just got my apex the other day and I am unable to wrap my head around some of the programming so please don't laugh at me if it is totally wrong. ;) Also, I want my dosers to be offset from each other so that they don't come on at the same time but I am not sure how to do that either.
Thanks in advance
-Russ

Firmware: 4.04L_2B11
Listing generated: 03/11/2011 09:51:15

PROGRAM

SndAlm_I6 [0]
Program Type: Advanced
Display Icon: Sound B
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If Temp > 08.50 Then ON
If Temp < 07.50 Then ON

SndWrn_I7 [1]
Program Type: Advanced
Display Icon: Sound A
Program:
Set OFF
If Temp > 80.0 Then ON
If Temp < 78.0 Then ON
If pH > 08.40 Then ON
If pH < 07.75 Then ON

EmailAlm_I5 [2]
Program Type: Advanced
Display Icon: Email
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If pH > 08.50 Then ON
If pH < 07.50 Then ON
If Power Apex Off 005 Then ON
If Power EB8_3 Off 000 Then ON

Heater_1 [3]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback ON
If Temp < 79.7 Then ON
If Temp > 80.0 Then OFF

Heater_2 [4]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback OFF
If Temp < 78.5 Then ON
If Temp > 79.5 Then OFF

Daylights [5]
Program Type: Light
Display Icon: Sun
Program:
Fallback OFF
Set OFF
If Time 12:00 to 22:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Return [6]
Program Type: Advanced
Display Icon: Bars
Program:
Fallback ON
Set ON
If FeedA 000 Then OFF

Calcium [7]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 023:00/001:00/000:00 Then ON
If pH > 08.35 Then OFF
If FeedA 000 Then OFF

Alkalinity [8]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 023:00/001:00/000:00 Then ON
If Temp > 83.5 Then OFF
If FeedA 000 Then OFF

Actinics [9]
Program Type: Light
Display Icon: Light A
Program:
Fallback OFF
Set OFF
If Time 11:00 to 23:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Skimmer [10]
Program Type: Advanced
Display Icon: Hourglass
Program:
Fallback ON
Set ON
Min Time 005:00 Then OFF
If FeedA 010 Then OFF
 
double check your SndAlm outlet - looks like you have that pH/Temp parsing bug in there. Make sure you enter pH as lower and upper case and not all upper case.
 
If you want your dosing to be opposite each other, do something like this with your oscillate statements

first oscillate
OSC 0/1:00/23:00 Then ON

second oscillate
OSC 23:00/1:00/0 Then ON

That will have the effect of delaying the second oscillate by 23 minutes from the first. Note however that since the sum of your individual oscillate times don't equal 60 minutes (or 24 hours) that over time they're going to become more and more random and could overlap at some point in the future. Consider making them evenly divisible into an hour (i.e. 1 minute on, 29 minutes off).
 
Alan, I have had better results using lowercase 'ph'.

Russ, I see a few minor issues:

Do you have any kind of power backup? The If Power... statements will be of little use if not. What is your overall power strategy?

Do you have/need any type of cooling, such as fans?

The Min Time duration is in minutes:seconds, you have a 30 second cooling down period, is this enough?

You probably don't need a pH check for Calcium, you most likely do need it for Alkalinity depending on your choice of supplement. There are a couple ways to offset the dosing, I dose my alkalinity only at night and my calcium only during the day.

[Alk]
OSC xxx/xxx/xxx Then ON
If Time 8:00 to 18:00 Then OFF

[Ca]
OSC xxx/xxx/xxx Then ON
If Time 18:00 to 8:00 Then OFF

In your skimmer outlet, you have an unneeded Min Time...OFF. The only OFF condition is via the Feed cycle and the added delay of 10 minutes is in excess of the 5 minute Min Time.

Todd
 
Thanks so much for the help. So if I get this right and I want it to dose for 1 min every hour and the second one to dose one min every hour but delayed 30 mins from the first one would it look like this (not sure where I got 23 mins from LOL):

Calcium [7]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 000:00/001:00/059:00 Then ON
If pH > 08.35 Then OFF
If FeedA 000 Then OFF

Alkalinity [8]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 030:00/001:00/000:00 Then ON
If Temp > 83.5 Then OFF
If FeedA 000 Then OFF

pH is shown as lower case p and upper case H. Is that right? I am not familiar with the bug you are talking about as I am new to this controller. How does everything else look and am I missing anything obvious? And thanks for that New User Guide. It made setting this thing up much clearer.
-Russ
 
Alan, I have had better results using lowercase 'ph'.

Russ, I see a few minor issues:

Do you have any kind of power backup? The If Power... statements will be of little use if not. What is your overall power strategy?

Do you have/need any type of cooling, such as fans?

The Min Time duration is in minutes:seconds, you have a 30 second cooling down period, is this enough?

You probably don't need a pH check for Calcium, you most likely do need it for Alkalinity depending on your choice of supplement. There are a couple ways to offset the dosing, I dose my alkalinity only at night and my calcium only during the day.

[Alk]
OSC xxx/xxx/xxx Then ON
If Time 8:00 to 18:00 Then OFF

[Ca]
OSC xxx/xxx/xxx Then ON
If Time 18:00 to 8:00 Then OFF

In your skimmer outlet, you have an unneeded Min Time...OFF. The only OFF condition is via the Feed cycle and the added delay of 10 minutes is in excess of the 5 minute Min Time.

Todd

Todd, thanks for the tips. I will be making some of those changes as I do not have backup power and do not have any fans/cooling (I live in Canada so it's heaters for me with only T5 lighting.) Do T5's need a cooling down period?
 
Last edited:
How does this look?


PROGRAM

SndAlm_I6 [0]
Program Type: Advanced
Display Icon: Sound B
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If Temp > 08.50 Then ON
If Temp < 07.50 Then ON

SndWrn_I7 [1]
Program Type: Advanced
Display Icon: Sound A
Program:
Set OFF
If Temp > 80.0 Then ON
If Temp < 78.0 Then ON
If pH > 08.40 Then ON
If pH < 07.75 Then ON

EmailAlm_I5 [2]
Program Type: Advanced
Display Icon: Email
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If pH > 08.50 Then ON
If pH < 07.50 Then ON

Heater_1 [3]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback ON
If Temp < 79.7 Then ON
If Temp > 80.0 Then OFF

Heater_2 [4]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback OFF
If Temp < 78.5 Then ON
If Temp > 79.5 Then OFF

Daylights [5]
Program Type: Light
Display Icon: Sun
Program:
Fallback OFF
Set OFF
If Time 12:00 to 22:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Return [6]
Program Type: Advanced
Display Icon: Bars
Program:
Fallback ON
Set ON
If FeedA 000 Then OFF

Calcium [7]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 000:00/001:00/059:00 Then ON
If FeedA 000 Then OFF

Alkalinity [8]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 030:00/001:00/000:00 Then ON
If FeedA 000 Then OFF

Actinics [9]
Program Type: Light
Display Icon: Light A
Program:
Fallback OFF
Set OFF
If Time 11:00 to 23:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Skimmer [10]
Program Type: Advanced
Display Icon: Hourglass
Program:
Fallback ON
Set ON
If FeedA 010 Then OFF
 
How does this look?


PROGRAM

SndAlm_I6 [0]
Program Type: Advanced
Display Icon: Sound B
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If Temp > 08.50 Then ON
If Temp < 07.50 Then ON


SndWrn_I7 [1]
Program Type: Advanced
Display Icon: Sound A
Program:
Set OFF
If Temp > 80.0 Then ON
If Temp < 78.0 Then ON
If pH > 08.40 Then ON
If pH < 07.75 Then ON

EmailAlm_I5 [2]
Program Type: Advanced
Display Icon: Email
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If pH > 08.50 Then ON
If pH < 07.50 Then ON

Heater_1 [3]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback ON
If Temp < 79.7 Then ON
If Temp > 80.0 Then OFF

Heater_2 [4]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback OFF
If Temp < 78.5 Then ON
If Temp > 79.5 Then OFF

Daylights [5]
Program Type: Light
Display Icon: Sun
Program:
Fallback OFF
Set OFF
If Time 12:00 to 22:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Return [6]
Program Type: Advanced
Display Icon: Bars
Program:
Fallback ON
Set ON
If FeedA 000 Then OFF

Calcium [7]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 000:00/001:00/059:00 Then ON
If FeedA 000 Then OFF

Alkalinity [8]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 030:00/001:00/000:00 Then ON
If FeedA 000 Then OFF

Actinics [9]
Program Type: Light
Display Icon: Light A
Program:
Fallback OFF
Set OFF
If Time 11:00 to 23:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Skimmer [10]
Program Type: Advanced
Display Icon: Hourglass
Program:
Fallback ON
Set ON
If FeedA 010 Then OFF
 
How does this look?


PROGRAM

SndAlm_I6 [0]
Program Type: Advanced
Display Icon: Sound B
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If Temp > 08.50 Then ON
If Temp < 07.50 Then ON

Alkalinity [8]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 029:00/001:00/000:00 Then ON
If FeedA 000 Then OFF

You are still getting the parsing error. Also, I would change the Alk offset to 29 minutes, just so you get an even 30 minute cycle. This will keep it sychronized, otherwise it will drift as 24 hrs is not evenly divisible by 31 minutes.

Todd
 
How do I fix the parsing error?




actually I think I figured it out. I changed the pH to PH and now it seems to report it as pH in the alarm.


SndAlm_I6 [0]
Program Type: Advanced
Display Icon: Sound B
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If Temp > 08.50 Then ON
If Temp < 07.50 Then ON

SndWrn_I7 [1]
Program Type: Advanced
Display Icon: Sound A
Program:
Set OFF
If Temp > 80.0 Then ON
If Temp < 78.0 Then ON
If pH > 08.40 Then ON
If pH < 07.75 Then ON

EmailAlm_I5 [2]
Program Type: Advanced
Display Icon: Email
Program:
Set OFF
If Temp > 82.0 Then ON
If Temp < 75.0 Then ON
If pH > 08.50 Then ON
If pH < 07.50 Then ON

Heater_1 [3]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback ON
If Temp < 79.7 Then ON
If Temp > 80.0 Then OFF

Heater_2 [4]
Program Type: Heater
Display Icon: Thermometer
Program:
Fallback OFF
If Temp < 78.5 Then ON
If Temp > 79.5 Then OFF

Daylights [5]
Program Type: Light
Display Icon: Sun
Program:
Fallback OFF
Set OFF
If Time 12:00 to 22:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Return [6]
Program Type: Advanced
Display Icon: Bars
Program:
Fallback ON
Set ON
If FeedA 000 Then OFF

Calcium [7]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 000:00/001:00/059:00 Then ON
If FeedA 000 Then OFF

Alkalinity [8]
Program Type: Advanced
Display Icon: Spiget
Program:
Fallback OFF
OSC 029:00/001:00/000:00 Then ON
If pH > 08.50 Then OFF
If FeedA 000 Then OFF

Actinics [9]
Program Type: Light
Display Icon: Light A
Program:
Fallback OFF
Set OFF
If Time 11:00 to 23:00 Then ON
If Temp > 82.0 Then OFF
Min Time 000:30 Then OFF

Skimmer [10]
Program Type: Advanced
Display Icon: Hourglass
Program:
Fallback ON
Set ON
If FeedA 010 Then OFF
 
Last edited:
After the update, it often looks as if it has worked properly. You need to verify that it accepted it. Switch to a different outlet and then come back. It looks like it is still there in the SndAlm.

Todd
 
Back
Top