Boron not logging offline event


#1

I am trying to detect when my Boron goes offline due to loss of power. I have set up symmetric IFTTT status monitor applets to send a gmail when triggered. When I plug in the unit, I get an gmail. and an online event is listed in the event logs. When I disconnect the power, nothing happens. No email and nothing in the event logs. However, when I then reconnect, I get a new ‘online’ event PLUS an err - 21 event.

Particle%20logs

Here is the raw detail on the error:

raw%20detail

My guess is that this err in the log represents the device going offline. My tentative theory is that the data shown in the event log is what Particle sends to IFTTT. When it sends a clean ‘online’ to IFTTT. the email triggers. But when it sends the raw device error data and not a clean ‘offline’, IFTTT does not trigger the email. I get the exact same event log pattern when I cycle the power on and off to my Argon board.

Searching the forums shows this is not unique to my situation but most of the messages are from 3-4 years ago. Was the problem fixed and has now reappeared? If it has never worked, should Particle remove the offline status trigger? Anyone have a work around?


#2

It has always been this way with cellular devices, they show online when they are not.

Somebody else will have to chime in as to exactly why it’s that way.


#3

The reason is that an offline device can’t tell the world it’s gone offline after the fact and it usually doesn’t know to inform the world it’ll go offline before either.

Then one might say: “Yea, but the cloud should know if the device is connected with it”, and there comes in the difference between WiFi and cellular devices. While WiFi devices use connection-bound TCP cellular devices use connection-less UDP to save data, so if there is no connection by default you can’t take the lack of such as indicator for being unavailable (aka offline).
And regularly pinging the device to have it report back its online status would counteract the intent to save data.

But that would be your possible workaround. If you don’t care about permanent data consumption you can setup a regular ping logic and use that instead of the “ignorant guess” the Particle cloud makes.

BTW, yes it would be better if the Particle cloud just admit "connected": "unknown"