wavemaker on port 6 problem

Do you have a question on how to do something.
Ask in here.
Post Reply
Reefology
Posts: 209
Joined: Fri Dec 26, 2014 6:38 pm

wavemaker on port 6 problem

Post by Reefology »

wondering if someone can tell me why my code compiles but wavemaker on port 6 never comes on?

Code: Select all

#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 <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <PAR.h>
#include <ReefAngel.h>

////// Place global variable code below here


////// Place global variable code above here


void setup()
{
    // This must be the first line
    ReefAngel.Init();  //Initialize controller
    ReefAngel.Use2014Screen();  // Let's use 2014 Screen 
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port5Bit | Port6Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port5Bit | Port6Bit | Port7Bit | Port8Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port3Bit | Port4Bit;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port3Bit | Port4Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;

    // Feeeding and Water Change mode speed
    ReefAngel.DCPump.FeedingSpeed=0;
    ReefAngel.DCPump.WaterChangeSpeed=0;


    // Ports that are always on
    ReefAngel.Relay.On( Port8 );

    ////// Place additional initialization code below here
    
    // Password Protection username:xxx password:xxx
    // ReefAngel.Network.WifiAuthentication("xxx:xxx"); 

    ////// Place additional initialization code above here
}

void loop()
{
    ReefAngel.DosingPumpRepeat1( Port1 );
    ReefAngel.MoonLights( Port2 );
    ReefAngel.ActinicLights( Port3 );
    ReefAngel.DayLights( Port4 );
    ReefAngel.WavemakerRandom( Port5,120,1500 );
    ReefAngel.WavemakerRandom( Port6,180,1000 );
    ReefAngel.StandardHeater( Port7 );
    ReefAngel.DCPump.ActinicChannel = Sync; // Now pump will be affected by the portal settings
    // Remove next 2 lines for single dc pump
    // ReefAngel.DCPump.DaylightChannel = AntiSync; // Now pump will be affected by the portal settings
    // ReefAngel.DCPump.AntiSyncOffset=100; 
    
    ////// Place your custom code below here
    
  // Wavemaker Koralia night mode
    if (hour()>=23 || hour()<8) ReefAngel.Relay.Off (Port6);
   
  // DC pumps
    // To run this code must choose Custom in portal
    static int rmode;
    static boolean changeMode=true;

    // These are the modes we can cycle through. You can add more and even repeat...
    byte modes[] = { ReefCrest, Lagoon, TidalSwell, ShortPulse, Sine, LongPulse, Else, Gyre, NutrientTransport };

    if (now()%600==0 || changeMode==true) { // Change every 10 (600seconds) mins or controller reboot
    rmode=random(100)%sizeof(modes); // Change the mode by picking from our array
    changeMode=false;
    }

    // Set timer when in feeding mode
    static unsigned long feeding;
    if (ReefAngel.DisplayedMenu==FEEDING_MODE) feeding=now();
    
    if (now()-feeding<1800) {
    // Continue NutrientTranspot Mode for 30 minutes
    ReefAngel.DCPump.UseMemory=false;
    ReefAngel.DCPump.Duration=InternalMemory.DCPumpDuration_read();
    ReefAngel.DCPump.Mode=NutrientTransport;
    } else if (now()%SECS_PER_DAY<43200 || now()%SECS_PER_DAY>=79200) { // 12pm / 10pm
    // Night mode (go to 30%)
    ReefAngel.DCPump.UseMemory=false;
    ReefAngel.DCPump.Duration=InternalMemory.DCPumpDuration_read();
    ReefAngel.DCPump.Mode=Sine;
    ReefAngel.DCPump.Speed=30;
    } else if (InternalMemory.DCPumpMode_read()==11) {
    // Custom Mode and nothing else going on
    ReefAngel.DCPump.UseMemory=false;
    ReefAngel.DCPump.Duration=InternalMemory.DCPumpDuration_read();
    ReefAngel.DCPump.Mode=modes[rmode]; // Put the mode to the random mode :)
    ReefAngel.DCPump.Speed=InternalMemory.DCPumpSpeed_read(); // Set speed from portal
    } else {
    ReefAngel.DCPump.UseMemory=true; // Will reset all values from memory
    }

    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.Portal( "Reefology" );
    ReefAngel.DDNS("xxx"); // Your DDNS is Reefology-xxx.myreefangel.com
    ReefAngel.ShowInterface();
}

Thanks
Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: wavemaker on port 6 problem

Post by rimai »

Try changing this:

Code: Select all

    ReefAngel.WavemakerRandom( Port5,120,1500 );
    ReefAngel.WavemakerRandom( Port6,180,1000 );
To this:

Code: Select all

    ReefAngel.WavemakerRandom1( Port5,120,1500 );
    ReefAngel.WavemakerRandom2( Port6,180,1000 );
Roberto.
Reefology
Posts: 209
Joined: Fri Dec 26, 2014 6:38 pm

Re: wavemaker on port 6 problem

Post by Reefology »

Will try it...thank you sir!

on another note Roberto, I sent you a pm regarding my DDNS and didn't hear back. Can you please respond when you have a moment?

Thanks
Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: wavemaker on port 6 problem

Post by rimai »

Sorry, yeah, I tested and it worked for me
Roberto.
Post Reply