The heart of my equipment, after the tank, is my Neptune Aquacontroller
III Pro. This wonderful unit acts as a controller as well as a sensor, and
is even setup to send me a email (to my cellphone) if there is a
problem.
To the right you should see a table with
the status of all the items within my system that are electrically powered. My PC at home
polls the AC III Pro unit every minute and records the status of all the devices and the
measured parameters and stores this information in a table in a database on my web server.
The software to do this is available from me. I would appreciate trades and/or cash, but
feel free to contact me. This software can be setup to use your home PC or, if you wish to expose your
AC unit to the world wide web, it can be setup to work from a web server via a cron job.
I am also willing to work with you on setting up a website to do something similar.
Here are a couple of sites I have done that are similar:
If you click on one the links in the table to the right, the left hand side
of this page will update to reveal the details of all the major systems within my reef tank.
I don't use X10 with my system, I have a lot of noise on my
lines so instead I have three DC8's
that provide the outlets to my system. I also have temerature, ORP, and pH sensors. To facilitate
communication I have a
linksys wireless game adapter
that is connected by running a network cable from my ACIII Pro to the game adapter which then communicates
through my house via wireless network.
Here is my aquacontroller setup and program:
| ACT-Actinic Lights | ML1-Main Light Bank 1 | ML2-Main Light Bank 2 |
| MLS-Main Light Refugium | MON-Moon Light | SM1-Sump Return Pump 1 |
| SM2-Sump Return Pump 2 | HT2-Heater 2 | HT3-Heater 3 |
| SFN-Sump Fan | FN1-Canopy Fans | TS1-Tunze Stream 1 |
| TS2-Tunze Stream 2 | TP1-Aqua Surf Output 1 | TP2-Aqua Surf Output 2 |
| NP1-Aqua Surf Output 3 | NP4-Aqua Surf Output 4 | NS1-Tunze Nano Stream |
| SKM-Skimmer Recirc Pump | SKF-Skimmer feed pump | CO2-CO2 Solenoid |
| CRC-Calcium Reactor Recirc Pump | DP1-Dosing Pump | DCT-Dosing Pump Controller |
| KST-Kalk Stir Motor | GRD-Ground Probe | SSK-Skimmer Switch |
| SOF-Sump Feed Switch | ALM-Alarm | HT4-Heater in 40 Gallon |
| RP4-Return Pump 40 Gallon | LT4-Lights 40 Gallon | FN4-Fan in 40 Gallon |
| RL4-Refugium Light 40 Gallon | CR4-Pumps in 40 Gallon | SK4-Skimmer in 40 Gallon |
| DP4-Dosing Pump 40 Gallon | | |
// For the lights to get the spread of 4 hours of off and on between the actinics and the main light
// Bank 2 lights I had to set the sunrise time two hours later than I actually want sunrise and the
// sunset two hours earlier than I want sunset. This gives me the most flexibility in the amount of light.
// The refugium lights come on 45 mins before the main lights go off, and go off 45 mins before the main
// lights go on. This is why the "THEN MLS OFF" they are off when the main ligghts are on.
// The Moon 000/000 statement gives moonlight when the moon is up and the the If Timer ACT ON
// Then MON OFF statement makes sure that if the actincis are on (it's during the day) the moonlights
// don't need to be on.
// Note that I use the SUN statement and the Moon statement that give me a varying sunrise and sunset,
// moonrise, moonset and moon intensity throughout the year. I've set my Sun up time to be based on
// the sunrise and sunset times for the great barrier reef but in reverse to now (i.e. my tanks summer is
// now) and extended a little bit (light is out longer than the actual sunrise/sunset).
If Sun -120/120 Then ACT ON
If Sun -030/030 Then ML1 ON
If Sun 120/-120 Then ML2 ON
If Sun -075/075 Then MLS OFF
If Moon 000/000 Then MON ON
If Timer ACT = ON Then MON OFF
// These next set of statements are just in case the heat gets too high the main light ballasts gets shut off
// I've never had it be an issue where I've also had to shut off main light bank 1 but the statement is there.
// The max change statement keeps the lights from coming on after being shut off till at least 20 minutes
// have passed.
If Temp > 80.4 Then ML2 OFF
Max Change 020 M Then ML2 ON
If Temp > 80.8 Then ML1 OFF
Max Change 020 M Then ML1 ON
// The next set of statements are for my return pumps. They are on, but if the SOF timer is on they are
// turned off. (You will see later that SOF timer is turned on by having switch 1 closed. I could have just
// used the switch statement, but the nice thing is about using a timer is that if you look at the status of
// the aquacontroller you know weather the pumps have been turned off via the switch.
// This gives me quick shut off of my return pumps. I used to do this for water changes, but no longer.
If Time > 00:00 Then SM1 ON
If Timer SOF = ON Then SM1 OFF
If Time > 00:00 Then SM2 ON
If Timer SOF = ON Then SM2 OFF
If Time > 00:00 Then SOF OFF
If SwitchF1 CLOSED Then SOF ON
// The next set of statements turns the heaters off when the temp is 0.2 degrees above the set point
// and turns them on when the temp is 0.2 degrees below the set point. Note I use the RT which is
// the season dependent temp (warmer in the summer and cooler in the winter, but my cycle is probably
// not as drastic as the oceans (only about 1 degree)
If Temp < RT+-0.2 Then HT1 ON
If Temp > RT+0.2 Then HT1 OFF
If Temp < RT+-0.2 Then HT2 ON
If Temp > RT+0.2 Then HT2 OFF
If Temp > RT+0.2 Then HT3 OFF
If Temp < RT+-0.2 Then HT3 ON
// This is my redundancy. Having the expansion unit I have one temp probe in the tank (Probe: Temp)
// and one in my sump (Probe TmpF). If for some reason (say both my return pumps fail... redundancy
// yet again) water is not retuning to my main tank the sump doesn't become a boiling mass from the
// heaters trying to heat the water that is not getting to the main tank.
If TmpF < RT+-0.6 Then HT1 ON
If TmpF > RT+0.6 Then HT1 OFF
If TmpF < RT+-0.6 Then HT2 ON
If TmpF > RT+0.6 Then HT2 OFF
If TmpF < RT+-0.6 Then HT3 ON
If TmpF > RT+0.6 Then HT3 OFF
// This just puts a bunch of devices in the always on or off state.
If Time > 00:00 Then FN1 ON
If Time > 00:00 Then SFN ON
If Time > 00:00 Then ALM OFF
If Time > 00:00 Then GRD ON
If Time > 00:00 Then CRC ON
If Time > 00:00 Then KST ON
If Time > 00:00 Then SS1 ON
If Time > 00:00 Then CO2 ON
// My dosing pump is a little weird. It requires power once for the unit, and once for the controller.
// The unit is always on, and the controller doses in the night. If the ph get's to high (I dose kalk) it
// shuts it off.
If Time > 00:00 Then DP1 ON
If Sun -050/010 Then DCT OFF
If pH > 08.40 Then DCT OFF
// Skimer is always on, but if the switch 2 is closed then the skimmer turns off (rather than wading thru
// the menus to shut off 2 devices I can quickly turn off the skimmer with a flick of a switch).
If SwitchF2 CLOSED Then SSK ON
If Timer SSK = ON Then SKM OFF
If Timer SSK = ON Then SKF OFF
If Time > 00:00 Then SKM ON
If Time > 00:00 Then SKF ON
// My alarm statements... if temp is too high or too low, or there is a power failure or the pH is out of wack.
If Temp > 81.0 Then ALM ON
If Temp < 78.0 Then ALM ON
If Power 000 Then ALM ON
If pH > 8.5 Then ALM ON
If pH < 7.8 Then ALM ON
// Ok this section is for the aquasurf users and wow it took me a while to figure this all out, and this
// is a simple program. I'm not doing anything fancy but I'll comment line by line:
// The first statement is just to make sure Tunze Stream 1 is on.
If Time > 00:00 Then TS1 ON
// This next statement assigns Tunze Program One to output #1 from the aquasurf
If Time > 00:00 Then TP1 PF1
// This next statement says that the Program for output #1 is independent (not slaved)... small s, and the
// Intervals are in 10ths of a second (Uppercase D for divide times by 10)
Pmp MODE sD for PF1
// This next statement set's the intensities for output #1: 30% (min recommenced low intensity) for
// intensity 1 and 100% for intensity 2
Pmp Int 030/100 for PF1
// This shows the intensity 1 -> intensity 2-> intensity 1 times for output #1 12 seconds divided by 10 =
// 1.2 seconds for intensity 1 then 1.2 seconds intensity 2 and then 0 seconds intensity 1 and then back to
// the beginning (intensity 1)
Pmp OSC 12/12/00 for PF1
// The next set is for Tunze Stream 2 and is exactly the same except you'll note the capital S in the mode.
// which slaves the output #2 to the output #1 so they are in sync.
// Both tunze streams are at one side of the tank so this produces a wave like flow in one direction
If Time > 23:59 Then TS2 ON
If Time > 00:00 Then TP2 PF2
Pmp MODE SD for PF2
Pmp Int 030/100 for PF2
Pmp OSC 12/12/00 for PF2
// I also have 2 Nano-streams. One provides additional turbulence in the 180 and the others is in the
// 40 gallon tank... The programs are below.
If Time > 00:00 Then NS1 ON
If Time > 00:00 Then NP1 PF3
Pmp MODE sD for PF3
Pmp Int 030/100 for PF3
Pmp OSC 30/20/00 for PF3
If Time > 00:00 Then NP4 PF4
Pmp MODE sD for PF4
Pmp Int 030/060 for PF4
Pmp OSC 30/30/00 for PF4
// The next statements are for my 40 gallon tank and are similar to above so I'm not going to go into
// details on them, but here they are
If TmpG < RT+-0.2 Then HT4 ON
If TmpG > RT+0.2 Then HT4 OFF
If Time > 00:00 Then RP4 ON
If Sun 030/090 Then LT4 ON
If Time > 00:00 Then FN4 ON
If Timer HT4 = ON Then FN4 OFF
If Timer LT4 = ON Then FN4 ON
If Sun 000/120 Then RL4 OFF
If Time > 00:00 Then CR4 ON
If Time > 00:00 Then SK4 ON
OSC 003/030 ON/OFF Then DP4 ON
// Finally I have 3 different feed modes in my tank:
// Feed A is actually for th 40 gallon and shuts off all the pumps and the heater (so it doesn't boil the water
// in the sump) for feeding the 40 gallong.
If FeedA 000 Then RP4 OFF
If FeedA 000 Then HT4 OFF
If FeedA 000 Then SK4 OFF
If FeedA 000 Then CR4 OFF
// Feed B is for the main tank and I use it for picture tanking (shuts off ALL circulation)
If FeedB 000 Then SM1 OFF
If FeedB 000 Then SM2 OFF
If FeedB 000 Then SKM OFF
If FeedB 000 Then TS1 OFF
If FeedB 000 Then TS2 OFF
If FeedB 000 Then NS1 OFF
// Feed C is for the main tank and I use it for feeding (leaves return pumps on)
If FeedC 000 Then TS1 OFF
If FeedC 000 Then TS2 OFF
If FeedC 000 Then NS1 OFF