iOS app broken?

Thank you for taking the time to submit your bug/issue! Please use the points below as a guide when submitting.

  • Device & model you are using (Ex: Pi 2 Model B or Arduino Uno with W5100 ethernet shield)

NodeMCUv3 (ESP8266)

  • What dashboard are you using? (Web, iOS, Android)

Web and iOS

  • Please describe the bug / issue as detailed as possible. Attaching the code and any relevant screenshots would be very helpful!

My meteo station looks fine on web dashboard (screenshot below) but is pretty broken on iOS.
This is the web dashboard in Opera.

This is the dashboard in iOS. True, its not the project window but the device one, but they are pretty much identical anyway and both suffer same issues.

There are several things wrong with it:

  • The worst thing is that the temperature value gadget doesn’t work and shows only 0, while on web it does work correctly and refreshes every second or so without issues.
  • Then you have the line graphs: two of them don’t even make a line and just show a single point of data, as you can see in the screenshot above.
  • Then you have the inability to permanently change the time scale of the chart - if I tap on it I can set it to hours instead of whatever the weird unit that is smaller than minutes is (I think the time scale setting is broken too, just look at it), but when I go back it resets back to the default shortest timescale again.
  • Whats also weird is that I can zoom in the charts, but I can’t zoom OUT.
  • And finally you have the really weird placement of the gadgets - I can fix it, sure, but then it breaks the Web dashboard.

To my mind it seems like its completely broken, but I tried reinstalling it and it didn’t help at all. What gives?

Also a side question: how long is the data stored for? Can I look at the temperature graph in 5 years and look at 5 year long line chart?

EDIT: Also the web dashboard constantly says my device is Offline even though it updates data no problem and the device is connected. No idea whats happening there either.

Thanks!

Code is below. As you can see I tried to use SimpleTimer library but it ended up not working so I run it without it.

#include <CayenneMQTTESP8266.h>
#include <Wire.h>                   // nutné pro I2C komunikaci s meteo senzorem
#include <BME280_t.h>               // nutné pro samotný meteo senzor
#include <SimpleTimer.h>

#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial

#define ASCII_ESC 27
#define MYALTITUDE  300   // nadmořská výška definována jelikož s ní pracuje výpočet tlaku vzduchu
char bufout[10];
BME280<> BMESensor;

SimpleTimer timer;

float temp,hum,pressure;

char ssid[] = "";
char password[] = "";

char username[] = "";
char mqtt_password[] = "";
char client_id[] = "";

void setup() {
    //timer.setInterval(5000L, senzor);
    Cayenne.begin(username, mqtt_password, client_id, ssid, password);
    pinMode(16, OUTPUT);
    digitalWrite(16, LOW);
    Wire.begin(0,2);            // inicializace I2C komunikace se senzorem
    BMESensor.begin();
}

void loop() {
    Cayenne.loop();
    senzor();
}

CAYENNE_IN(0)
{
    digitalWrite(16,!getValue.asInt());
}

void senzor()
{
    BMESensor.refresh();    // provést odečet hodnot ze senzoru
    temp = BMESensor.temperature;
    hum = BMESensor.humidity;
    pressure = BMESensor.seaLevelForAltitude(MYALTITUDE)/100.0F;
    Cayenne.virtualWrite(1,temp,"temp","c");
    Cayenne.virtualWrite(2,hum,"rel_hum","p");
    Cayenne.virtualWrite(3,pressure,"bp","pa");
}

Unfortunately I don’t have any iOS devices to test with. @rsiegel are there any known bugs here?

This is a strange one. Yeah, Rob is most familiar with our mobile apps :slight_smile:

There is a lot to unpack here, so let me respond in several posts. I’ll start with what I know:

  • The issue with your device showing ‘offline’ but updating data regardless appears to be a server side problem on our end that we’re investigating a fix for.

  • The missing button to the left of the minute view in your temperature detail should say “Live” and be a live data graph. For this reason, I think the single data point might not be an issue – I see 29.570 and 29.580 – this is just a few seconds of live data and thus should be very close to the same? I’m not sure why the text is missing from the button on your end though. What iPhone model is this, and what OS/Cayenne version do you have? Our suspicion is that this is a screen size issue that we overlooked.

  • There is no limit to data retention at this time, and if we choose to implement that in the future there will be a warning that it is coming.

This is a limitation of the current design of the iOS app. The actual widget displayed on the dashboard always shows the ‘Live’ view, and you have to tap on the title bar of the widget to get the minute/hour/day/etc views. They aren’t so much as settings as they are tabs on the detail view of the widget.

Revisiting this one since I realize you were talking about the left screenshot :slight_smile:
I think the issue is that since these are live views, you only have one data point since you opened the iOS dashboard? Does it update into a line graph as more values are published while it is open?

The zooming on these iOS chart widgets is a 2-finger pinching motion. You should be able to go in both directions, but as above, since these are a Live view, the farthest zoom ‘out’ point is the moment that you last opened the iOS dashboard. Try leaving it open for 5 minutes and seeing if you can zoom in and out once some data has accumulated.

The widget placement on iOS vs web should be completely independent, since we decided there was no practical way to accommodate the same placement on both screen formats. If you’re moving a widget on iOS and seeing a change on web, this would be a bug on our end. If you’re seeing this, a quick example would help a lot towards seeing what happened and fixing it.

Saving the worst for last:

Can I ask if your web dashboard is actually keeping the value through a quick browser refresh? I know there have been some issues where published values are displayed more quickly than they are logged to our DB, and this sounds like it could be that (the iOS app is pulling from the DB, so doesn’t see anything, and on a browser refresh neither will the web dashboard). I’d be curious if you see this behavior if you publish a value, wait one minute, then refresh both the web and iOS dashboards.