OTA flashing - what am I missing?

I have a product set up with a firmware release assigned to it and set to “Lock and Flash Now”. It says it flashed the firmware (“Device firmware flashed successfully”), but my electron isn’t updated.

Also, the Console says the last connection was hours ago even though it’s connecting every 10 minutes and sending data to Thingspeak. The electron code reads and sends the data every 15 minutes, with a:

System.sleep(WKP, RISING, 900, SLEEP_NETWORK_STANDBY);

command in between. That part works fine.

In the docs it says that loop() will alternate with Particle.process() in AUTOMATIC MODE (which I’ve left it in), so shouldn’t it be talking to the cloud more frequently, and/or downloading new firmware?

Is there some other system command I need to be calling (like Particle.connect() or something else?)

How is that Thingspeak data sent, webhook or http?

I’m using a ThingSpeak library. It looks like it just does a straight http connection and POSTs the data.

You’re never using Particles cloud for anything so it doesn’t really have any need to connect, and depending on how quickly you put it to sleep may not have time to do so anyway. Look at putting an explicit process() command in your program somewhere periodically. Also be aware that libraries to talk to third party services like Thingspeak are not encrypted as they use HTTP directly. It’s more secure to use a Webhook as the link to Particles cloud is encrypted