My Jebao "Else" mode

Expansion modules and attachments
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

Try something like this:

Code: Select all

 
if (ReefAngel.DCPump.Mode==Custom)
{
  ReefAngel.PWM.SetActinic( ElseMode(ReefAngel.DCPump.Speed,20,true ));                     // ElseMode on sync mode, Portal Speed Setting +/- 20%
}
If you wanted to use the Duration parameter as well to affect the offset:

Code: Select all

 
if (ReefAngel.DCPump.Mode==Custom)
{
  ReefAngel.PWM.SetActinic( ElseMode(ReefAngel.DCPump.Speed,ReefAngel.DCPump.Duration,true ));                     // ElseMode on sync mode, Portal Speed Setting +/- 20%
}
I have Vortech MP40s so I have no need to use the DCPump class.. thats why you won't find it in my code. However the RF Pump is very similar so alot of my code that I use to bypass the stock RF function is mostly valid. The only thing we are missing is the ability to SetMode and specify which channel to write to so we could control the Sync / AntiSync modes seperately... it's an easy fix, but I haven't had time to write it.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: My Jebao "Else" mode

Post by Sacohen »

If I wanted to use either of what you have above I would need to set the DCPumps to use the internal memory with this code...

Code: Select all

ReefAngel.DCPump.UseMemory = true;
Correct?

Also the duration on the Portal is in what measurement?
Seconds, Milliseconds?
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

Not necessarily. You only need use memory true if you are controlling through portal.

It depends on the function being used on. But typically its seconds.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: My Jebao "Else" mode

Post by Sacohen »

Thanks Lee.
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

I cant get this work...this is my code:

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 <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
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port7Bit | Port8Bit;
    ReefAngel.FeedingModePortsE[0] = 0;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port7Bit | Port8Bit;
    ReefAngel.WaterChangePortsE[0] = Port3Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port1Bit | Port4Bit;
    ReefAngel.LightsOnPortsE[0] = 0;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit | Port5Bit;
    ReefAngel.OverheatShutoffPortsE[0] = 0;
    // Use T2 probe as temperature and overheat functions
    ReefAngel.TempProbe = T2_PROBE;
    ReefAngel.OverheatProbe = T2_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 851 );

    // Feeeding and Water Change mode speed
      


    // Ports that are always on
    ReefAngel.Relay.On( Port8 );
    ReefAngel.Relay.On( Box1_Port1);
    ReefAngel.Relay.On( Box1_Port2 );
    ReefAngel.Relay.On( Box1_Port3 );
    ReefAngel.Relay.On( Box1_Port4 );
    ReefAngel.Relay.On( Box1_Port7 );
    ReefAngel.Relay.On( Box1_Port8 );
    

    ////// Place additional initialization code below here
    

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

void loop()
{
    ReefAngel.StandardLights( Port1,14,0,19,0 );
    ReefAngel.StandardLights( Port2,15,0,20,0 );
    ReefAngel.StandardLights( Port3,19,55,22,0 );
    ReefAngel.StandardLights( Port4,14,0,20,15 );
    ReefAngel.StandardHeater( Port5,780,785 );
    ReefAngel.StandardFan( Port6,780,800 );
    ReefAngel.Relay.DelayedOn( Port7,60 );
    ReefAngel.StandardLights( Box1_Port5,22,0,16,0 );
    ReefAngel.DCPump.UseMemory = true;
    ////// Place your custom code below here
    
    if (ReefAngel.DCPump.Mode==Custom)
{
  ReefAngel.PWM.SetDaylight( ElseMode(70,30,true ));                     // ElseMode on sync mode, 70 +/- 30%
}
    
     static time_t StartFeeding=0;
      if (ReefAngel.DisplayedMenu==FEEDING_MODE)
        StartFeeding=now(); // if we entered feeding mode, register what time it was.
      if (now()-StartFeeding > 1800 && now()-StartFeeding < 5400) // if feeding started between 1800 and 5400 seconds
        ReefAngel.PWM.SetActinic(100);
      else   
        ReefAngel.PWM.SetActinic(45);
    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.Portal( "ganjero" );
    ReefAngel.ShowInterface();
}

void DrawCustomMain()
{
    int x,y;
    char text[10];
    // Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
    ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params,
    ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
    ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
    pingSerial();

    // Main Relay Box
    byte TempRelay = ReefAngel.Relay.RelayData;
    TempRelay &= ReefAngel.Relay.RelayMaskOff;
    TempRelay |= ReefAngel.Relay.RelayMaskOn;
    ReefAngel.LCD.DrawOutletBox( 12, 93, TempRelay );
    pingSerial();

    // Relay Expansion
    TempRelay = ReefAngel.Relay.RelayDataE[0];
    TempRelay &= ReefAngel.Relay.RelayMaskOffE[0];
    TempRelay |= ReefAngel.Relay.RelayMaskOnE[0];
    ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay );
    pingSerial();

    // Date and Time
    ReefAngel.LCD.DrawDate( 6, 122 );
    pingSerial();
}

void DrawCustomGraph()
{
    ReefAngel.LCD.DrawGraph( 5, 5 );
}
    byte ElseMode( byte MidPoint, byte Offset, boolean WaveSync )
    {
      // Static's only initialize the first time they are called
      static unsigned long LastChange=millis();        // Set the inital time that the last change occurred
      static int Delay = random( 500, 3000);           // Set the initial delay
      static int NewSpeed = MidPoint;                  // Set the initial speed
      static int AntiSpeed = MidPoint;                 // Set the initial anti sync speed
      if ((millis()-LastChange) > Delay)               // Check if the delay has elapsed
      {
        Delay=random(500,5000);                        // If so, come up with a new delay
        int ChangeUp = random(Offset);                 // Amount to go up or down
        if (random(100)<50)                            // 50/50 chance of speed going up or going down
        {
          NewSpeed = MidPoint - ChangeUp;
          AntiSpeed = MidPoint + ChangeUp;
        }
        else
        {
          NewSpeed = MidPoint + ChangeUp;
          AntiSpeed = MidPoint - ChangeUp;
        }
        LastChange=millis();                           // Reset the time of the last change
      }
      if (WaveSync)
      {
        return NewSpeed;
      }
      else
      {
        return AntiSpeed;
      }
    }
Image
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: My Jebao "Else" mode

Post by cosmith71 »

What is the pump doing or not doing? Code looks OK, but I'm not familiar with the portal pump control so I might be missing something.

Sent from my M470BSA using Tapatalk 4 Beta
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

if I use this code (elsemode) the pump stays at 20%, if I replace the code with the reefcrest line below it works fine

Code: Select all

 ReefAngel.PWM.SetDaylight( ReefCrestMode(70,30,true) ); // ReefCrest at 70% +/- 30% on sync mode
Last edited by ganjero on Mon Jul 15, 2013 7:23 pm, edited 1 time in total.
Image
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

Try this:

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 <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
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port7Bit | Port8Bit;
    ReefAngel.FeedingModePortsE[0] = 0;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port7Bit | Port8Bit;
    ReefAngel.WaterChangePortsE[0] = Port3Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port1Bit | Port4Bit;
    ReefAngel.LightsOnPortsE[0] = 0;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit | Port5Bit;
    ReefAngel.OverheatShutoffPortsE[0] = 0;
    // Use T2 probe as temperature and overheat functions
    ReefAngel.TempProbe = T2_PROBE;
    ReefAngel.OverheatProbe = T2_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 851 );

    // Feeeding and Water Change mode speed
      


    // Ports that are always on
    ReefAngel.Relay.On( Port8 );
    ReefAngel.Relay.On( Box1_Port1);
    ReefAngel.Relay.On( Box1_Port2 );
    ReefAngel.Relay.On( Box1_Port3 );
    ReefAngel.Relay.On( Box1_Port4 );
    ReefAngel.Relay.On( Box1_Port7 );
    ReefAngel.Relay.On( Box1_Port8 );
    

    ////// Place additional initialization code below here
    

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

void loop()
{
    ReefAngel.StandardLights( Port1,14,0,19,0 );
    ReefAngel.StandardLights( Port2,15,0,20,0 );
    ReefAngel.StandardLights( Port3,19,55,22,0 );
    ReefAngel.StandardLights( Port4,14,0,20,15 );
    ReefAngel.StandardHeater( Port5,780,785 );
    ReefAngel.StandardFan( Port6,780,800 );
    ReefAngel.Relay.DelayedOn( Port7,60 );
    ReefAngel.StandardLights( Box1_Port5,22,0,16,0 );
    ReefAngel.DCPump.UseMemory = true;
    ////// Place your custom code below here
    
    if (ReefAngel.DCPump.Mode==Custom)
{
  ReefAngel.PWM.SetDaylight( ElseMode(70,30,true ));                     // ElseMode on sync mode, 70 +/- 30%
ReefAngel.DCPump.UseMemory = false;
} else {
 ReefAngel.DCPump.UseMemory = true;
}
    
     static time_t StartFeeding=0;
      if (ReefAngel.DisplayedMenu==FEEDING_MODE)
        StartFeeding=now(); // if we entered feeding mode, register what time it was.
      if (now()-StartFeeding > 1800 && now()-StartFeeding < 5400) // if feeding started between 1800 and 5400 seconds
        ReefAngel.PWM.SetActinic(100);
      else   
        ReefAngel.PWM.SetActinic(45);
    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.Portal( "ganjero" );
    ReefAngel.ShowInterface();
}

void DrawCustomMain()
{
    int x,y;
    char text[10];
    // Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
    ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params,
    ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
    ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
    pingSerial();

    // Main Relay Box
    byte TempRelay = ReefAngel.Relay.RelayData;
    TempRelay &= ReefAngel.Relay.RelayMaskOff;
    TempRelay |= ReefAngel.Relay.RelayMaskOn;
    ReefAngel.LCD.DrawOutletBox( 12, 93, TempRelay );
    pingSerial();

    // Relay Expansion
    TempRelay = ReefAngel.Relay.RelayDataE[0];
    TempRelay &= ReefAngel.Relay.RelayMaskOffE[0];
    TempRelay |= ReefAngel.Relay.RelayMaskOnE[0];
    ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay );
    pingSerial();

    // Date and Time
    ReefAngel.LCD.DrawDate( 6, 122 );
    pingSerial();
}

void DrawCustomGraph()
{
    ReefAngel.LCD.DrawGraph( 5, 5 );
}
    byte ElseMode( byte MidPoint, byte Offset, boolean WaveSync )
    {
      // Static's only initialize the first time they are called
      static unsigned long LastChange=millis();        // Set the inital time that the last change occurred
      static int Delay = random( 500, 3000);           // Set the initial delay
      static int NewSpeed = MidPoint;                  // Set the initial speed
      static int AntiSpeed = MidPoint;                 // Set the initial anti sync speed
      if ((millis()-LastChange) > Delay)               // Check if the delay has elapsed
      {
        Delay=random(500,5000);                        // If so, come up with a new delay
        int ChangeUp = random(Offset);                 // Amount to go up or down
        if (random(100)<50)                            // 50/50 chance of speed going up or going down
        {
          NewSpeed = MidPoint - ChangeUp;
          AntiSpeed = MidPoint + ChangeUp;
        }
        else
        {
          NewSpeed = MidPoint + ChangeUp;
          AntiSpeed = MidPoint - ChangeUp;
        }
        LastChange=millis();                           // Reset the time of the last change
      }
      if (WaveSync)
      {
        return NewSpeed;
      }
      else
      {
        return AntiSpeed;
      }
    }
[/quote]
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: My Jebao "Else" mode

Post by cosmith71 »

What he said. :D I'm guessing the use memory overrides the custom?

Sent from my M470BSA using Tapatalk 4 Beta
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

Did not work,

what do these two lines do?
ReefAngel.DCPump.UseMemory = false;
} else {
ReefAngel.DCPump.UseMemory = true;
Image
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

It tells the ReefAngel class to not use memory which would use the speed and duration (mode is already custom) not to reset from memory.

I relooked at the code i dont see any issues. Where are you seeing the speed stuck at? Are you looking at the PWM value or the pump settings?
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

The controller screen shows 20, portal shows 20 and doesn't show the the pump settings. I must have something wrong but cant see it.
Also it the pumps runs really slow and the it stops
I appreciate the help

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 <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
        // Ports toggled in Feeding Mode
        ReefAngel.FeedingModePorts = Port7Bit | Port8Bit;
        ReefAngel.FeedingModePortsE[0] = 0;
        // Ports toggled in Water Change Mode
        ReefAngel.WaterChangePorts = Port7Bit | Port8Bit;
        ReefAngel.WaterChangePortsE[0] = Port3Bit;
        // Ports toggled when Lights On / Off menu entry selected
        ReefAngel.LightsOnPorts = Port1Bit | Port4Bit;
        ReefAngel.LightsOnPortsE[0] = 0;
        // Ports turned off when Overheat temperature exceeded
        ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit | Port5Bit;
        ReefAngel.OverheatShutoffPortsE[0] = 0;
        // Use T2 probe as temperature and overheat functions
        ReefAngel.TempProbe = T2_PROBE;
        ReefAngel.OverheatProbe = T2_PROBE;
        // Set the Overheat temperature setting
        InternalMemory.OverheatTemp_write( 851 );
        //Feeedin mode length
        ReefAngel.Timer[FEEDING_TIMER].SetInterval(300);

        // Feeeding and Water Change mode speed
         


        // Ports that are always on
        ReefAngel.Relay.On( Port8 );
        ReefAngel.Relay.On( Box1_Port1);
        ReefAngel.Relay.On( Box1_Port2 );
        ReefAngel.Relay.On( Box1_Port3 );
        ReefAngel.Relay.On( Box1_Port4 );
        ReefAngel.Relay.On( Box1_Port7 );
        ReefAngel.Relay.On( Box1_Port8 );
       

        ////// Place additional initialization code below here
       

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

    void loop()
    {
        ReefAngel.StandardLights( Port1,14,0,19,0 );
        ReefAngel.StandardLights( Port2,15,0,20,0 );
        ReefAngel.StandardLights( Port3,19,55,22,0 );
        ReefAngel.StandardLights( Port4,14,0,20,15 );
        ReefAngel.StandardHeater( Port5,780,785 );
        ReefAngel.StandardFan( Port6,780,800 );
        ReefAngel.Relay.DelayedOn( Port7,60 );
        ReefAngel.StandardLights( Box1_Port5,22,0,16,0 );
        ReefAngel.DCPump.UseMemory = true;
        ////// Place your custom code below here
       
        if (ReefAngel.DCPump.Mode==Custom)
    {
      ReefAngel.PWM.SetDaylight( ElseMode(70,30,true ));                     // ElseMode on sync mode, 70 +/- 30%
    ReefAngel.DCPump.UseMemory = false;
    } else {
    ReefAngel.DCPump.UseMemory = true;
    }
       
         static time_t StartFeeding=0;
          if (ReefAngel.DisplayedMenu==FEEDING_MODE)
            StartFeeding=now(); // if we entered feeding mode, register what time it was.
          if (now()-StartFeeding > 1800 && now()-StartFeeding < 5400) // if feeding started between 1800 and 5400 seconds
            ReefAngel.PWM.SetActinic(100);
          else   
            ReefAngel.PWM.SetActinic(45);
        ////// Place your custom code above here

        // This should always be the last line
        ReefAngel.Portal( "ganjero" );
        ReefAngel.ShowInterface();
    }

    void DrawCustomMain()
    {
        int x,y;
        char text[10];
        // Parameters
    #if defined DisplayLEDPWM && ! defined RemoveAllLights
        ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params,
        ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
    #else // defined DisplayLEDPWM && ! defined RemoveAllLights
        ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params );
    #endif // defined DisplayLEDPWM && ! defined RemoveAllLights
        pingSerial();

        // Main Relay Box
        byte TempRelay = ReefAngel.Relay.RelayData;
        TempRelay &= ReefAngel.Relay.RelayMaskOff;
        TempRelay |= ReefAngel.Relay.RelayMaskOn;
        ReefAngel.LCD.DrawOutletBox( 12, 93, TempRelay );
        pingSerial();

        // Relay Expansion
        TempRelay = ReefAngel.Relay.RelayDataE[0];
        TempRelay &= ReefAngel.Relay.RelayMaskOffE[0];
        TempRelay |= ReefAngel.Relay.RelayMaskOnE[0];
        ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay );
        pingSerial();

        // Date and Time
        ReefAngel.LCD.DrawDate( 6, 122 );
        pingSerial();
    }

    void DrawCustomGraph()
    {
        ReefAngel.LCD.DrawGraph( 5, 5 );
    }
        byte ElseMode( byte MidPoint, byte Offset, boolean WaveSync )
        {
          // Static's only initialize the first time they are called
          static unsigned long LastChange=millis();        // Set the inital time that the last change occurred
          static int Delay = random( 500, 3000);           // Set the initial delay
          static int NewSpeed = MidPoint;                  // Set the initial speed
          static int AntiSpeed = MidPoint;                 // Set the initial anti sync speed
          if ((millis()-LastChange) > Delay)               // Check if the delay has elapsed
          {
            Delay=random(500,5000);                        // If so, come up with a new delay
            int ChangeUp = random(Offset);                 // Amount to go up or down
            if (random(100)<50)                            // 50/50 chance of speed going up or going down
            {
              NewSpeed = MidPoint - ChangeUp;
              AntiSpeed = MidPoint + ChangeUp;
            }
            else
            {
              NewSpeed = MidPoint + ChangeUp;
              AntiSpeed = MidPoint - ChangeUp;
            }
            LastChange=millis();                           // Reset the time of the last change
          }
          if (WaveSync)
          {
            return NewSpeed;
          }
          else
          {
            return AntiSpeed;
          }
        }
Image
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: My Jebao "Else" mode

Post by cosmith71 »

Are you using the portal to change modes?
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

cosmith71 wrote:Are you using the portal to change modes?
No, should I? I really just want to run your elsemode on one pump connected to the daylight channel.
Image
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: My Jebao "Else" mode

Post by cosmith71 »

ganjero wrote:
cosmith71 wrote:Are you using the portal to change modes?
No, should I? I really just want to run your elsemode on one pump connected to the daylight channel.
Easy! Take out all this:

Code: Select all

ReefAngel.DCPump.UseMemory = true;
              
        if (ReefAngel.DCPump.Mode==Custom)
    {
      ReefAngel.PWM.SetDaylight( ElseMode(70,30,true ));                     // ElseMode on sync mode, 70 +/- 30%
    ReefAngel.DCPump.UseMemory = false;
    } else {
    ReefAngel.DCPump.UseMemory = true;
    }

And use this instead:

Code: Select all

ReefAngel.PWM.SetDaylight( ElseMode(70,30,true ));                     // ElseMode on sync mode, 70 +/- 30%
--Colin
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

It's working now.

Thanks a lot
Image
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

What is this line telling the controller?
if (ReefAngel.DCPump.Mode==Custom)
Image
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: My Jebao "Else" mode

Post by cosmith71 »

I believe it reads the mode set by the portal. I don't use the portal for pump control so I'm not for certain.
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

Exactly what it does. The Custom option was added as a drop down selection in the portal so that users could define their own mode which was what you were doing. I have a feeling if you never changed that it was not set to Custom and your mode was not getting triggered.
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

Where does the drop down in portal would show?

What do you mean if never changed it? where do I change it?

Thanks
Image
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

In the portal under Internal Memory there is a section called DC Pumps
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: My Jebao "Else" mode

Post by Sacohen »

ganjero wrote:Where does the drop down in portal would show?

What do you mean if never changed it? where do I change it?

Thanks
1st part: Go to Internal Memory and then the last tab is DC Pump. Under there is a drop down for the different modes and Custom is in there

I don't know the answer to the 2nd part.
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

Found it, what does the duration in portal determine? aren't the duration(s) determined by the mode in the sketch?


Thanks a lot
Image
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

Some of the modes like ShortPulse / LongPulse and Nutrient Transport use Duration to set the pulse duration of the wave. You can fine-tune things with that field. I use that field in my custom modes for similar purposes.
ganjero
Posts: 145
Joined: Fri Jul 05, 2013 5:29 am

Re: My Jebao "Else" mode

Post by ganjero »

lnevo wrote:Some of the modes like ShortPulse / LongPulse and Nutrient Transport use Duration to set the pulse duration of the wave. You can fine-tune things with that field. I use that field in my custom modes for similar purposes.
That's great to know, that would make it so much easier to tune a wave....

So if I'm using reefcrest or this else mode that duration will not affect anything and be overlooked?
Image
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

Yes
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: My Jebao "Else" mode

Post by Sacohen »

Is anyone running this mode on Anti-Sync with 2 Jebao's?

I was going to put a 2nd pump in my tank and set up on this mode in Anti sync with my first pump, but it doesn't seem that there is enough time between cycles for the 2nd pump to kick in.
cjrudy
Posts: 135
Joined: Sat Nov 10, 2012 2:47 pm

Re: My Jebao "Else" mode

Post by cjrudy »

My second pump just came in today and I was wondering the same thing.
cjrudy
Posts: 135
Joined: Sat Nov 10, 2012 2:47 pm

Re: My Jebao "Else" mode

Post by cjrudy »

Can the portal set anti sync modes ?
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: My Jebao "Else" mode

Post by lnevo »

It does the anti-sync for the mode chosen. When you setup your code you can choose which pump is on sync and which would be anti.

If you want two different modes you'll need to create a custom mode.
Post Reply