Skip to content

[Request] Battery Saver Mode - Watchface API to disable watchface animations on a schedule (when asleep), automatically (low battery), or manually (menu/quicklaunch toggle) #663

@saltedlolly

Description

@saltedlolly

Is there an existing issue for this?

  • I have searched the existing issues

Proposed feature request

I would like to propose the creation of a "Battery Saver" mode for watchfaces. This would consist of two components:

  1. A "Battery Saver" menu on the Pebble Watch
  2. An API that watchface developers can use to query the current Battery Saver state.

What is Battery Saver mode?

Watchfaces that include animations should be encouraged to also include a "Battery Saver" mode, where all animations are disabled, and the display updates at most once per minute, helping to save battery, when needed.

Battery Saver Menu

In the main menu on the watch, there could be a "Battery Saver" menu. This menu would include:

  • Sleep Scheduler - A schedule picker that lets the user set the times of day when they are typically asleep (e.g. 11pm - 7am). Battery Saver mode will be enabled during this time.
  • Enable/Disable Toggle - A master switch that will enable or disable 'Battery Saver' mode instantly, temporarily overriding the sleep scheduler (if enabled). This toggle switch could also be accessible via a quicklaunch button. If the scheduler is enabled it will revert to the scheduled state when the scheduler next starts/ends.
  • "Enable on Low Battery" setting - If the user enables this, the watch will automatically enter "Battery Saver" mode when the battery gets low (e.g. <10%). Ideally, this should activate automatically when there is less than a day remaining so the precise percentage might need to vary depending on the watch model. This would also take precedence over the scheduler. This should help prolong battery life before the user can charge their watch.
  • "Disable Motion-Controlled Backlight" Setting - Optionally, turn off the motion-controlled backlight when the battery saver is enabled.

Note: These settings could alternatively configured via the the Pebble mobile app, to avoid bloating the watch firmware.

Battery Saver API

By using the battery saver API, watchface developers can enable/disable animations on their watchfaces based on whether the 'Battery Saver' is currently enabled. Watchfaces would presumably only need to query the battery saver api once per minute and enable or disable animations depending on whether the battery saver is currently available. If the menu or quicklaunch toggles are used, the watchface updates instantly to reflect the current Battery Saver state.

Why add this?

Currently, some developers have implemented their own take on this feature, but it would be much better if this was a system-wide setting, that the user sets once, and that developers can then access via the SDK.

For users, this offers set-it-and-forget-it simplicity. They get a better experience since they no longer need to activate this feature for each watchface separately. They set up the scheduler once via the watch menu, and it will then ensure that when they are asleep animations are always disabled, regardless of which watchface they are currently using.

For developers, it saves them from needing to create the scheduling capability themselves. They just have their watchface query the 'battery saver' API to to get the current state at startup, and then again once per minute from then on, updating what version of their watchface is displayed when needed.

Battery Saver mode would result in Pebble watches having even more impressive battery life than they already do, particularly for users who enjoy animated watchfaces.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions