insomniac2k2
Active member
Disclaimer: If you don't like mouse traps, click away now. This post if for those of you that like to work with unique situations and solutions. Probably just me...
The Problem: Apex does not have proper code handling for this type of operation. It's inability to call other ports(outlets) is a large limiting factor on what you can do with it.
Solution: Create a timing delayed system within the APEX programming limitations. Outlets look for the timers and fire when the criteria is met. Complex to wrap your head around at times, but creates the same effect in the end
Description:
Auto Water Change about 4.5 gallons of New salt water
My particular use case and reasoning:
I do not like storing NSW. I would much rather store twice the amount of fresh RO. For this reason, I created an almost fully automated NSW mixing and AWC system that fits my needs. This can be done many different ways, but I'm sharing mine
Use:
Once a day (or multiple times) I fill up a standard plastic pyrex measuring cup (which is about 1.5 cups filled to the top. This makes 1.026 NSW in my case). I push a conveniently placed Garage door opener button which is hooked up to my Apex breakout box. I dump the salt in a 5 gallon bucket and walk away (or go to work in my case).
What happens:
The 5 gallon bucket is pre-filled with 4.5g fresh RO water. When the garage door opener button is pushed, a mixing powerhead is triggered. The salt mixes and when done feeds into the sump. Once drained into the sump, the 5g bucket is filled back up with OSW from the sump and then drained to sewer(or wherever). Once drained, the bucket is filled back up with fresh RO water. Ready for the next water change.
The process is complete in 80 minutes, but can be adjusted to suit your needs.
The code:
Virtual Timer outlets:
START_AWC (Timer which is triggered by either the APEX feed timer OR an APEX breakout connected to a garage door opener button(This is what i prefer, because its manual and right next to my salt))
Set OFF
Fallback OFF
If FeedC 000 Then ON
If Sw4 CLOSED Then ON
Min Time 030:00 Then ON (This means im mixing for 30m. I use Red Sea. YMMV)
If Outlet WaterChange = OFF Then OFF
NSW_TIMER (Triggered on delay after START_AWC is triggered. NSW is drained/pumped back to the sump after the 30m mix)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet OSW_TIMER = ON Then OFF
If Outlet DRAIN_TIMER = ON Then OFF
If Outlet RO_REFILL = ON Then OFF
Min Time 006:15 Then OFF
If Outlet WaterChange = OFF Then OFF
OSW_TIMER (Triggered on delay after START_AWC is triggered. OSW is pumped from the sump into the 5g bucket)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet DRAIN_TIMER = ON Then OFF
If Outlet RO_REFILL = ON Then OFF
Defer 006:30 Then ON
Min Time 010:15 Then OFF
If Outlet WaterChange = OFF Then OFF
DRAIN_TIMER (Triggered on delay after START_AWC is triggered. OSW is Drained to sewer)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet NSW_TIMER = ON Then OFF
If Outlet RO_REFILL = ON Then OFF
Defer 012:00 Then ON
Min Time 012:15 Then OFF
If Outlet WaterChange = OFF Then OFF
RO_REFILL (Triggered on delay after START_AWC is triggered. 5g bucket is filled back up with fresh RO water from reservoir.)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet NSW_TIMER = ON Then OFF
If Outlet OSW_TIMER = ON Then OFF
Defer 005:15 Then ON
Min Time 015:00 Then OFF
If Outlet WaterChange = OFF Then OFF
WaterChange (Triggered on delay after START_AWC is triggered. This closes up the sequence and turns off the RO water refill of the 5g bucket.)
Fallback OFF
Set OFF
If FeedC 000 Then ON
If Sw4 CLOSED Then ON
Min Time 080:00 Then ON
WC_Feed (This is completely optional. It is triggered by a feed cycle instead of a garage door opener)
Fallback OFF
Set OFF
If FeedD 000 Then ON
STIR_RO (This is completely optional as well. Although it will agitate the RO water in the 5g bucket every half hour to keep the water fresh.)
Set OFF
OSC 000:00/000:15/029:45 Then ON
Defer 000:15 Then ON
If Outlet WaterChange = ON Then OFF
If Sw3 CLOSED Then OFF
Actual outlets that are triggered from timers:
OSW (old salt water drain)
Fallback OFF
Set OFF
If Outlet OSW_TIMER = ON Then ON
If Outlet WaterChange = OFF Then OFF
If Sw3 OPEN Then OFF (this switch is the apex breakout switch that detects when the 5g metering reservoir is full)
Drain (5g bucket solenoid to drain)
Fallback OFF
Set OFF
If Outlet DRAIN_TIMER = ON Then ON
If Outlet WaterChange = OFF Then OFF
RO (Fill 5g bucket with new fresh water from reservoir)
Fallback OFF
Set OFF
If Outlet RO_REFILL = ON Then ON
If Outlet WaterChange = OFF Then OFF
If FeedD 000 Then ON
If Sw3 OPEN Then OFF (this switch is the apex breakout switch that detects when the 5g metering reservoir is full)
Mix (Powerhead mixer that lives in 5g bucket. It mixes when its triggered and also agitates water every now and then)
Fallback OFF
Set OFF
If Outlet START_AWC = ON Then ON
If Outlet WaterChange = OFF Then OFF
If Outlet STIR_RO = ON Then ON (This is what the mixer powerhead looks for timed agitations)
NSW (This is the other solenoid outlet that drains the New salt water back to the sump)
Fallback OFF
Set OFF
If Outlet NSW_TIMER = ON Then ON
If Outlet NEW_WC = OFF Then OFF
ASSIST (This is the assist pump directly attached to the 5g bucket. It assists water drainage to the sump or drain. Whichever solenoid is open determines where the water will go)
Fallback OFF
Set OFF
If Outlet NSW = ON Then ON (On when NSW solenoid is open)
If Outlet DRAIN = ON Then ON (On when Drain solenoid is open)
Attached is a general picture of my configuration. But its all just parts. You can do whatever you want! The Apex was by far the hardest part to figure out and perfect. So for that, your welcome
This has worked perfectly for over 6 months. It would be much easier and streamlined if you have a NSW reservoir. So if that is your preference, you should be able to easily modify what i posted to suit your needs.
Parts:
6 spare APEX ports (yes, that's right. 6!)
5g bucket
tubing (I used 1/2 inch push connect and fittings(including the 2 to 1 fittings and 1-way valves))
solenoids:
Electric solenoid valve: (Consider buying different ones or at least a backup for presumed failure) https://www.amazon.com/gp/product/B010LT2H1O/ref=oh_aui_search_detailpage?ie=UTF8&psc=1
Alternative solenoid valve: http://www.ebay.com/itm/1-2-Electri...C-G28E-/290791672658?var=&hash=item43b488cb52
Float valve in 5g bucket(buy 2!): http://www.ebay.com/itm/1-2-3-4-Aut...sories-/291644614049?var=&hash=item43e75fa5a1
Garage Door button (Any or these work. Get at homedepot/ACE): https://www.amazon.com/Garage-Opene...250&sr=8-1&keywords=garage+door+opener+button
Pumps: Whatever you got laying around. I used maxi-jets
Happy DIY'ing!
The Problem: Apex does not have proper code handling for this type of operation. It's inability to call other ports(outlets) is a large limiting factor on what you can do with it.
Solution: Create a timing delayed system within the APEX programming limitations. Outlets look for the timers and fire when the criteria is met. Complex to wrap your head around at times, but creates the same effect in the end
Description:
Auto Water Change about 4.5 gallons of New salt water
My particular use case and reasoning:
I do not like storing NSW. I would much rather store twice the amount of fresh RO. For this reason, I created an almost fully automated NSW mixing and AWC system that fits my needs. This can be done many different ways, but I'm sharing mine
Use:
Once a day (or multiple times) I fill up a standard plastic pyrex measuring cup (which is about 1.5 cups filled to the top. This makes 1.026 NSW in my case). I push a conveniently placed Garage door opener button which is hooked up to my Apex breakout box. I dump the salt in a 5 gallon bucket and walk away (or go to work in my case).
What happens:
The 5 gallon bucket is pre-filled with 4.5g fresh RO water. When the garage door opener button is pushed, a mixing powerhead is triggered. The salt mixes and when done feeds into the sump. Once drained into the sump, the 5g bucket is filled back up with OSW from the sump and then drained to sewer(or wherever). Once drained, the bucket is filled back up with fresh RO water. Ready for the next water change.
The process is complete in 80 minutes, but can be adjusted to suit your needs.
The code:
Virtual Timer outlets:
START_AWC (Timer which is triggered by either the APEX feed timer OR an APEX breakout connected to a garage door opener button(This is what i prefer, because its manual and right next to my salt))
Set OFF
Fallback OFF
If FeedC 000 Then ON
If Sw4 CLOSED Then ON
Min Time 030:00 Then ON (This means im mixing for 30m. I use Red Sea. YMMV)
If Outlet WaterChange = OFF Then OFF
NSW_TIMER (Triggered on delay after START_AWC is triggered. NSW is drained/pumped back to the sump after the 30m mix)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet OSW_TIMER = ON Then OFF
If Outlet DRAIN_TIMER = ON Then OFF
If Outlet RO_REFILL = ON Then OFF
Min Time 006:15 Then OFF
If Outlet WaterChange = OFF Then OFF
OSW_TIMER (Triggered on delay after START_AWC is triggered. OSW is pumped from the sump into the 5g bucket)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet DRAIN_TIMER = ON Then OFF
If Outlet RO_REFILL = ON Then OFF
Defer 006:30 Then ON
Min Time 010:15 Then OFF
If Outlet WaterChange = OFF Then OFF
DRAIN_TIMER (Triggered on delay after START_AWC is triggered. OSW is Drained to sewer)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet NSW_TIMER = ON Then OFF
If Outlet RO_REFILL = ON Then OFF
Defer 012:00 Then ON
Min Time 012:15 Then OFF
If Outlet WaterChange = OFF Then OFF
RO_REFILL (Triggered on delay after START_AWC is triggered. 5g bucket is filled back up with fresh RO water from reservoir.)
Fallback OFF
If Outlet WaterChange = ON Then ON
If Outlet START_AWC = ON Then OFF
If Outlet NSW_TIMER = ON Then OFF
If Outlet OSW_TIMER = ON Then OFF
Defer 005:15 Then ON
Min Time 015:00 Then OFF
If Outlet WaterChange = OFF Then OFF
WaterChange (Triggered on delay after START_AWC is triggered. This closes up the sequence and turns off the RO water refill of the 5g bucket.)
Fallback OFF
Set OFF
If FeedC 000 Then ON
If Sw4 CLOSED Then ON
Min Time 080:00 Then ON
WC_Feed (This is completely optional. It is triggered by a feed cycle instead of a garage door opener)
Fallback OFF
Set OFF
If FeedD 000 Then ON
STIR_RO (This is completely optional as well. Although it will agitate the RO water in the 5g bucket every half hour to keep the water fresh.)
Set OFF
OSC 000:00/000:15/029:45 Then ON
Defer 000:15 Then ON
If Outlet WaterChange = ON Then OFF
If Sw3 CLOSED Then OFF
Actual outlets that are triggered from timers:
OSW (old salt water drain)
Fallback OFF
Set OFF
If Outlet OSW_TIMER = ON Then ON
If Outlet WaterChange = OFF Then OFF
If Sw3 OPEN Then OFF (this switch is the apex breakout switch that detects when the 5g metering reservoir is full)
Drain (5g bucket solenoid to drain)
Fallback OFF
Set OFF
If Outlet DRAIN_TIMER = ON Then ON
If Outlet WaterChange = OFF Then OFF
RO (Fill 5g bucket with new fresh water from reservoir)
Fallback OFF
Set OFF
If Outlet RO_REFILL = ON Then ON
If Outlet WaterChange = OFF Then OFF
If FeedD 000 Then ON
If Sw3 OPEN Then OFF (this switch is the apex breakout switch that detects when the 5g metering reservoir is full)
Mix (Powerhead mixer that lives in 5g bucket. It mixes when its triggered and also agitates water every now and then)
Fallback OFF
Set OFF
If Outlet START_AWC = ON Then ON
If Outlet WaterChange = OFF Then OFF
If Outlet STIR_RO = ON Then ON (This is what the mixer powerhead looks for timed agitations)
NSW (This is the other solenoid outlet that drains the New salt water back to the sump)
Fallback OFF
Set OFF
If Outlet NSW_TIMER = ON Then ON
If Outlet NEW_WC = OFF Then OFF
ASSIST (This is the assist pump directly attached to the 5g bucket. It assists water drainage to the sump or drain. Whichever solenoid is open determines where the water will go)
Fallback OFF
Set OFF
If Outlet NSW = ON Then ON (On when NSW solenoid is open)
If Outlet DRAIN = ON Then ON (On when Drain solenoid is open)
Attached is a general picture of my configuration. But its all just parts. You can do whatever you want! The Apex was by far the hardest part to figure out and perfect. So for that, your welcome
This has worked perfectly for over 6 months. It would be much easier and streamlined if you have a NSW reservoir. So if that is your preference, you should be able to easily modify what i posted to suit your needs.
Parts:
6 spare APEX ports (yes, that's right. 6!)
5g bucket
tubing (I used 1/2 inch push connect and fittings(including the 2 to 1 fittings and 1-way valves))
solenoids:
Electric solenoid valve: (Consider buying different ones or at least a backup for presumed failure) https://www.amazon.com/gp/product/B010LT2H1O/ref=oh_aui_search_detailpage?ie=UTF8&psc=1
Alternative solenoid valve: http://www.ebay.com/itm/1-2-Electri...C-G28E-/290791672658?var=&hash=item43b488cb52
Float valve in 5g bucket(buy 2!): http://www.ebay.com/itm/1-2-3-4-Aut...sories-/291644614049?var=&hash=item43e75fa5a1
Garage Door button (Any or these work. Get at homedepot/ACE): https://www.amazon.com/Garage-Opene...250&sr=8-1&keywords=garage+door+opener+button
Pumps: Whatever you got laying around. I used maxi-jets
Happy DIY'ing!
Attachments
Last edited: