Android Reef Angel Status

Community contributed apps
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Android Reef Angel Status

Post by cosmith71 »

dapg8gt wrote:Thanks for the info guys appreciate it. Ive been all good for a few days and havent had to change anything how often would the ip change if it was to?

Absolutely love the android app just downloaded the update and I still need to figure out how to use it(app) to its potential. Leaps and bounds above the iphone app. Great job OP thanks
No way to tell how often it will change. It's up to your ISP. Could be days or months.

Agreed on the app. It's awesome!

--Colin
pandimus
Posts: 213
Joined: Mon Apr 01, 2013 7:58 pm

Re: Android Reef Angel Status

Post by pandimus »

Looks fabulous...
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Android Reef Angel Status

Post by binder »

thanks. more improvements are on the way in the future. :)
phrusher
Posts: 65
Joined: Fri May 25, 2012 12:22 am

Re: Android Reef Angel Status

Post by phrusher »

Great work! Really awesome update.
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Android Reef Angel Status

Post by cosmith71 »

Too early to start wishlist for next version?

More user friendly memory location page. Maybe scrolling instead of dropdown, with a favorites list for frequently used locations. Also, support for Dosing Pump 3.

Webcam integration? On a swipe-to page?

--Colin
mudcat1
Posts: 133
Joined: Sun Dec 09, 2012 7:23 pm

Re: Android Reef Angel Status

Post by mudcat1 »

cosmith71 wrote:Too early to start wishlist for next version?

More user friendly memory location page. Maybe scrolling instead of dropdown, with a favorites list for frequently used locations. Also, support for Dosing Pump 3.

Webcam integration? On a swipe-to page?

--Colin
Colin,
Those are good suggestions. I love your idea of a favorites list for frequently used memory locations. I have 4 to 5 memory locations that I tweak all the time. This would be a definite timesaver for me. I would also like to have an expanded/scrollable list of custom memory locations including the memory location number displayed under the description label (implemented in the manner the new relays are... Label, Port 1). I have many more (30+) custom memory variables than the 8 custom that are currently displayed in the Android application.

Thanks for volunteering such good ideas.
John
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Android Reef Angel Status

Post by binder »

https://github.com/curtbinder/AndroidSt ... state=open

That's the issues page that I try to go by. If you look at milestone 0.9.2, the next things that I'm working on is Custom Notifications and Custom Memory Locations. I had to rewrite how I handle the database and will have to rewrite the displaying of the app to get these added (it's not hard, just a lot of little details to make sure I get correct). This will allow for you to store your custom memory locations you use frequently and give them a label. You will also be able to set Notifications based on any parameter, like the Portal. So if your T1 temp is over 85, the app will notify you with a notification in the indicator area (like it does for a bad url or error).

Feel free to add more issues (if you have a github account), and I can verify some of them and see how feasible they are to implement. I can't promise anything due to my limited time, but I love the ideas and suggestions. :)
Spotted
Posts: 100
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Android Reef Angel Status

Post by Spotted »

Is there a way to customize the Command Screen? I have a few non standard commands, Nutrient Transport Mode and a Clear Siphon mode.
Is there any way to add those to the command screen, or other random whatever custom commands?
Image
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Post by binder »

Spotted wrote:Is there a way to customize the Command Screen? I have a few non standard commands, Nutrient Transport Mode and a Clear Siphon mode.
Is there any way to add those to the command screen, or other random whatever custom commands?
currently no, there is not a way to do that. I have been giving it some thought to improve the swipe to commands page and eliminate the standard commands page (from the options menu).

how do you trigger those commands? is it via custom memory locations or did you modify the libraries to add in your own commands?
if it's via memory, I am working on custom memory locations that can be stored and I may be able to figure out something for you as well.
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Android Reef Angel Status

Post by lnevo »

I am working on virtual outlets in my pde to trigger things like that...i think we should promote more of this type of usage for interactions its better feedback then writing to memory locations
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Post by binder »

lnevo wrote:I am working on virtual outlets in my pde to trigger things like that...i think we should promote more of this type of usage for interactions its better feedback then writing to memory locations
if you have that type of stuff created, then enabling the virtual outlets in the app happen automatically when the app connects to the controller (as you should already know). then you just need to label the port and you are set. :-)
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Android Reef Angel Status

Post by lnevo »

Yeah thats why its going to be my new recommendation rather than using memory locations to trigger events.
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Android Reef Angel Status

Post by binder »

I'm thinking of adding some icons to the Commands Page and then updating the layout a little. What do you think?
CommandIcons.png
CommandIcons.png (37.92 KiB) Viewed 5884 times
It's just an idea I'm toying with...nothing definite yet but could very easily be a solution.
agentgreen
Posts: 97
Joined: Wed Jul 06, 2011 6:45 am

Re: Android Reef Angel Status

Post by agentgreen »

binder wrote:I'm thinking of adding some icons to the Commands Page and then updating the layout a little. What do you think?
CommandIcons.png
It's just an idea I'
m toying with...nothing definite yet but could very easily be a solution.
Looks really nice!
Spotted
Posts: 100
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Android Reef Angel Status

Post by Spotted »

I don't really know. I post up what I want to do and my code, then someone, usually Roberto, hooks me up.. Here's the code, perhaps you could tell me... :oops:

Code: Select all

// Autogenerated file by RAGen (v1.2.2.171), (05/11/2013 19:36)
// RA_061112_0950.ino
//
// This version designed for v0.9.0 or later

/* The following features are enabled for this File: 
#define wifi
#define WDT
#define CUSTOM_MENU
#define CUSTOM_MENU_ENTRIES 5
#define ENABLE_ATO_LOGGING
#define IOEXPANSION
*/


#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 <AI.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <Salinity.h>
#include <PH.h>
#include <WaterLevel.h>
#include <ReefAngel.h>

////// Place global variable code below here
unsigned long clearsiphon=now();
boolean NTM=false;
////// Place global variable code above here

#include <avr/pgmspace.h>
prog_char menu0_label[] PROGMEM = "Feeding";
prog_char menu1_label[] PROGMEM = "Water Change";
prog_char menu2_label[] PROGMEM = "ATO Clear";
prog_char menu3_label[] PROGMEM = "Lights On";
prog_char menu4_label[] PROGMEM = "Lights Off";
prog_char menu5_label[] PROGMEM = "Clear Siphon";
prog_char menu6_label[] PROGMEM = "Nutri Transp";

PROGMEM const char *menu_items[] = {
  menu0_label, menu1_label, menu2_label, menu3_label, menu4_label, menu5_label, menu6_label  };

void MenuEntry1()
{
  ReefAngel.FeedingModeStart();

}
void MenuEntry2()
{
  ReefAngel.WaterChangeModeStart();

}
void MenuEntry3()
{
  ReefAngel.ATOClear();
  ReefAngel.DisplayMenuEntry("Clear ATO Timeout");
}
void MenuEntry4()
{
  ReefAngel.Relay.RelayMaskOn = ReefAngel.LightsOnPorts;
#ifdef RelayExp
  for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ )
  {
    ReefAngel.Relay.RelayMaskOnE[i] = ReefAngel.LightsOnPortsE[i];
  }
#endif  // RelayExp
  ReefAngel.Relay.Write();
  ReefAngel.DisplayMenuEntry("Lights On");

}
void MenuEntry5()
{
  ReefAngel.Relay.RelayMaskOn = 0;
#ifdef RelayExp
  for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ )
  {
    ReefAngel.Relay.RelayMaskOnE[i] = 0;
  }
#endif  // RelayExp
  ReefAngel.Relay.Write();
  ReefAngel.DisplayMenuEntry("Lights Off");

}

void MenuEntry6()
{
  clearsiphon=now();
  ReefAngel.DisplayedMenu=RETURN_MAIN_MODE;
}

void MenuEntry7()
{
  NTM=true; // Enable NTM mode
  ReefAngel.Timer[1].Start(); // Start timer for NTM mode
}

void setup()
{
  // This must be the first line
  ReefAngel.Init();  //Initialize controller
  // Initialize the custom menu
  ReefAngel.InitMenu(pgm_read_word(&(menu_items[0])),SIZE(menu_items));

  // Ports toggled in Feeding Mode
  ReefAngel.FeedingModePorts = Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
  // Ports toggled in Water Change Mode
  ReefAngel.WaterChangePorts = Port1Bit | Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
  //Light On/Off Ports
  ReefAngel.LightsOnPorts = Port2Bit | Port4Bit;

  // Ports that are always on

  ReefAngel.Relay.On(Port8);  //Return Pump

  //Adds Wifi function
  ReefAngel.AddWifi();
  ////// Place additional initialization code below here
  ReefAngel.Relay.On(Port8);

  ReefAngel.Timer[1].SetInterval(900); // Timer for Nutrient Transport mode

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

void loop()
{
  // Specific functions that use Internal Memory values
  ReefAngel.SingleATO(true,Port1,120,1);  //ATO time out 2 minutes once every hour
  ReefAngel.StandardLights(Port2,19,0,7,0);  //Refugium Light on at 7PM off at 6AM
  ReefAngel.StandardLights(Port3,7,0,19,0);  //Blue LED on at 7AM off at 7PM
  ReefAngel.StandardLights(Port4,8,0,18,0);  // Daylight on at 8AM off at 6PM
  //  ReefAngel.StandardLights(Port5,6,0,22,0);  //Turn off powerheads from 10PM to 6AM
  //  ReefAngel.StandardLights(Port6,6,0,22,0);  //Turn off powerheads from 10PM to 6AM
  ReefAngel.Relay.DelayedOn(Port7, 5);  //Skimmer
  ////// Place your custom code below here


  if (hour()>=22 || hour()<6)
  {
    ReefAngel.Relay.Off(Port5);
    ReefAngel.Relay.Off(Port6);
  }
  else
  {
    ReefAngel.WavemakerRandom(Port5,60,90); // Port 5 on random wavemaker
    ReefAngel.Relay.Set(Port6,!ReefAngel.Relay.Status(Port5)); // Port 6 is opposite of Port5

      if (ReefAngel.Timer[1].IsTriggered()) // if timer for NTM mode is expired
        NTM=false; // disable NTM mode

      if (NTM) // if we are on NTM mode, turn ports on
    {
      ReefAngel.Relay.On(Port5);
      ReefAngel.Relay.On(Port6);
    }

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

  // This should always be the last line
  ReefAngel.ShowInterface();
}
Image
Spotted
Posts: 100
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Android Reef Angel Status

Post by Spotted »

Yeah, that looks really sweet too BTW.
Image
User avatar
cosmith71
Posts: 1432
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Android Reef Angel Status

Post by cosmith71 »

binder wrote:I'm thinking of adding some icons to the Commands Page and then updating the layout a little. What do you think?
It's just an idea I'm toying with...nothing definite yet but could very easily be a solution.
I was going to suggest something like this. Bigger buttons would be nice, too.

--Colin
paulvisco
Posts: 53
Joined: Fri May 17, 2013 2:27 am

Re: Android Reef Angel Status

Post by paulvisco »

binder wrote:I'm thinking of adding some icons to the Commands Page and then updating the layout a little. What do you think?
CommandIcons.png
It's just an idea I'm toying with...nothing definite yet but could very easily be a solution.
lights on lights off could be done with one button and showing a light off vs a light on :) but i think that layout is a bit better..

Keep up the goodwork, it is much apretiated
Image
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Post by binder »

thanks guys. i will check into some bigger buttons for larger screen sizes.

as for the code, you simply want to launch menu 6 and 7 from a command, correct?
topjimmy
Posts: 139
Joined: Tue May 08, 2012 8:16 am

Re: Android Reef Angel Status

Post by topjimmy »

What about a way to change the mode of the jebo pumps?
Image
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Post by binder »

topjimmy wrote:What about a way to change the mode of the jebo pumps?
possibly. i haven't kept up on this discussion so i don't know how to do it.
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Android Reef Angel Status

Post by lnevo »

We've been bridging off the vortech memory location. So if you have the rf mode control should take care of it.
topjimmy
Posts: 139
Joined: Tue May 08, 2012 8:16 am

Re: Android Reef Angel Status

Post by topjimmy »

I tried it and it works. For some reason the mode always says constant and 0,0,but it does change on the portal.
Image
dapg8gt
Posts: 104
Joined: Tue Apr 16, 2013 7:33 pm
Location: 650 Bay Area..

Re: Android Reef Angel Status

Post by dapg8gt »

edit= found out most all my questions just reading the thread .

Question for me is it seems that the light settings are different than what I am used to .. Are standard lights actinic? Mh would be my daylights? I have an ATI sunpower and used the wizard, settings are just day lights and actinic offset ? I found the actinic offsetting but am a little confused about what label is for my daylights?

So questions are what memory values do I alter for my T5. Use Mh for my daylight? just set the actinic offset to my preference? Or is it the standard lights label?? Tia..
Is there anything I need to add code wise to my controller to have full access through the app memory wise? Thought I read it somewhere but can't find it anymore but I might be confusing it worth other threads in researching..

Again awesome app.. Once I figure out how to use it lol.. I've got the basics down but that's about it.. Doesn't help I'm on a new phone that I'm still getting used to lol.. Droids are a total different beast than an iPhone...

And also what happens if I have multiple things attached to it? I have ipad app, DROID app and sometimes the portal.. They will just override eachother with the commands? Thanks
My other hobby has 450rwhp and eats tires instead of mysis!
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Android Reef Angel Status

Post by binder »

dapg8gt wrote:edit= found out most all my questions just reading the thread .

Question for me is it seems that the light settings are different than what I am used to .. Are standard lights actinic? Mh would be my daylights? I have an ATI sunpower and used the wizard, settings are just day lights and actinic offset ? I found the actinic offsetting but am a little confused about what label is for my daylights?
So questions are what memory values do I alter for my T5. Use Mh for my daylight? just set the actinic offset to my preference? Or is it the standard lights label?? Tia..
StandardLights are simply whatever lights you have connected to those ports. It is meant to refer to the function that you call StandardLights(...) inside your loop() function on your controller. It was just labeled Standard Lights and then there is another one called Metal Halides. It would be better termed "Timed Port". However, with that being said, you need to have access to memory locations to differentiate them. So that's why you have a Standard Lights and Metal Halides.
Look at your code and see what function is used for the ports that your lights are plugged into. If you have the actinic lights plugged into Port 3 and the function MetalHalides() calls port3, then you use those locations for your actinic. If your daylights are using StandardLights, then you will use those. Most likely you are going to use the StandardLights locations and the actinic offset means that your "actinic lights" will come on XX minutes after your regular lights come on (hence the offset).
Is there anything I need to add code wise to my controller to have full access through the app memory wise? Thought I read it somewhere but can't find it anymore but I might be confusing it worth other threads in researching..
Nope. You don't need to do anything special to the controller other than have wifi enabled (which you do, otherwise it won't work). The only thing you might want to do, is make sure that the "Pre 1.0 locations" is turned off (unchecked). If you are using the newer libraries (1.0 or greater), then you will need to uncheck that box so the correct memory locations are referenced. I need to change that to be unchecked in the next revision. I had it set because lots of people were using it who did not have the newer libraries and I didn't want to break anything. Now, I need to revert back and use the new locations.
Otherwise, the app updates all the modules displayed based on what the controller tells it. So if you ever add a module and upload new code on your controller, the next time the android app connects to your controller, it will automatically update the screen for you and enable the new modules.
And also what happens if I have multiple things attached to it? I have ipad app, DROID app and sometimes the portal.. They will just override eachother with the commands? Thanks
If you utilize all of those methods, then they can/will override each other. So if you enter feeding mode on the portal, the next time the droid app updates, you will see the ports toggled. Everything will work properly, I would just suggest that you always refresh the app (whichever one you are using) before you go updating anything. The iPad app updates as soon as you launch it. The portal updates as soon as you enter it as well. The android app does not auto update on entering the app....it simply displays the most recent data it has received.
dapg8gt
Posts: 104
Joined: Tue Apr 16, 2013 7:33 pm
Location: 650 Bay Area..

Re: Android Reef Angel Status

Post by dapg8gt »

Thank you :-P that answered all my questions perfectly. It's up and running flawlessly. Great app Love that is so complete.. One word to explain it is AWESOME.. so glad I went with Ra over the Apex.. Support is amazing..
My other hobby has 450rwhp and eats tires instead of mysis!
phrusher
Posts: 65
Joined: Fri May 25, 2012 12:22 am

Re: Android Reef Angel Status

Post by phrusher »

I haven't really looked at the data sent from the controller but would it be possible to include and display the current mode? So if I enter feeding mode on the controller and then refresh the app it shows "Feeding" somewhere? What if you remove the text "Last update:", move date and time to the far right and display mode on the far left? Bonus points for showing remaining time as countdown in the app :D
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Android Reef Angel Status

Post by lnevo »

I think we'd need to add support for that in the libraries, but great idea to know what mode we're in!

I know I'd like to know if we arent in default mode as one time i was stuck in the setup date menu and things were not running like my heater.. :-o
binder
Posts: 2865
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Post by binder »

lnevo wrote:I think we'd need to add support for that in the libraries, but great idea to know what mode we're in!

I know I'd like to know if we arent in default mode as one time i was stuck in the setup date menu and things were not running like my heater.. :-o
correct. support would have to be added to the libraries. it should be added in the default status xml so the mode is always sent.

adding in the count down would be tricky to do because of how it works. doing that would require more thought and planning. I have an idea but it won't be exactly accurate.... it would just be close. it would also require adding in commands and support in the libraries.
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Android Reef Angel Status

Post by lnevo »

How about the countdown reported in the status. Only feed mode has a countdown.

<mode>X</mode>

0 = default
1-FeedTimer = Feed Mode
-1 = WC
-2 = Menu
Post Reply