The server.expectonlineat had me very confused. The docs state: “Without this information, the server may end up assuming that the imp is offline, when in fact it is just asleep.”
Correct me if I’m wrong on these points:
*The server doesn’t inherently need to know when the device is asleep/awake. In other words, there’s nothing wrong per-se with the server not knowing if the device is asleep or disconnected. It’s only if the code you write needs to know, or if the person reading the logs needs to know.
*The only difference between explicit disconnect and expectonlineat is that expectonlineat send a log message to the server first telling the server when we might be back online, then disconnects.
*The IDE still displays the device as offline, and the logs still show the device disconnecting. The only nuance being the extra server log message.
I was very confused with the name of this method, and the docs didn’t help clarify all my doubts or assumptions. I had assumed expectonlineat might do something like bring back a connection after x seconds, or wake up the agent after x seconds (but agents don’t even sleep) or not show the “device disconnected” message in the server logs, or keep the device status as “online” in the ide. But it seems it’s only purpose is informational and it acts to inform someone looking at the logs when they might expect another message/reconnect from the device. But there is actually no built in logic attached to the time limits. If my understanding is now correct of these methods, can we clarify this in the docs?