Page 12 of 33
Re: Android Reef Angel Status
Posted: Mon May 13, 2013 10:03 pm
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
Re: Android Reef Angel Status
Posted: Mon May 13, 2013 10:55 pm
by pandimus
Looks fabulous...
Android Reef Angel Status
Posted: Tue May 14, 2013 3:55 am
by binder
thanks. more improvements are on the way in the future.

Re: Android Reef Angel Status
Posted: Tue May 14, 2013 10:41 am
by phrusher
Great work! Really awesome update.
Re: Android Reef Angel Status
Posted: Wed May 15, 2013 7:58 am
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
Re: Android Reef Angel Status
Posted: Wed May 15, 2013 8:36 am
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
Re: Android Reef Angel Status
Posted: Wed May 15, 2013 11:02 am
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.

Re: Android Reef Angel Status
Posted: Sun May 19, 2013 12:30 pm
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?
Posted: Sun May 19, 2013 12:35 pm
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.
Android Reef Angel Status
Posted: Sun May 19, 2013 12:41 pm
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
Posted: Sun May 19, 2013 1:15 pm
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.

Android Reef Angel Status
Posted: Sun May 19, 2013 2:33 pm
by lnevo
Yeah thats why its going to be my new recommendation rather than using memory locations to trigger events.
Re: Android Reef Angel Status
Posted: Sun May 19, 2013 4:36 pm
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 (37.92 KiB) Viewed 10360 times
It's just an idea I'm toying with...nothing definite yet but could very easily be a solution.
Re: Android Reef Angel Status
Posted: Sun May 19, 2013 4:57 pm
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!
Re: Android Reef Angel Status
Posted: Sun May 19, 2013 5:28 pm
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...
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();
}
Re: Android Reef Angel Status
Posted: Sun May 19, 2013 5:30 pm
by Spotted
Yeah, that looks really sweet too BTW.
Re: Android Reef Angel Status
Posted: Sun May 19, 2013 5:31 pm
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
Re: Android Reef Angel Status
Posted: Sun May 19, 2013 6:12 pm
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
Posted: Sun May 19, 2013 6:16 pm
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?
Re: Android Reef Angel Status
Posted: Mon May 20, 2013 6:51 pm
by topjimmy
What about a way to change the mode of the jebo pumps?
Posted: Mon May 20, 2013 7:06 pm
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.
Android Reef Angel Status
Posted: Mon May 20, 2013 7:12 pm
by lnevo
We've been bridging off the vortech memory location. So if you have the rf mode control should take care of it.
Re: Android Reef Angel Status
Posted: Mon May 20, 2013 7:21 pm
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.
Re: Android Reef Angel Status
Posted: Mon May 20, 2013 8:21 pm
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
Re: Android Reef Angel Status
Posted: Tue May 21, 2013 6:06 pm
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.
Re: Android Reef Angel Status
Posted: Tue May 21, 2013 10:47 pm
by dapg8gt
Thank you

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..
Re: Android Reef Angel Status
Posted: Thu May 23, 2013 11:09 pm
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

Android Reef Angel Status
Posted: Fri May 24, 2013 1:13 am
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..

Posted: Fri May 24, 2013 3:59 am
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..

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.
Android Reef Angel Status
Posted: Fri May 24, 2013 4:48 am
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