@@ -1209,8 +1209,8 @@ void provisioningSetState(uint8_t newState)
1209
1209
}
1210
1210
}
1211
1211
1212
- unsigned long provisioningStartTime ;
1213
- const unsigned long provisioningTimeout = 120000 ;
1212
+ unsigned long provisioningStartTime_millis ;
1213
+ const unsigned long provisioningTimeout_ms = 120000 ;
1214
1214
1215
1215
void updateProvisioning ()
1216
1216
{
@@ -1228,12 +1228,14 @@ void updateProvisioning()
1228
1228
{
1229
1229
default :
1230
1230
case PROVISIONING_OFF: {
1231
- provisioningStartTime = millis (); // Record the start time so we can timeout
1231
+ provisioningStartTime_millis = millis (); // Record the start time so we can timeout
1232
1232
provisioningSetState (PROVISIONING_WAIT_RTC);
1233
1233
}
1234
1234
break ;
1235
1235
case PROVISIONING_WAIT_RTC: {
1236
- if ((online.rtc ) || (millis () > (provisioningStartTime + provisioningTimeout)) || (settings.requestKeyUpdate ))
1236
+ if ((online.rtc )
1237
+ // If RTC is not online after provisioningTimeout_ms, try to provision anyway
1238
+ || (millis () > (provisioningStartTime_millis + provisioningTimeout_ms)) || (settings.requestKeyUpdate ))
1237
1239
provisioningSetState (PROVISIONING_NOT_STARTED);
1238
1240
}
1239
1241
break ;
@@ -1269,17 +1271,17 @@ void updateProvisioning()
1269
1271
}
1270
1272
else
1271
1273
{
1272
- // Determine days until next key expires
1274
+ // RTC is online. Determine days until next key expires
1273
1275
int daysRemaining =
1274
1276
daysFromEpoch (settings.pointPerfectNextKeyStart + settings.pointPerfectNextKeyDuration + 1 );
1275
1277
1276
1278
if (settings.debugPpCertificate )
1277
1279
systemPrintf (" Days until keys expire: %d\r\n " , daysRemaining);
1278
1280
1279
1281
if (daysRemaining > 28 )
1280
- provisioningSetState (PROVISIONING_KEYS_REMAINING);
1282
+ provisioningSetState (PROVISIONING_KEYS_REMAINING); // Don't need new keys
1281
1283
else
1282
- provisioningSetState (PROVISIONING_CHECK_ATTEMPT);
1284
+ provisioningSetState (PROVISIONING_CHECK_ATTEMPT); // Do need new keys
1283
1285
}
1284
1286
}
1285
1287
break ;
@@ -1313,9 +1315,9 @@ void updateProvisioning()
1313
1315
}
1314
1316
break ;
1315
1317
case PROVISIONING_STARTING: {
1316
- ztpResponse = ZTP_NOT_STARTED; // HTTP_Client will update this
1317
- httpClientModeNeeded = true ; // This will start the HTTP_Client
1318
- provisioningStartTime = millis (); // Record the start time so we can timeout
1318
+ ztpResponse = ZTP_NOT_STARTED; // HTTP_Client will update this
1319
+ httpClientModeNeeded = true ; // This will start the HTTP_Client
1320
+ provisioningStartTime_millis = millis (); // Record the start time so we can timeout
1319
1321
paintGettingKeys ();
1320
1322
provisioningSetState (PROVISIONING_STARTED);
1321
1323
}
@@ -1329,8 +1331,8 @@ void updateProvisioning()
1329
1331
}
1330
1332
else if (ztpResponse == ZTP_SUCCESS)
1331
1333
{
1332
- httpClientModeNeeded = false ; // Tell HTTP_Client to give up. (But it probably already has...)
1333
- recordSystemSettings ();
1334
+ httpClientModeNeeded = false ; // Tell HTTP_Client to give up
1335
+ recordSystemSettings (); // Make sure the new cert and keys are recorded
1334
1336
provisioningSetState (PROVISIONING_KEYS_REMAINING);
1335
1337
}
1336
1338
else if (ztpResponse == ZTP_DEACTIVATED)
@@ -1354,7 +1356,7 @@ void updateProvisioning()
1354
1356
" subscription. Please reference device ID: %s\r\n " ,
1355
1357
landingPageUrl, hardwareID);
1356
1358
1357
- httpClientModeNeeded = false ; // Tell HTTP_Client to give up. (But it probably already has...)
1359
+ httpClientModeNeeded = false ; // Tell HTTP_Client to give up.
1358
1360
displayAccountExpired (5000 );
1359
1361
1360
1362
provisioningSetState (PROVISIONING_KEYS_REMAINING);
@@ -1380,7 +1382,7 @@ void updateProvisioning()
1380
1382
" activated. Please reference device ID: %s\r\n " ,
1381
1383
landingPageUrl, hardwareID);
1382
1384
1383
- httpClientModeNeeded = false ; // Tell HTTP_Client to give up. (But it probably already has...)
1385
+ httpClientModeNeeded = false ; // Tell HTTP_Client to give up.
1384
1386
displayNotListed (5000 );
1385
1387
1386
1388
provisioningSetState (PROVISIONING_KEYS_REMAINING);
@@ -1396,7 +1398,7 @@ void updateProvisioning()
1396
1398
" [email protected] for more assistance. Please reference device ID: %s\r\n " ,
1397
1399
hardwareID);
1398
1400
1399
- httpClientModeNeeded = false ; // Tell HTTP_Client to give up. (But it probably already has...)
1401
+ httpClientModeNeeded = false ; // Tell HTTP_Client to give up.
1400
1402
displayAlreadyRegistered (5000 );
1401
1403
1402
1404
provisioningSetState (PROVISIONING_KEYS_REMAINING);
@@ -1405,7 +1407,7 @@ void updateProvisioning()
1405
1407
{
1406
1408
systemPrintln (" updateProvisioning: ZTP_UNKNOWN_ERROR" );
1407
1409
1408
- httpClientModeNeeded = false ; // Tell HTTP_Client to give up. (But it probably already has...)
1410
+ httpClientModeNeeded = false ; // Tell HTTP_Client to give up.
1409
1411
1410
1412
provisioningSetState (PROVISIONING_KEYS_REMAINING);
1411
1413
}
@@ -1449,15 +1451,12 @@ void updateProvisioning()
1449
1451
else if (!settings.enablePointPerfectCorrections || !settings.autoKeyRenewal )
1450
1452
provisioningSetState (PROVISIONING_OFF);
1451
1453
// When did we last try to get keys? Attempt every 24 hours - or every 15 mins for DEVELOPER
1452
- // else if (online.rtc && (rtc.getEpoch() - settings.lastKeyAttempt > ( ENABLE_DEVELOPER ? (15 * 60) : (60 * 60
1453
- // * 24))))
1454
+ // else if (millis() > (provisioningStartTime_millis + ( ENABLE_DEVELOPER ? (1000 * 60 * 15 ) : (1000 * 60 * 60 *
1455
+ // 24))))
1454
1456
// When did we last try to get keys? Attempt every 24 hours
1455
- else if (online.rtc && (rtc.getEpoch () - settings.lastKeyAttempt > (60 * 60 * 24 )))
1456
- {
1457
- settings.lastKeyAttempt = rtc.getEpoch (); // Mark it
1458
- recordSystemSettings (); // Record these settings to unit
1459
- provisioningSetState (PROVISIONING_STARTING);
1460
- }
1457
+ else if (millis () >
1458
+ (provisioningStartTime_millis + (1000 * 60 * 60 * 24 ))) // Don't use settings.lastKeyAttempt (#419)
1459
+ provisioningSetState (PROVISIONING_CHECK_REMAINING);
1461
1460
}
1462
1461
break ;
1463
1462
}
0 commit comments