Newbie Code Q: Using Defer and two virtual outlets

  • Thread starter Thread starter mike550
  • Start date Start date
  • Tagged users Tagged users None

mike550

Valuable Member
View Badges
Joined
Oct 13, 2019
Messages
2,268
Reaction score
2,328
Location
Chicago
Rating - 0%
0   0   0
Hello Apex gurus,

I’m trying to get my head around Apex programming and using the Defer statement. Right now, I’ve created (or shamelessly copied from @SuncrestReef — thank you) the following code for my return pump:

If Output Maintenance = ON then OFF
Defer 000:05 Then OFF


The use of the Defer statement is so that my ATO (Tunze) turns off before the pump so I don’t trip the ATO alarm as the sump fills with water. But here is my question, if I create another virtual outlet “Emergency” and want it to turn off the pump it would look like this.

If Output Maintenance = ON then OFF
Defer 000:05 Then OFF
If Output Emergency = ON then OFF


If I understand the Apex DEFER code correctly, it will be used regardless of where it lines up in the code. So basically even if Emergency = ON the pump will still wait 5 seconds before turning off. Is that correct? Is there a simple way around this?

Thanks in advance!
 
Yes, Defer is applied after all conditions have been evaluated. To get around this for your particular situation, create an additional virtual output for the return pump where you can place the Defer delay rather than on the pump itself:

[Pump_Maint] — virtual output
Set OFF
If Output Maintenance = ON Then ON
Defer 000:05 Then ON

[Pump]
Fallback ON
Set ON
If Output Pump_Maint = ON Then OFF
If Output Emergency = ON Then OFF
 
Yes, Defer is applied after all conditions have been evaluated. To get around this for your particular situation, create an additional virtual output for the return pump where you can place the Defer delay rather than on the pump itself:

[Pump_Maint] — virtual output
Set OFF
If Output Maintenance = ON Then ON
Defer 000:05 Then ON

[Pump]
Fallback ON
Set ON
If Output Pump_Maint = ON Then OFF
If Output Emergency = ON Then OFF
Thanks for this. So basically like a subroutine for the Defer code. Much appreciated.
 

TOP 10 Trending Threads

WHAT’S YOUR MOST MEMORABLE EXPERIENCE WITH A CORAL THAT LOOKED LIKE IT MIGHT NOT MAKE IT?

  • I’ve seen a dramatic comeback. I would have sworn it was a goner

    Votes: 16 43.2%
  • A slow recovery, and it got back to looking healthy

    Votes: 6 16.2%
  • It came back some, but never looked as good as it used to

    Votes: 3 8.1%
  • I tried to save one, but it didn’t make it

    Votes: 6 16.2%
  • Mine is still struggling...no comeback yet

    Votes: 3 8.1%
  • I’ve never had a coral in serious trouble

    Votes: 0 0.0%
  • See, this is why I don’t keep corals

    Votes: 1 2.7%
  • Other (Post in the comments)

    Votes: 2 5.4%
Back
Top
Home
Post thread…
Market
What's new