ATO program question

Closser

New member
Hello everyone,

I've just installed a float switch in my display tank to control an aqualifter through the Apex. The float is shielded by a medicine bottle with holes drilled into the bottom to protect it from the Vortec. Following the lead of the unofficial user's guide (thanks!) I used included the "defer" command in my programming for the outlet powering the aqualifter.

Fallback OFF
If Switch1 OPEN Then OFF
If Switch1 CLOSED Then ON
If FeedA 060 Then OFF
Defer 030:00 Then ON

My question is: What time length would you recommend for the defer command? I'm new to all of this...:headwally:

Thanks all!
 
You want to use the Min Time on the Aqualifter outlet. Use the Defer on the float virtual outlet:

[float virtual outlet sump_low]
If Switch1 OPEN Then OFF
If Switch1 CLOSED Then ON
Defer 005:00 Then ON



[aqualifter outlet]
Fallback OFF
Set OFF
If Outlet Sump_Low = ON Then ON
If Outlet Sump_High = ON Then OFF
Min Time 060:00 Then OFF


That will keep the float from sloshing and turning on/off. It will also keep the Aqualifter from running but once an hour regardless of what the float calls for.
 
Last edited:
Thanks Alan! I hadn't used a virtual outlet, but I think I've now got it set up the way you suggested. Much appreciated :)
 
There are two advantages to using a virtual outlet to contain your float code:

1 - you can turn the outlet OFF via the status page. Can't do that with a switch.
2 - you can use the Defer statement to eliminate the float bouncing and turning on/off.

Good luck.
 
Pardon me, but I'm a little confused by how the 'min time' command actually works. I understand that If 'min time' is set to 60 minutes, it should prevent the aqualifter outlet from switching on more frequently than once an hour. Does that also mean that when triggered by the float, the outlet will remain ON for 60 minutes regardless of the position of the float switch?
 
Nevermind! After realizing that I had the aqualifter on a TRIAC outlet that was stuck on I moved to it one of the relays and problem solved.
 
The Aqualifter pumps only draw a couple of watts and need to be on the mechanical relay outlets as you discovered.

There's a good writeup on the differences between Defer and Min Time in the programming section of the User Guide. It will put you to sleep at night!
 
There are two advantages to using a virtual outlet to contain your float code:

1 - you can turn the outlet OFF via the status page. Can't do that with a switch.
2 - you can use the Defer statement to eliminate the float bouncing and turning on/off.

Good luck.


Hello Alan, here i am again!! :)
Can you take a look on this code?

Fallback OFF
Set OFF
If Switch1 CLOSED Then ON
Defer 030:00 Then ON
OSC 030:00/001:00/000:00 Then ON
If Time 08:00 to 23:59 Then OFF
If Switch1 OPEN Then OFF
If Switch2 OPEN Then OFF


What you think? This is my ATO code and i didn´t use a virtual outlet. It´s programmed directly on the outlet#6 of my EB8.


I didn´t understood what you said on quote, because i can turn on/off the outlet via the status page.

Tks
 
Couple of suggestions:

1. you don't need the Set OFF because you have both the Oscillate which has an implicit OFF and you also specifically set the outlet to ON or OFF based on Switch 1. Doesn't hurt anything, doesn't help.
2. The Defer can go anywhere but remember it applies to the entire outlet, not just on the code it follows. So that's probably going to cause you some issues because it applies to the oscillate and the Switch1 statements as well. That's the reason for the dedicated virtual outlet that contains the float code.
3. Because of #2, your Oscillate won't work because it's only ON for 1 minute but your Defer requires the outlet to be in the ON state for 30 minutes.

If you want the float to be CLOSED for 30 minutes and only run the ATO for 1 minute out of every 30, you need another outlet. IF you don't want to do that, then try this instead:

Fallback OFF
If Switch1 OPEN Then ON
If Switch2 CLOSED Then OFF
If Switch1 CLOSED Then OFF
If Time 08:00 to 23:59 Then OFF
Defer 30:00 Then ON

The OFF conditions will happen immediately, the ON condition must be true for 30 minutes in order for the outlet to turn ON. It will remain ON until Switch1 or 2 closes.
 
If you want the float to be CLOSED for 30 minutes and only run the ATO for 1 minute out of every 30, you need another outlet.

Yes, i need this! I did a Virtual Outlet and the codes now are:

[ATO_PUMP]
Fallback OFF

If Switch1 CLOSED Then ON
if outlet ATO_ALLOW = on then on
If Time 08:00 to 23:59 Then OFF
If Switch1 OPEN Then OFF
If Switch2 OPEN Then OFF


Virtual OutLet [ATO_ALLOW]
Fallback OFF
Set OFF
OSC 030:00/001:00/000:00 Then ON


If i want to use the defer command, do i need a second Virtual Outlet?
Sorry about the inconvenience Alan!!
 
[ATO_PUMP]
Fallback OFF
If Switch1 CLOSED Then ON
if outlet ATO_ALLOW = on then on
If Time 08:00 to 23:59 Then OFF
If Switch1 OPEN Then OFF
If Switch2 OPEN Then OFF
Ricardo, [ATO_ALLOW] is conflicting with Switch1. You have both controlling when [ATO_PUMP] will turn ON. If your intention is to use Switch1 to control the normal addition and [ATO_ALLOW] as a maximum duration, then change as follows:

[ATO_ALLOW]
OSC 029:00/001:00/000:00 Then ON

[ATO_PUMP]
Fallback OFF
Set OFF
If Switch1 CLOSED Then ON
If Outlet ATO_ALLOW = OFF Then OFF
If Time 08:00 to 23:59 Then OFF
If Switch2 OPEN Then OFF

You don't need to use Fallback with virtual outlets and Set OFF is not needed when using OSC. So the normal state of [ATO_PUMP] is OFF. Then if the sump is low (Switch1) then it will attempt to turn ON. However, if either [ATO_ALLOW] is OFF, the Time command is true, or the sump is over-full (Switch2), then the pump will stay OFF. In otherwords, [ATO_PUMP] can only run between the hours of midnight and 8:00 am, for a maximum of 1 minute out of every 30 minutes.

Todd
 
Nice Todd,
tks a lot !!

And if i don't use a VIRUAL OUTLET, could i input the OSC directly on ATO_PUMP? Like this:

[ATO_PUMP]
Fallback OFF
Set OFF
If Switch1 CLOSED Then ON
OSC 029:00/001:00/000:00 Then ON
If Time 08:00 to 23:59 Then OFF
If Switch2 OPEN Then OFF
 
No, because OSC generates both ON and OFF conditions and you only want the OFF portion. In your example, if the switch indicated that ATO should be OFF, the OSC could still turn it ON. In that case, the switch is effectively unneeded.

Todd
 
Hey Alan and Todd, i really appreciate your patience and attention! Tks very much.

The OSC command still seems to be a little bit confusing for me!
I'm trying to figure out how it functions but i'm not understanding yet!

Can i ask one more thing?? (i'm a little bit embarassed!!! :( )

However, tks a lot until here!
 
The OSC stand for Oscillate, it creates a repeating cycle. Typically this goes OFF > ON > OFF then back to the beginning OFF > ON >OFF and so on. Later commands can override the state set by OSC, but do not interrupt the cycle. For example, if I want to dose ALK for 5 minutes out of every hour, but only at night then:

[ALK]
OSC 000/05:00/55:00 Then ON
If Time 8:00 to 18:00 Then OFF

So it starts OFF at midnight, is ON for 5 minutes, then OFF for 55 minutes then repeats through the day. But, although the OSC would turn the outlet ON at 8:00 to 8:05, the Time command overrides and turns it OFF, and so on until after 18:00.

Todd
 
Ok so let's go:

1 - Where you "told" the program to begin at midnight?
2 - Why 000/05:00/55:00 Then ON and not 55:00/05:00/0000 Then ON?
3 - When you write the program it begins exatly every half hour? I'll explain below:

If i program this 0030:00/01:00/000 Then ON at 18:17 (i.e.) it will begin at 18:47 or at 18:30? Am i clear here?

I edit 1x, sorry
 
Last edited:
Ok so let's go:

1 - Where you "told" the program to begin at midnight?
2 - Why 000/05:00/55:00 Then ON and not 55:00/05:00/0000 Then ON?
3 - When you write the program it begins exatly every half hour? I'll explain below:

If i program this 0030:00/01:00/000 Then ON at 18:17 (i.e.) it will begin at 18:47 or at 18:30? Am i clear here?

I edit 1x, sorry
It uses the first parameter as the offset from midnight and as long as the durations are evenly divisible by 24hrs, the cycle will stay synchronized. For simplicity, I have neglected seconds:

OSC 00:00/30:00/30:00 Then ON

00:00 to 00:30 ON
00:30 to 01:00 OFF
01:00 to 01:30 ON
01:30 to 02:00 OFF
02:00 to 02:30 ON
.
.
.

OSC 30:00/30:00/00:00 Then ON

00:30 to 1:00 ON
01:00 to 1:30 OFF
01:30 to 2:00 ON
02:00 to 2:30 OFF
02:30 to 3:00 ON
.
.
.

The offset parameter allows you to coordinate multiple devices so that they can either run at the same time or run opposite, etc.

Todd
 
Back
Top