Universal App

Community contributed apps
User avatar
brennyn21
Posts: 110
Joined: Mon Nov 23, 2020 5:40 pm

Re: Universal App

Post by brennyn21 »

Can you post a screenshot of the error?

Are you using Curts Binders tool to generate the features file and Labels on the Arduino application?

Your controller is not sending data to the server most likely because you aren't using the newest libraries.
The server hasn't seen any data from your controller since, June 24 so it seems to be whatever changed around that time.

The Username and Password are both case sensitive so make sure they match the forum.

In your code make sure this line has a capital A and not lowercase.

ReefAngel.Portal( "Appleseed" );
Sincerely, Brennyn
Appleseed
Posts: 93
Joined: Sat Jun 30, 2012 9:21 am

Re: Universal App

Post by Appleseed »

Hi,

I thought i would try again so I tried following Curts guide (viewtopic.php?f=8&t=6978) but also added the new version of the libriaries. My app version is 1.8.19, i think i tried version 2 before but had other issues.

Now when i try complie it ig get a bunch of errors. The same code does compile in the Web Wizard, but when i tried uploading it using the usb/uart cable but i get an error uploading: 400, Error 404 404 page note found.

The some of the errors i get in the IDE are as follows;

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:194: error: 'JSON_CEXP0' was not declared in this scope

Code: Select all

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:194: error: 'JSON_CEXP0' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                  ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:206: error: 'JSON_CEXP1' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                              ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:218: error: 'JSON_CEXP2' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                                          ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:230: error: 'JSON_CEXP3' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                                                      ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:242: error: 'JSON_CEXP4' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                                                                  ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:254: error: 'JSON_CEXP5' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                                                                              ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:266: error: 'JSON_CEXP6' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                                                                                          ^~~~~~~~~~

C:\Users\andyl\Documents\Arduino\libraries\ReefAngel/RA_Wifi.h:512:278: error: 'JSON_CEXP7' was not declared in this scope

 static PROGMEM const char * const param_items_int[] = {JSON_T1, JSON_T2, JSON_T3, JSON_PH, JSON_T4, JSON_T5, JSON_T6, JSON_ORP, JSON_SAL, JSON_PHEXP, JSON_PAR, JSON_OZO, JSON_CO2, JSON_CO2HUM, JSON_CEXP0, JSON_CEXP1, JSON_CEXP2, JSON_CEXP3, JSON_CEXP4, JSON_CEXP5, JSON_CEXP6, JSON_CEXP7};

                                                                                                                                                                                                                                                                                      ^~~~~~~~~~
Image
User avatar
brennyn21
Posts: 110
Joined: Mon Nov 23, 2020 5:40 pm

Re: Universal App

Post by brennyn21 »

Did you run CB Reef Angel Process Sketch under the tools menu before you compiled your code?
Sincerely, Brennyn
Appleseed
Posts: 93
Joined: Sat Jun 30, 2012 9:21 am

Re: Universal App

Post by Appleseed »

I did.
Image
User avatar
brennyn21
Posts: 110
Joined: Mon Nov 23, 2020 5:40 pm

Re: Universal App

Post by brennyn21 »

It sounds like the cb process sketch did not work, can you please open up your Reef Angel Features Files found in the libraries and post the code found in the ReefAngel_Features.h
Sincerely, Brennyn
Appleseed
Posts: 93
Joined: Sat Jun 30, 2012 9:21 am

Re: Universal App

Post by Appleseed »

Yesterday I spent time reconfiguring my web module using the terma term script and instructions in the migrationinstructions.pdf, I did check the ini meantioned and the only differance between the pdf and the ini on my pc was the "origins = " parameter but i tried but versions of the option and the result was the same.

I then dug out my uart cable and reprogramed the controller using the web wizard and the code below, the controller seems to be working correctly but uapp doesnt show any data. I did also try reinstalling the Aurdino app (version 1.8.15) following Curts instructions (using the dev libs off githib) but that didnt work at all.

The android app works so i presume the controller is accessable.

Code: Select all

#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.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 <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <RF.h>
#include <ReefAngel.h>


//#include <RA_ATO.h>
//#include <Wire.h>
//#include <OneWire.h>
//#include <RA_PWM.h>
//#include <Salinity.h>
//#include <IO.h>
//#include <ORP.h>
//#include <AI.h>
//#include <DCPump.h>


////// Place global variable code below here
// Globals Needed for RF Mode on Custom Main
//byte vtechmode;
//byte vtechspeed;
//byte vtechpercent;
//boolean bFeeding = false;

byte x = 6;
byte y = 2;
byte t;
char text[7];

//Custom Main, Graph & Menu

void DrawCustomMain()
{
  //      ReefAngel.LCD.DrawDate(6, 2);
  ReefAngel.LCD.DrawText(3, 255, 6, 2, " Reef of Low");

  ReefAngel.LCD.DrawDate(7, 120);
  ReefAngel.LCD.Clear(COLOR_BLACK, 1, 11, 132, 11);
  pingSerial();

//  vtechmode = ReefAngel.RF.Mode;
//  vtechspeed = ReefAngel.RF.Speed;
//  vtechpercent = ReefAngel.RF.Duration;

  ReefAngel.LCD.Clear(255, 35, 20, 20, 85);

 // ReefAngel.LCD.DrawText(0, 255, 18, 21, "EcoSmart Mode");
 // if (vtechmode == 0) ReefAngel.LCD.DrawLargeText(COLOR_LIMEGREEN, 255, 25, 31, "Constant");
 // else if (vtechmode == 1) ReefAngel.LCD.DrawLargeText(COLOR_GOLD, 255, 25, 31, "Lagoonal");
 // else if (vtechmode == 2) ReefAngel.LCD.DrawLargeText(COLOR_GOLD, 255, 25, 31, "Reef Crest");
 // else if (vtechmode == 3) ReefAngel.LCD.DrawLargeText(COLOR_CORNFLOWERBLUE, 255, 25, 31, "Short Pulse");
 // else if (vtechmode == 4) ReefAngel.LCD.DrawLargeText(COLOR_PINK, 255, 25, 31, "Long Pulse");
 // else if (vtechmode == 5) ReefAngel.LCD.DrawLargeText(COLOR_MAGENTA, 255, 25, 31, "STM_NTM.");
 // else if (vtechmode == 6) ReefAngel.LCD.DrawLargeText(COLOR_MAGENTA, 255, 25, 31, "Tidal Swell");
 // else if (vtechmode == 9) ReefAngel.LCD.DrawLargeText(COLOR_WHITE, 0, 45, 31, "Night");
  //
  char text[10];

//  ReefAngel.LCD.DrawText(2, 255, 32, 42, "Speed");
//  ConvertNumToString(text, vtechspeed, 1);
//  if (vtechspeed )ReefAngel.LCD.DrawLargeText(0, 255, 35, 51, text);

//  ReefAngel.LCD.DrawText(23, 255, 32, 62, "Duration");
//  ConvertNumToString(text, vtechpercent, 1);
//  if (vtechpercent) ReefAngel.LCD.DrawLargeText(0, 255, 35, 70, text);
  //
  ReefAngel.LCD.DrawText(0, 255, 10, 80, "T1");
  ConvertNumToString(text, ReefAngel.Params.Temp[T1_PROBE], 10);
  ReefAngel.LCD.DrawLargeText(COLOR_BLACK, 255, 10, 88, text, Num8x8);
  pingSerial();

  ReefAngel.LCD.DrawText(0, 255, 50, 80, "T2");
  ConvertNumToString(text, ReefAngel.Params.Temp[T2_PROBE], 10);
  ReefAngel.LCD.DrawLargeText(COLOR_BLACK, 255, 50, 88, text, Num8x8);
  pingSerial();

  ReefAngel.LCD.DrawText(0, 255, 100, 80, "pH");
  ConvertNumToString(text, ReefAngel.Params.PH, 100);
  ReefAngel.LCD.DrawLargeText(COLOR_INDIGO, 255, 85, 88, text, Num8x8);
  pingSerial();
  //
  pingSerial();
  byte TempRelay = ReefAngel.Relay.RelayData;
  TempRelay &= ReefAngel.Relay.RelayMaskOff;
  TempRelay |= ReefAngel.Relay.RelayMaskOn;
  ReefAngel.LCD.DrawOutletBox(12, 100, TempRelay);
  //
}
void DrawCustomGraph()
{
}


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


void setup()
{
  // This must be the first line
  ReefAngel.Init();  //Initialize controller
  ReefAngel.SetTemperatureUnit( Celsius );  // set to Celsius Temperature

  // Ports toggled in Feeding Mode
  ReefAngel.FeedingModePorts = Port4Bit; //| Port6Bit | Port7Bit;
  
  // Ports toggled in Water Change Mode
  // ReefAngel.WaterChangePorts = Port4Bit | Port7Bit;
  // Ports toggled when Lights On / Off menu entry selected
  ReefAngel.LightsOnPorts = 0;
  // Ports turned off when Overheat temperature exceeded
  ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit;
  // Use T1 probe as temperature and overheat functions
  ReefAngel.TempProbe = T1_PROBE;
  ReefAngel.OverheatProbe = T1_PROBE;
  // Set the Overheat temperature setting
  InternalMemory.OverheatTemp_write( 280 );


  // Ports that are always on
  ReefAngel.Relay.On( Port4 );
 // ReefAngel.Relay.DelayedOn( Port4 );
  ReefAngel.Relay.On( Port5 ); //MP40
  ReefAngel.Relay.On( Port6 ); //MP40
  ReefAngel.Relay.On( Port7 ); //Return
 // ReefAngel.Relay.DelayedOn( Port8 ); // Used By Cooling Fan

  //  ReefAngel.DCPump.FeedingSpeed=100;

  //  ReefAngel.Timer[FEEDING_TIMER].SetInterval(2100);
  ReefAngel.Timer[FEEDING_TIMER].SetInterval(4000);

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

void loop()
{
  ReefAngel.StandardHeater( Port1, 250, 255 );
  ReefAngel.StandardHeater( Port2, 250, 255 );
  ReefAngel.StandardFan( Port8, 256, 260 );

  ////
  ReefAngel.RF.UseMemory = false;
  ///////
// Define Relay Ports by Name
        #define Heater             1
        #define Heater             2
        #define Swabbie           3
        #define Skimmer          4
        #define MP40          5
        #define MP40           6
        #define Return         7
        #define Fan            8

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

  // This should always be the last line
  ReefAngel.Portal( "Appleseed" );
  ReefAngel.ShowInterface();
}
Attachments
Error1.png
Error1.png (18.03 KiB) Viewed 1983 times
Image
User avatar
brennyn21
Posts: 110
Joined: Mon Nov 23, 2020 5:40 pm

Re: Universal App

Post by brennyn21 »

Do you have port 2000 forwarded in your router? You can check if it's working using the link below. Make sure you use your Public IP address and port 2000.

https://portchecker.co/
Sincerely, Brennyn
Appleseed
Posts: 93
Joined: Sat Jun 30, 2012 9:21 am

Re: Universal App

Post by Appleseed »

Port forwarding was part of the issue, port forwarding is on but for some reason i was only allowing the traffic from 104.36.18.155 but the traffic is currently sourced from 191.101.233.157. I added the address to the allowed list and now the uapp is mostly working.

How long does it normally take for the graphs to start updating?

It might also be worth noting the port checker site was saying the port was closed, even when I allowed all traffic trying to access tcp 2000.

Thanks
Image
User avatar
brennyn21
Posts: 110
Joined: Mon Nov 23, 2020 5:40 pm

Re: Universal App

Post by brennyn21 »

Your controller hasn't sent data to the server since June 24th so what has changed since then? If you used the webwizard to upload your code then it is most likely an issue with the wifi attachment. Did you use the firmware below to update the wifi attachment?

forum.reefangel.com/firmware/updatewifi.zip
Sincerely, Brennyn
Appleseed
Posts: 93
Joined: Sat Jun 30, 2012 9:21 am

Re: Universal App

Post by Appleseed »

Yes I did run the tera term ttl script and have run it again this morning.

I think my firewall at home had an issue on the 24th and rebooted and loaded an older version of its config, which i think was missing the RA Portals IP address (191.101.233.157) in the port forwarding rule and some other rules relating to bound bound traffic.

I thought the controller only used tcp port 2000 but it also sends data on tcp 3000. The graphs look like they staterd working after adding tcp 3000 to the allowed bound traffic.

Thanks for all you help and Ill try not break it again, well not untill i try make the Arduino IDE app thing work again :)
Image
User avatar
brennyn21
Posts: 110
Joined: Mon Nov 23, 2020 5:40 pm

Re: Universal App

Post by brennyn21 »

Glad it's working!

The server listens on port 3000 for data sent from the Reef Angel Controller for the graphs, and email alerts. The web server running on the Reef Angel listens to requests on port 2000.

The RA Star and Cloud WIFI Module uses MQTT and the server captures the MQTT messages for the graphing and email alerts so that is why port forwarding or additional firewall rules is not needed.
Sincerely, Brennyn
Post Reply