The Particle Device Console shows the last time each of my Electrons performs a successful handshake with the Particle Cloud servers. That’s nice to know, but it provides incomplete insight into what’s going on. If an Electron which has never been turned off shows an almost daily handshake, the implication is that at some point in between it lost connectivity. It would thus be very useful to know exactly when such a disconnect occurs and for that information to be retained in some kind of log. That information, in turn, would allow me to decide if I’ve got a network problem and, if so, how long it might typically take an Electron to recover from it.
Is there any way to generate and collect more detailed data about connectivity issues?
Due to the connectionless nature of the UDP transport used on Electrons, there is no way for the cloud to know when a disconnect happens.
If you really need to know the current connection state you’d need to add a regular active ping from your device and check for it coming in regularly - but that will permanently use data, that’s the reason why Particle opted of UDP in the first place.
You may also want to check out this github repo by @rickkas7: https://github.com/rickkas7/electronsample/blob/master/README.md. It should have some examples for debugging connection issues on electrons.
one thing i learned from using 2 electrons for a while is that carriers have not fully adapted to IoT connections yet in that i think their current systems might boot connections that over a period of time seem to be inactive to their systems. i tend to understand why because they don’t want several million connections doing nothing for extended periods. so, if your electrons connects but does nothing as far as using the connection some carriers might disconnect. another thing i came to accept was there is really no need for extended connections absent some continuous activity unless actively waiting for incoming and then doing occasional outgoing.
Very helpful explanation ScruffR. I do know the difference between UDP and TCP. Many thanks!