Hi,
I just got the RA+, wifi and tried many things
I know this is great controller, btw i need to know how to code first.. not easy..
my qestion is
If port #5 "always on" and it off by accidentally or on purpose,
is it possible to turn on automatically after cetain time out? like turn on after 5min or 1hr
////// Place global variable code below here
unsigned long LastPort5On=now();
unsigned long LastPort6On=now();
////// Place global variable code above here
void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port5Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port6Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = 0;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 860 );
// Ports that are always on
ReefAngel.Relay.On( Port6 );
ReefAngel.Relay.On( Port8 );
////// Place additional initialization code below here
ReefAngel.Relay.On(Port5);
////// Place additional initialization code above here
}
if (ReefAngel.Relay.Status(Port5)) LastPort5On=now();
if (now()-LastPort5On > 300)
{
ReefAngel.Relay.On(Port5);
ReefAngel.Relay.RelayMaskOff|=Port5Bit;
}
if (ReefAngel.Relay.Status(Port6)) LastPort6On=now();
if (now()-LastPort6On > 14400)
{
ReefAngel.Relay.On(Port6);
ReefAngel.Relay.RelayMaskOff|=Port6Bit;
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal( "kimacom" );
ReefAngel.ShowInterface();
}
if wrong, please correct me,
and one more question, there is port #7 (opposite #8 ) could be delayed on start after #8 off?
You were just missing on last closing bracket on your last if statement.
Other than that, it looks good to me
Good job!!
You could use same concept for Port 7.
Declare a new variable up top
Then keep checking for status of port 8 and do something if the delay expires.
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <ReefAngel.h>
////// Place global variable code below here
unsigned long LastPort5On=now();
unsigned long LastPort6On=now();
unsigned long LastPort8On=now();
////// Place global variable code above here
void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port5Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port6Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = 0;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 860 );
// Ports that are always on
ReefAngel.Relay.On( Port6 );
ReefAngel.Relay.On( Port8 );
////// Place additional initialization code below here
ReefAngel.Relay.On(Port5);
////// Place additional initialization code above here
}
void loop()
{
ReefAngel.StandardATO( Port1,60 );
ReefAngel.StandardLights( Port2,9,0,11,0 );
ReefAngel.StandardHeater( Port3,775,785 );
ReefAngel.StandardFan( Port4,785,805 );
ReefAngel.Wavemaker( Port5,0 );
ReefAngel.Relay.Set( Port7, !ReefAngel.Relay.Status( Port8 ) );
ReefAngel.PWM.SetDaylight( PWMParabola(11,0,19,0,12,40,12) );
ReefAngel.PWM.SetActinic( PWMParabola(9,0,23,0,12,40,12) );
////// Place your custom code below here
if (ReefAngel.Relay.Status(Port5)) LastPort5On=now();
if (now()-LastPort5On > 300)
{
ReefAngel.Relay.On(Port5);
ReefAngel.Relay.RelayMaskOff|=Port5Bit;
}
if (ReefAngel.Relay.Status(Port6)) LastPort6On=now();
if (now()-LastPort6On > 14400)
{
ReefAngel.Relay.On(Port6);
ReefAngel.Relay.RelayMaskOff|=Port6Bit;
}
ReefAngel.Relay.Off(Port7);
if (ReefAngel.Relay.Status(Port8)) LastPort8On=now();
if (now()-LastPort8On > 3)
{
ReefAngel.Relay.On(Port7);
}
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal( "kimacom" );
ReefAngel.ShowInterface();
}
Great.
so, port#7 will be turn on 3sec after port#8 off, right?
and can i give the time out port#7 for during like 10min?
or it will turn off automatically after port #8 turn on
because i use port #7 as water change pump(sump water out) so,
should i turn on port #8 first(means water change mode off) or just give exact time out for port#7(which means not opposite port #8)
i am confusing...
just to chime in, this type of changes could prevent water change and feeding change modes. this just means that if the ports get turned off by those modes that they will get turned back on by your code overrides.