AI Sol with Season Table - The Phuzzykins Method, Redux

RussM

Active member
In this thread: http://www.reefcentral.com/forums/showthread.php?t=2019489, Phuzzykins posted an absolutely brilliant method of using the Apex season table in conjunction with the VDM & AI Sol for primary lighting and moonlighting. I have tweaked it a bit, and added in the use of weather profiles - something several people have asked for.

Weather profiles are used for both cloudy and stormy periods. Periods of weather are only permitted during afternoon/early evening hours - in this code, weather events are allowed between 1400 and 1730 (easily modified as desired) . By using a combination of DoW statements and some psuedo-randomization, some days will have a cloudy period, some days will have a stormy period, and some days will have neither; the time of the weather events will vary within the allowed window too. I chose to keep weather events relatively short in duration (in my example, 37 minutes), but this is easily adjust to suit individual preferences.

There are also overrides that can be used to turn on the lights at 20% and 70% intensity whenever desired simply by manually turning on a VO.

Due to RC's post length restrictions, the code is in the next post.

<!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} </style> <![endif]-->
 
PROGRAM

[ AI_Sol_Power ] ( 3_1 )
Fallback OFF
Set OFF
If Outlet AI_Blue = ON Then ON
If Outlet AI_White = ON Then ON
If Outlet AI_Royal = ON Then ON
Defer 000:05 Then ON
Defer 000:05 Then OFF


[ AI_Blue ] ( 4_5 )
Set OFF
If Outlet BL-Dawn = ON Then BL_Rise
If Outlet BL-Day = ON Then BL_Day
If Outlet BL-Dusk = ON Then BL_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ AI_White ] ( 4_6 )
Set OFF
If Outlet WH-Dawn = ON Then WH_Rise
If Outlet WH-Day = ON Then WH_Day
If Outlet WH-Dusk = ON Then WH_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ AI_Royal ] ( 4_7 )
Set OFF
If Outlet MoonWax = ON Then MoonRise
If Outlet MoonUp = ON Then MoonFull
If Outlet MoonWane = ON Then MoonSet
If Outlet RB-Dawn = ON Then RB_Rise
If Outlet RB-Day = ON Then RB_Day
If Outlet RB-Dusk = ON Then RB_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ BL-Dawn ] ( Cntl:A1 )
If Sun 000/-360 Then ON
If Outlet BL-Day = ON Then OFF


[ WH-Dawn ] ( Cntl:A2 )
If Sun 000/-360 Then ON
If Outlet WH-Day = ON Then OFF


[ RB-Dawn ] ( Cntl:A3 )
If Sun 000/-360 Then ON
If Outlet RB-Day = ON Then OFF


[ BL-Day ] ( Cntl:A4 )
If Sun 060/-060 Then ON


[ WH-Day ] ( Cntl:A5 )
If Sun 060/-060 Then ON


[ RB-Day ] ( Cntl:A6 )
If Sun 060/-060 Then ON


[ BL-Dusk ] ( Cntl:A7 )
If Sun 360/000 Then ON
If Outlet BL-Day = ON Then OFF


[ WH-Dusk ] ( Cntl:A8 )
If Sun 360/000 Then ON
If Outlet WH-Day = ON Then OFF


[ RB-Dusk ] ( Cntl:A9 )
If Sun 360/000 Then ON
If Outlet RB-Day = ON Then OFF


[ MoonWax ] ( Cntl:A10 )
If Moon 000/-360 Then ON
If Outlet MoonUp = ON Then OFF


[ MoonUp ] ( Cntl:A11 )
If Moon 060/-060 Then ON


[ MoonWane ] ( Cntl:A12 )
If Moon 360/000 Then ON
If Outlet MoonUp = ON Then OFF


[ Storms ] ( Cntl:A13 )
OSC 000:00/037:00/636:00 Then ON
If Time 19:30 to 13:59 Then OFF
Min Time 037:00 Then ON
If DoW S-T-T-S Then OFF


[ Clouds ] ( Cntl:A14 )
Set OFF
OSC 000:00/037:00/636:00 Then ON
If Time 19:30 to 13:59 Then OFF
Min Time 037:00 Then ON
If DoW -M-W-F- Then OFF


[ Sol-On-20% ] ( Cntl:A15 )
Set OFF


[ Sol-On-70% ] ( Cntl:A16 )
Set OFF


PROFILES

[ BL_Rise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 100


[ WH_Rise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 100


[ RB_Rise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 100


[ BL_Set ]
Ramp Time: 60
Start Intensity: 100
End Intensity: 0


[ WH_Set ]
Ramp Time: 60
Start Intensity: 100
End Intensity: 0


[ RB_Set ]
Ramp Time: 60
Start Intensity: 100
End Intensity: 0


[ BL_Day ]
Ramp Time: 1
Start Intensity: 100
End Intensity: 100


[ WH_Day ]
Ramp Time: 1
Start Intensity: 100
End Intensity: 100


[ RB_Day ]
Ramp Time: 1
Start Intensity: 100
End Intensity: 100


[ Stormy ]
Light Maximum Intensity: 30
Cloudy Light Intensity: 8
Cloud Duration: 12
Cloudy Time: 50
Probability of Lightning: 45
Lightning Intensity: 100


[ Cloudy ]
Light Maximum Intensity: 20
Cloudy Light Intensity: 5
Cloud Duration: 5
Cloudy Time: 75
Probability of Lightning: 0
Lightning Intensity: 0


[ MoonRise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 3


[ MoonFull ]
Ramp Time: 1
Start Intensity: 3
End Intensity: 3


[ MoonSet ]
Ramp Time: 60
Start Intensity: 3
End Intensity: 0


[ Steady20 ]
Ramp Time: 1
Start Intensity: 20
End Intensity: 20


[ Steady70 ]
Ramp Time: 1
Start Intensity: 70
End Intensity: 70
 
A few notes:

In the AI_Sol_power outlet, the two Defer statements are used to prevent flashes I noticed when the outlet turned on or off.

In the Clouds and Storms outlets, the Min Time statement causes the weather event to run the full duration, even if it starts close to the end of the allowed period. In the posted code, weather events are allowed from 1400 to 1730. Example: If the randomizarion (OSC) code starts a weather event at 1925, the Min Time prevents that event from getting cut short 5 minutes later at 1930.

To vary the frequency of weather events, adjust the OSC statements in the Clouds and Storms outlets. A greater 3rd value will increase the probability that no weather event occurs on a particular day:

OSC 000:00/037:00/636:00 Then ON

To change the duration of weather events, change the second OSC value and the Min Time value in the Clouds and Storms outlets:

OSC 000:00/037:00/636:00 Then ON
If Time 19:30 to 13:59 Then OFF
Min Time 037:00 Then ON

Modify the If Time statement to change the period of time in which weather events are permitted.
 
If you don't mind, I could use some help on this. I presently have my AI's set up using Phuzzykins programs.

I am totally clear on the Profiles set up you have here and can do that part, but have never set up any virtual outlets.

My VDM is outlet 3 and my 8outlet power thing is numbered 4, but Im unclear with your Program instructions as to which numbers I should use. If you wouldn't mind giving some details or pointing me in the right direction I would greatly appreciate it. Not sure what MY numbers should be for the outlet set up where you have 3_1 and 4_#s, or what you meant with the Cntrl:A#

Im relatively new to the Neptune System. Thank you!!

PROGRAM

[ AI_Sol_Power ] ( 3_1 )
Fallback OFF
Set OFF
If Outlet AI_Blue = ON Then ON
If Outlet AI_White = ON Then ON
If Outlet AI_Royal = ON Then ON
Defer 000:05 Then ON
Defer 000:05 Then OFF


[ AI_Blue ] ( 4_5 )
Set OFF
If Outlet BL-Dawn = ON Then BL_Rise
If Outlet BL-Day = ON Then BL_Day
If Outlet BL-Dusk = ON Then BL_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ AI_White ] ( 4_6 )
Set OFF
If Outlet WH-Dawn = ON Then WH_Rise
If Outlet WH-Day = ON Then WH_Day
If Outlet WH-Dusk = ON Then WH_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ AI_Royal ] ( 4_7 )
Set OFF
If Outlet MoonWax = ON Then MoonRise
If Outlet MoonUp = ON Then MoonFull
If Outlet MoonWane = ON Then MoonSet
If Outlet RB-Dawn = ON Then RB_Rise
If Outlet RB-Day = ON Then RB_Day
If Outlet RB-Dusk = ON Then RB_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ BL-Dawn ] ( Cntl:A1 )
If Sun 000/-360 Then ON
If Outlet BL-Day = ON Then OFF


[ WH-Dawn ] ( Cntl:A2 )
If Sun 000/-360 Then ON
If Outlet WH-Day = ON Then OFF


[ RB-Dawn ] ( Cntl:A3 )
If Sun 000/-360 Then ON
If Outlet RB-Day = ON Then OFF


[ BL-Day ] ( Cntl:A4 )
If Sun 060/-060 Then ON


[ WH-Day ] ( Cntl:A5 )
If Sun 060/-060 Then ON


[ RB-Day ] ( Cntl:A6 )
If Sun 060/-060 Then ON


[ BL-Dusk ] ( Cntl:A7 )
If Sun 360/000 Then ON
If Outlet BL-Day = ON Then OFF


[ WH-Dusk ] ( Cntl:A8 )
If Sun 360/000 Then ON
If Outlet WH-Day = ON Then OFF


[ RB-Dusk ] ( Cntl:A9 )
If Sun 360/000 Then ON
If Outlet RB-Day = ON Then OFF


[ MoonWax ] ( Cntl:A10 )
If Moon 000/-360 Then ON
If Outlet MoonUp = ON Then OFF


[ MoonUp ] ( Cntl:A11 )
If Moon 060/-060 Then ON


[ MoonWane ] ( Cntl:A12 )
If Moon 360/000 Then ON
If Outlet MoonUp = ON Then OFF


[ Storms ] ( Cntl:A13 )
OSC 000:00/037:00/636:00 Then ON
If Time 19:30 to 13:59 Then OFF
Min Time 037:00 Then ON
If DoW S-T-T-S Then OFF


[ Clouds ] ( Cntl:A14 )
Set OFF
OSC 000:00/037:00/636:00 Then ON
If Time 19:30 to 13:59 Then OFF
Min Time 037:00 Then ON
If DoW -M-W-F- Then OFF


[ Sol-On-20% ] ( Cntl:A15 )
Set OFF


[ Sol-On-70% ] ( Cntl:A16 )
Set OFF


PROFILES

[ BL_Rise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 100


[ WH_Rise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 100


[ RB_Rise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 100


[ BL_Set ]
Ramp Time: 60
Start Intensity: 100
End Intensity: 0


[ WH_Set ]
Ramp Time: 60
Start Intensity: 100
End Intensity: 0


[ RB_Set ]
Ramp Time: 60
Start Intensity: 100
End Intensity: 0


[ BL_Day ]
Ramp Time: 1
Start Intensity: 100
End Intensity: 100


[ WH_Day ]
Ramp Time: 1
Start Intensity: 100
End Intensity: 100


[ RB_Day ]
Ramp Time: 1
Start Intensity: 100
End Intensity: 100


[ Stormy ]
Light Maximum Intensity: 30
Cloudy Light Intensity: 8
Cloud Duration: 12
Cloudy Time: 50
Probability of Lightning: 45
Lightning Intensity: 100


[ Cloudy ]
Light Maximum Intensity: 20
Cloudy Light Intensity: 5
Cloud Duration: 5
Cloudy Time: 75
Probability of Lightning: 0
Lightning Intensity: 0


[ MoonRise ]
Ramp Time: 60
Start Intensity: 0
End Intensity: 3


[ MoonFull ]
Ramp Time: 1
Start Intensity: 3
End Intensity: 3


[ MoonSet ]
Ramp Time: 60
Start Intensity: 3
End Intensity: 0


[ Steady20 ]
Ramp Time: 1
Start Intensity: 20
End Intensity: 20


[ Steady70 ]
Ramp Time: 1
Start Intensity: 70
End Intensity: 70
 
3_1 is EB8 outlet one in my system. The 4_4, 5, & 6 outlets are VDM outlets for the AI channels. All outlets with Ctrl in the ID are virtual outlets in this case.

I don't understand how you can be using Phuzzykins programming for Sols with Season table without virtual outlets It's not possible - his programming (and mine in this thread, which is based on his) rely heavily on virtual outlets.
 
Thanks for your help Russ!

Maybe I do have virtual outlets. See... I do know nothing about them.

I've been reading the manual all afternoon, and still have questions. :)

VDM is 3 in my set up
PRESENTLY WITH MidDay, Sunset and Sunrise (Are those virtual outlets?)
So I should change those to the ones you have named 4_x......
AI_Blue, AI_White and AI_Royal
CORRECT?

EB8 is 4 in my set up
1: Refugium Light
2: Return Pump
3: Skimmer
4: TopOff
5: Heater
6: Vortech 40
7: Vortech 10
8: Dosers
There aren't any outlets left on this. My 3 AI's are plugged directly into electrical outlets.

I do see where the Cntrl: A1-16 come in, under the Module set up, Add module -- but which of the 4 do I chose? DirectConnect8, DirectConnect4, AquaSurf or Lunar Simulator?
 
Current Outlet setup --- YES, I guess I do have Virtual Outlets

apex.jpg
 
So if I Add a Module, DirectConnect8 with start control address A1, it gives me 8 virtual outlets that I can rename and set up to the correct names, as in your program.

Then again, Add a Module, DirectConnect8 with start control address A9, it will give me another set of 8 outlets, I can rename as in your program.

So is that correct?

If so, then my only remaining question is the first entry, and whether I need to have my Sols plugged into the APEX power EB8 module (4 in my setup, of which 4_1-8 are taken), or is this another virtual outlet?
[ AI_Sol_Power ] ( 3_1 )
Fallback OFF
Set OFF
If Outlet AI_Blue = ON Then ON
If Outlet AI_White = ON Then ON
If Outlet AI_Royal = ON Then ON
Defer 000:05 Then ON
Defer 000:05 Then OFF
 
You, you are on the right track with the Virtual outlets.

As I already said, 3_1 is an EB8 outlet - it controls power to the Sol fixture, as the outlet name indicates. You do not have to use the Apex to control AC power to the fixture... that's optional. If you don't have a EB outlet to spare, just plug the Sol into a normal AC wall outlet.
 
Ok, think I've got it. I really appreciate your help!

I left 3_1-4 "empty", and turned off. Wasn't quite sure what to do about them.

apex2.jpg
 
I am trying to understand this Sol on 20% and 70% part of the code. here is what you have listed. I just can not see the trigger to turn on the outlets.

Outlests

[ AI_Royal ] ( 4_7 )
Set OFF
If Outlet MoonWax = ON Then MoonRise
If Outlet MoonUp = ON Then MoonFull
If Outlet MoonWane = ON Then MoonSet
If Outlet RB-Dawn = ON Then RB_Rise
If Outlet RB-Day = ON Then RB_Day
If Outlet RB-Dusk = ON Then RB_Set
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Outlet Sol-On-20% = ON Then Steady20
If Outlet Sol-On-70% = ON Then Steady70


[ Sol-On-20% ] ( Cntl:A15 )
Set OFF

[ Sol-On-70% ] ( Cntl:A16 )
Set OFF


PROFILES


[ Steady20 ]
Ramp Time: 1
Start Intensity: 20
End Intensity: 20

[ Steady70 ]
Ramp Time: 1
Start Intensity: 70
End Intensity: 70

I am using

Set OFF
If Outlet V_Sunrise = ON Then AI_W_UP
If Outlet V_Midday = ON Then AI_W_ON
If Outlet Daylight = ON Then ON
If Outlet V_Sunset = ON Then AI_W_DN
If Outlet Blueshow = ON Then OFF
If Outlet Clouds = ON Then Cloudy
If Outlet Storms = ON Then Stormy
If Temp > 82.0 Then OFF

with the Daylight outlet for the lights to stay on. Not sure that is better Would love some input. on this.

Thanks for your help
 
You do not have to use the Apex to control AC power to the fixture... that's optional. If you don't have a EB outlet to spare, just plug the Sol into a normal AC wall outlet.

Exactly what I do to free up outlets on the EB8.
 
Exactly what I do to free up outlets on the EB8.

Well for me I have my Lights, Mp40's plugged in to a wall outlet. Because I can turn them off through the controller even if they are not plugged in to the apex you can save plugs that way. You might want to free up a plug for a say a fan if you start to over heat. or if you like to keep your house cooler a second heater.
 
Last edited:
I probably should have explained those two virtual outlets. They are manually activated as desired. They will override the normally scheduled programming to either 20% or 70% intensity. The intent is to be able to easily set the lights to a fixed moderately dim 20% or moderately bright 70% intensity any time you want to. Feeding times, maintenance, or showing off to friends, etc.
 
I probably should have explained those two virtual outlets. They are manually activated as desired. They will override the normally scheduled programming to either 20% or 70% intensity. The intent is to be able to easily set the lights to a fixed moderately dim 20% or moderately bright 70% intensity any time you want to. Feeding times, maintenance, or showing off to friends, etc.
Tanks for the info Russ. I use the same type of thing for showing off the LED pop to people that come over to check out the tank. I just call it the blueshow. Just click that outlet on with my phone then watch there faces as the corals pop.

Thanks for adding the storm and clouds. I played with them last night and they look really good.
 
Back
Top