Hardware.wakereason() == WAKEREASON_POWER_RESTORED

Hi gang, long time no forum.

I have a USB powered C3V0 (imp002) running as a power and internet monitor. It is reporting wake reasons in the device and MessageManager timeouts from the agent. It’s backed by an old, spare UPS and is monitoring the mains power using a 3V3 power adapter connected to pin1.

It’s doing a pretty good job of letting me know when the internet has disconnected but is doing really badly at telling me why.

  1. Most times it reboots with wakereason WAKEREASON_POWER_RESTORED (11). What does this code mean?
  2. Why is it rebooting at all when my initialisation sequence is:
cm <- ConnectionManager({ "blinkupBehavior": CM_BLINK_ON_DISCONNECT, "startBehaviour": CM_START_CONNECTED, "stayConnected": true, "errorPolicy": RETURN_ON_ERROR_NO_DISCONNECT });
mm <- MessageManager({ "retryInterval": 10, "messageTimeout": 5, "autoRetry": true, "maxAutoRetries": 0, "connectionManager": cm });

Any thoughts would be appreciated.