iOS still not reliable

I’ve been using Raspberry Pis with Cayenne for years. The Pis are sensing temperature with DS18B20 and some have connected relays to turn on/off devices.

This seems to work well with a pc and web browser, but with and iPhone or iPad, the app usually does not work at all on the first launch. The screen will freeze sometimes and other times the data might be in error (like showing the temperature of the CPU as 0 degrees, or the DS18B20 will show the same temperature as the CPU when it should be 55 F. Output will also not function and there is a swirling icon after a button press. Usually the app will work on the second launch after I double click the home button and swipe to clear the app.

This got a little better with the app update several months ago but is still not like it used to be.

Also, scheduling does not seem to work any more, at least on Apple devices.

Are there plans to fix this? I miss the old app.

Thanks for your attention.

Hi @nfgy we have a couple fixed solved and a new update to be launched by next week.

can you be specific here on what are the issue you are facing on the current app version? it will help us to solve the issue.

Not sure what more to say except what is above. Do you need something further?

Scheduling is currently disabled, but hopefully the other issues will be resolved with the next update.

I,m having the same problem on my iPhone, channel 0 updates fine and channel 5 works but channels 7,8 ,9 just spin after pressing, the these were working before the last ios update, everything works fine on my PC.

//                      LoLin/Generic ESP8266-------- Garage Door & Light (Control & Status)
#define CAYENNE_PRINT Serial

#include <CayenneMQTTESP8266.h>

#define VIRTUAL_CHANNEL 5                 // Virtual Pin of garage door micro s/w
#define DIGITAL_PIN 16                            // Actuel pin of garage door micro s/w
#define VIRTUAL_CHANNELa 7              // Garage door Push button
#define ACTUATOR_PINa 4                      // Garage door Push button
#define VIRTUAL_CHANNELb 8             // Garage light SSR
#define ACTUATOR_PINb 12                   // Garage light SSR
#define VIRTUAL_CHANNELc 9             // Garage door LED indicator
#define ACTUATOR_PINc 15                   // Garage door LED indicator

char username[] = "xxx";
char password[] = "xxx";
char clientID[] = "xxx";     		   //LoLin
//char clientID[] = "xxx";     		   //  Generic ESP8266
int inPin = 16;                        		   // pushbutton connected to digital pin 5
int value = 0;                    		   // variable to store the read value
int val = 0;
unsigned long lastMillis = 0;

int channel();
void setup() {
  pinMode(4, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(15, OUTPUT);
  pinMode(16, INPUT_PULLDOWN_16);

  Cayenne.begin(username, password, clientID); //Cayenne.begin(token);
void loop()  {
  Cayenne.loop();                      	              //;

  if (millis() - lastMillis > 10000)  {         	  // Publish data every 1 seconds (1000 milliseconds). Change this value to publish at a different interval.
    lastMillis = millis();
    Cayenne.virtualWrite(0, lastMillis / 1000);      //  Write data to Cayenne here. This example just sends the current uptime in milliseconds.(1000=1 Second)

  int val = digitalRead(inPin);                      // read input pin 5
  Cayenne.virtualWrite(5, val, "digital_sensor" , "d");

CAYENNE_IN(VIRTUAL_CHANNELa)                        // Garage door
  int value = getValue.asInt();
  CAYENNE_LOG("Channel %d, pin %d, value %d", VIRTUAL_CHANNELa, ACTUATOR_PINa, value);
  digitalWrite(ACTUATOR_PINa, value);               // Write the value received to the digital pin.

CAYENNE_IN(VIRTUAL_CHANNELb)                        //Garage light
  int value = getValue.asInt();
  CAYENNE_LOG("Channel %d, pin %d, value %d", VIRTUAL_CHANNELb, ACTUATOR_PINb, value);
  digitalWrite(ACTUATOR_PINb, value);               // Write the value received to the digital pin.
CAYENNE_IN(VIRTUAL_CHANNELc)                        //Garage door open LED
  int value = getValue.asInt();
  CAYENNE_LOG("Channel %d, pin %d, value %d", VIRTUAL_CHANNELc, ACTUATOR_PINc, value);
  digitalWrite(ACTUATOR_PINc, value);              // Write the value received to the digital pin.

we are working on the fix for this bug.

@jrrsparky can you update to new app version and try using the actuator.