eLightMaster

version 1.12g

Copyright 2001-2002, Bill Esposito

All Rights Reserved

Overview:

eLightMaster is a program that calculates the rise and set of the sun and moon for your Location, or any location you select, along with the moon's phase (intensity). eLightMaster then sends the appropriate commands to the X10 FireCracker to turn your main lamps on and off, and adjust your moon lamp to simulate the real moon.

What this means is that your tank inhabitants will experience both a more natural daylight period and night time. Some nights eLightMaster will simulate a full moon allowing your moon lamp to run at full intensity. Then as phase of the moon changes with the days, eLightMaster will decrease the intensity of your moon lamp accordingly. It also means that on some days the moon will not be visible at night, and on those nights your tank will be dark. eLightMaster will also allow you set an offset from the sunrise/sunset times to facilitate your viewing hours. eLightMaster now features a reverse photoperiod option. When selected, Light 6 will operate in the reverse photoperiod of Light 1 (as adjusted by Light 1's offset). This will allow those who utilize reverse photoperiod sumps and refugiums to maintain the proper on/off cycle as the sunrise/set times change.

X10 Firecracker: The device which will actually control your lamps is the Firecracker. This little

device requires that you connect it to a free serial port on your computer. Then, you plug your moon lamp into the included X10 Lamp Module, and your main lamps into Appliance modules. When eLightMaster sends the commands, the FireCracker will transmit those commands via your house wiring to the Lamp and Appliance Modules.

License:

You may use eLightMaster for 15 days to evaluate the product, after that point you must either register it or discontinue it's use, and delete all copies.

You can register eLightmaster at http://cerealport.net/lightmaster The cost of registration is:

$14.95 USD eLightmaster basic

$19.95 USD eLightmaster with WaveMaker

$5.00 USD upgrade from eLightmaster basic

Requirements:

In order for eLightMaster to control the modules, you must have it running on a PC 24 hours a day. eLightMaster works with Windows, Linux, Mac, and OS/2. When running Windows or OS/2 you should have at least a Pentium 133. For Mac and Linux I don't have any experience from which to recommend a minimum processor speed.

You also need JAVA and the communications API for your platform. Links to JAVA and the comm API can be found at http://cerealport.net/lightmaster.html 

  

Installation:

Install JAVA.

Unzip the eLightMaster archive. When it unzip's it will create a directory named elightmaster. As an example, if you unzip eLightMaster to your "Program Files" directory, the structure will be x:\Program Files\elightmaster.

Installing the comm API is pretty simple. Here's what you do for Windows. Unzip the commapi archive. Copy the comm.jar to your eLightMaster directory, copy the javax.comm.properties file to your java/lib directory. Copy the win32comm.dll file to the windows/system32 directory. That's it. If you're using Mac, Linux, or OS/2, check the docs in the archive for specific instructions.

Next, download the X10 JAVA libraries from the following URL:

http://cerealport.net/x10command.zip

and unzip the file into the eLightMaster directory.

Running eLightMaster for the first time:

Try using one of the included *.bat files. You may have to modify it for your setup.

run.bat works for Windows Java 1.3.x and 1.4.x

the batch file basically issues the command:

java -cp .;comm.jar;X10Command.class LightMaster

As soon as eLightMaster starts, click on the SETUP tab. Next click on EDIT. If you've copied the files to the correct directories, you should be able to click on the "Com Port" drop-down list and select a port. If not, go to the Troubleshooting section at the end of this file.

 

Configure location:

Just to get started, select one of the predefined reefs from the "Reef" drop-down list. It will auto-fill the Lat, Lon, and Time Zone. Do not change the Time zone as it will mess up the computed times. The creating a new location, set the Time Zone to the correct one for that location, not where you are. This way eLightMaster can compute the proper rise/set times.

Enable a Light:

Now click on the button of the light you wish to enable, the button text (Moon, Light 1, Light 2, etc) will turn green indicating that tat light is enabled.

Select the house code (A-P) and device number (1-16) drop the drop-down lists.

Set Offset: OFFSET and BRACKET Times are entered in MINUTES

If you plan on using the built-in sunrise/set timer and want to offset the on/off times from the actual sunrise/set times, enter your offset in minutes. Your light will now turn on/off at sunrise/set as offset by this value. Also, the Moon Light will be offset by the same amount as that configured for Light 1. Assure that the Offset button is in the Offset position.

*** make sure that there is always some number in the Offset/Bracket field, even if you dont use it. You turn it off with a 0, and number higher than that turns it on.*** 

Set Bracket:

If you want a light to Turn on before sunrise and turnoff after sunset, then click on the Offset button for that light. The  button will rename itself as Bracket. Now enter the bracket offset you want. This feature is useful for creating dawn/dusk simulations with actinic bulbs. Entering a negative number will cause the light to turn on after sunrise and off before sunset.

Here's how to do it:

Assign Light 1 to your longest duration lamp..normally actinics.

If you enter a "30" in the "offset" entry field and then select "bracket" by clicking on the "offset/bracket" button, then Light 1 will turn on 30 min prior to sunrise and turn off 30 min after sunset.

Now suppose you want to offset your lighting period so that you can view the tank after you get hime from work. Here's what you do. Again, assign Light 1 as your longest duration lamp. Enter the offset in the offset entry field, an entry of 360 will delay the rise/set by 6 hours. Make sure the offset/bracket button says "offset".

Assign Lamp 2 as your next longest duration light. Lets say it's the Left side MH and you want it to turn on 30 min after the actinics. Just select "bracket" and enter "-30" into the offset entry field. Light 2 will now turn on 30 min after Light 1 and turn off 30 min before Light 1.

Continue this scheme for the rest of your lights.

As you can see, Light 1 has an important role to play here. If Light 1 is set to "bracket", then it and any other light will bracket around the unmodified sunrise/set times.

If you set Light 1 to offset and set any other light to bracket, the bracket light will operate off the offset of Light 1, allowing you to use the Offset feature to adjust the viewing hours, and the bracket feature to simulate sunrise/set.

Set Fixed Timer:

If you wish to just use eLightMaster as a fixed timer, check the check-box for the light you are configuring, and enter the on and off times in the XX:XX format. Even if you are not using the Fixed timers, 00:00 must be entered in this block. It is important that the format be adheared to as eLightMaster will error out if it's not. (to be fixed in a later release)

Finish up:

Enable and configure the remaining lights. When done click SAVE.

- You must now exit eLightMaster and restart it for the changes to take effect.

Other eLightMaster Features:

Manual operation:

You can turn any light on or off via the buttons on the STATUS tab. First, unlock the buttons by deselecting the LOCKED button. Now any lamp can be toggled on and off by clicking on it's respective button.

LOCKED button: 

Enabling this button prevents manual operation of the lights via the buttons on the STATUS tab. The state if this button is saved when you click on the SAVE button on the SETUP tab.

Displaying the rise/set times as altered by the offset: 

Resting your cursor on any of the Light buttons on either the STATUS or SETUP tabs will display the adjusted rise/set times. 

DST:

Used only when the Time Zone is set to LOCAL and the REEF to "My Reef". Enabling this will automatically adjust eLightMaster's time to your local Daylight Savings Time when applicable.

Reverse Photoperiod:

There is a second Checkbox by Light 6 (to the left of the House Code) which enables this feature. When selected, Light 6 will operate in the reverse photoperiod of Light 1 (as adjusted by Light 1's offset). This will allow those who utilize reverse photoperiod sumps and refugiums to maintain the proper on/off cycle as the sunrise/set times change. This feature does not work if Light 6 is in the manual timer mode.

WaveMaker:

(All times in the WaveMaker section are entered in seconds)

Features:

* Enable up to 6 pumps

* Set on duration for each pump (in seconds)

* Sequential and random operation

* Tides: Enter a number between 1 and 100 in the Intensity field and during the tidal periods (2 hours around moonrise/set) the frequency of the pumps will increase that amount. Example: If all pumps are set for 4 min (240) entering 25 will cause pumps to change every 3 min or 25% more often.

* Feed: Enter the duration in seconds for the Feed Cycle. Press the Feed Button to suspend the pump operation for the duration of the feed cycle.

* Quiet: default "dead" time between pumps in seconds. Normally set to Zero.

* Toggle: When selected this feature turns pump 1 into an independent on/off cycle. For use with the X10 Universal Module and ball valves.

Even if you dont use the wavemaker function, you can plug your pumps/powerheads into X10 and use the Feed option. No more forgetting to turn your pumps back on after you feed your tank. (I still need to implement this for pumps which stay on all the time)

WaveMaker Setup:

To setup or make changes, press the <EDIT> button. Press <SAVE> when done.

Each pump can be enabled just like the lights, just click on the desired pump and it will turn green signifying that it is enabled.

For each pump enabled, select the correct House and Device code from the pull down list.

Next enter the "On" time in SECONDS. If you want PUMP1 to be on for 3 minutes before it turns off and the next pump come on then enter 180 into the field.

If you enable the "Night" feature by checking the block, then the pump will not operate between sunset and sunrise. Use this feature to turn off a pump or two during the night hours if desired.

Tides: If you wish to simulate the tides, eLightMaster has a feature to do just that. To enable it, check the Tides checkbox and enter a number between 1 and 100 into the Intensity field. The intensity increases the frequency of the wave action in the amount equal to the number you enter. So, entering 10 into the Intensity field will increase the wave action frequency by 10%. Typically you would not want to go higher than 25%

Toggle: Mose people will not use this feature. It is designed to "toggle" PUMP1 on and off at the rate of the time entered for PUMP1. Entering "60" into the PUMP1 time field will cause it to run for 1 munite on and 1 minute off. This is designed to be used with the X10 universal module and motorized ball valves.

Quiet: This is usually either left blank or set to 0. (except for Constant Pump Operation, see below) Entering a number in this field will cause a delay or quiet time from the time one pump turns off and the next pump starts.

Feed: eLightMaster can be configured to turn off your wave action when you feed your tank. Enter a number in the Duration field in the amount of time you want the pumps to stay off. When the FEED button is pressed, all enabled pumps will turn off for the amound of time specified in the Duration field. Once that time has expired, the wavemaker cycle will restart within 1 minute. No more forgetting to turn your pumps back on.

Constant Pump Operation: Even if you dont use eLightMaster as a wave maker, you can still use the FEED feature. Simply plug your pumps into one or more modules. The modules can all be the same device code since we desire them to be turned on and off at the same time...or they can be different.

To enable the pump to be on All the time, enter a 0 in the time field for that pump.

**CAUTION** If you are ONLY using the wave maker for constant pump operation, then you MUST enter the number 60 in the Quiet Field. Failing to do this will cause eLightMaster to hog the cpu. As long as you have at least one other pump set up as a wavemaker, then you do not need a Quiet entry.

Setting Up the FireCracker:

The trick to FireCrackers and X10 in general is finding a low noise circuit. Since X10 commands are riding on top of your normal house voltage, line noise can be a problem. One of the main causes of noise interference is electronic ballasts. These can be isolated from your X10's buy purchasing a Plug-In Noise Filter and plugging your ballasts into the noise filter, and the filter into the X10 appliance module. Works great.

Ok, back to the FireCracker. You need to plug the FireCracker into an unused comm port, or at least one which you will be able to share with another program. When eLightMaster is running, the other program cant, and vise versa. Basically if you have a serial port for your Palm Pilot, or some other seldom used device, you can plug the FireCracker In-Line. It is probably best to use a dedicated port though.

Next, plug your TM-751 Power Line Interface into a power plug, preferably on the same circuit as your aquarium power. This will help with the possible noise problem. Use your remote control to test out the circuit. The TM-751 comes defaulted to device A1. Turn on and off A1 via your remote. If it works, it's time for the next test.
 

The next problematic thing is dimming. What happens is that if there is too much radio frequency noise in the area (EMI), The TM751 will not know when to stop dimming and will just dim the light right off.

Set your lamp Module for A2 and plug it in to an outlet. Now plug an incandescent lamp into the lamp module. Twist  the lamps on/off switch a few times until the lamp turns on. Now, press A2 on your remote and turn the lamp off, then turn it on again. If that worked, press the Dim button  on the remote and slowly dim the lamp. If all goes well, you will be able to vary the intensity of the lamp. If there is too much noise, the lamp will dim right off.

If the lamp dims off, there are a few things you can try. The first thing is to completey retract the antenna on the TM-751 and angle it on a 45 deg. Now try the dimming test again.

If that doesn't work, systematically change the location of the TM-751 to different outlets. Trying the dimming test each time. Eventually you should find an outlet where it works.

TROUBLESHOOTING:

1. Install JAVA....you've done that.

2. Download eLightMaster from my page. Unzip it from the desktop and it will create an elightmaster directory.

3. Download the Comm API from the sun page. We need to extract a couple of files from that archive.

4. Assuming it's the Windows Comm API, open the archive up with WinZIP. We are looking for 3 files.
- The first one, win32com.dll, should be copied to the \windows\system32 directory. Remember that Windows doesnt show *.dll files when you try the view the directory by clicking on it. Go to the DOS prompt to see the *.dll files if you want to make sure you copied it there.
- The next file is javax.comm.properties. Copy this file to the lib directory of JAVA. It will be something like \Program Files\Javasoft\....\lib
- The last file is comm.jar. Copy that to the eLightMaster directory.

5. Download the X10Command.zip file from my page. Unzip the X10Command.class file to the eLightMaster directory.
If you run eLightMaster and it comes up but it doesnt display any comm ports, then one of 3 things is wrong.

1. There really are no comm ports available. Do not run eLightMaster and the X10 software at the same time. eLightMaster requires exclusive use of the com port.

2. javax.comm.properties is not in the correct place. make sure you find the lib directory of Java and copy it there.

Error:
java.io.FileNotFoundException: C:\ProgramFiles\Java\j2re1.3.1\lib\javax.comm.properties (The system cannot find the files pecified)

4. win32com.dll is in the wrong place. Some installations if Windows require the win32com.dll file to be in the \windows\system, \windows\system32, or Javasoft\....\lib directories...dont ask my why, it's a Microsoft product. Copy the win32com.dll to all those directories and restart.
Here's one version of error you will see:
 
Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path
Exception occured in main <> of java.lang.Object
java.lang.NullPointerException
at LightMaster.JAqual1 <unknown source> <-----------Any error in JAqua1 means the com port isnt initializing
at LightMaster.N <Unknown Source>
at LightMaster.<init><Unknown source>
at lightMaster.main<Unknown Source>