I have documentation clarification question. In the System.updatePending() documentation, it says that System.updatesPending() is an Enterprise Feature, Since 1.2.0.
Does this include receiving the System event firmware_update_pending? The updatesPending() function uses this System event trigger, but can I still listen for the event without an Enterprise account?
@rickkas7 Would be the best person to ask, but what is the purpose of listening for pending updates?
A product would deploy new firmware as the device comes online.
If you are not an enterprise customer with intelligent OTA enabled:
Your device will never receive an firmware_update_pending event and System.updatePending() will never return true.
That’s because non-IOTA (intelligent OTA) devices only get updates when they handshake or resume session. For a Photon/P1, this will be whenever the device wakes from sleep or reconnects to the cloud. This could take up to 4 days.
If you have a non-IOTA product and want to get updates more rapidly, you could have the device manually disconnect from the cloud using Particle.disconnect() periodically, say once a day, if desired.
If you manually lock-and-flash a product device or flash a development device, the update will happen immediately, but the device still won’t get an updates pending.
@no1089, thanks foe your response! As far as I know and have experienced, non-enterprise accounts no longer deploy new firmware as a device comes online.
So this would be a flag to trigger a manual firmware update. Does that make sense?
That’s because non-IOTA (intelligent OTA) devices only get updates when they handshake or resume session. For a Photon/P1, this will be whenever the device wakes from sleep or reconnects to the cloud. This could take up to 4 days.
We no longer experience this. We only seem to be able update when we manually trigger an update. This holds true even if we EnableUpdates() and then trigger a disconnect() to force a handshake.
What do you think would cause this? What am I overlooking?