Time.now() not working

Particle.connected() is a class function/method not a class field.
Hence you are missing the parenthesis in if (Particle.connected). This way you just “check” whether the function exists, but don’t acutally call it.
You need to write it as if (Particle.connected())

But I’d rather go with this

  Particle.connect();

  if (waitFor(Particle.connected, 60000)) {
    digitalWrite(D7, HIGH);
    delay(2000);
    Serial.printlnf("Connected to Particle Cloud.");
    Serial.printlnf("Start synchronization.");

    Particle.syncTime();
    waitUntil(Particle.syncTimeDone);

    if (Time.isValid()) {
        Serial.printlnf("Time is valid.");
    }
    else {
        Serial.printlnf("Time is still invalid.");
    }

    // Print current time
    Serial.println(Time.timeStr());
  }
  else {
    Serial.println("Not yet connected");
    delay(1000);
  }

We can’t see the context of your code snippet, but if you’d call Paticle.connect() over and over while a connection attempt is still ongoing, you may be interfering with the actual connecting.

4 Likes