Electron Sleep Modes for Minimizing Data

I know this is regularly asked (and answered) but there are consistently firmware version changes. Can I please get an authoritative answer with the latest (0.6.4) firmware?

My application publishes data every 20 minutes, since my understanding is that minimizes data usage. I’d also like to minimize power (of course) so…

  1. Is the least-data sleep now System.sleep(SLEEP_MODE_SOFTPOWEROFF, time) such that I don’t need to specify SLEEP_NETWORK_STANDBY ? Or, should I be using sleep(Pin, type, SLEEP_NETWORK_STANDBY, time)?

  2. What’s the power difference between SLEEP_MODE_DEEP and SLEEP_MODE_SOFTPOWEROFF?

  3. Why would you ever use DEEP if SOFTPOWEROFF uses less power?

  4. Do I have to initialize differently if I use SLEEP_MODE_SOFTPOWEROFF?

  5. Is there such a thing as System.sleep(SLEEP_MODE_DEEP, timeout, SLEEP_NETWORK_STANDBY) ?

  6. Do I have to first manually turn off the cell service if using SLEEP_MODE_DEEP or SOFTPOWEROFF?

  7. I’m also subscribing to an event. How long should I stay awake to ensure I receive it, assuming it’s responded (such as via a webhook)?


One other comment. In my testing (which could be wrong) it seems that System.sleep(SLEEP_MODE_SOFTPOWEROFF, 0) sleeps for 0 seconds whereas I thought it was infinite. Zero doesn’t seem like something you’d want to sleep for.