Difference between revisions of "Infinitime-Weather"

From PINE64
Jump to navigation Jump to search
(Add explanation on how to enable weather widget on PTS watch face.)
 
(One intermediate revision by one other user not shown)
Line 3: Line 3:
== Sending weather data to the watch ==
== Sending weather data to the watch ==


Weather data must be sent to the watch via a companion app, currently Gadgetbridge and ITD have this functionality implemented.  
Weather data must be sent to the watch via a companion app. Currently, [https://gitea.elara.ws/Elara6331/itd ITD] and [https://www.gadgetbridge.org Gadgetbridgehave this functionality implemented.  
ITD is the easiest option as the feature simply needs enabling in the config file with a location specified. It uses MET.no data and provides one hour of data at a time.
 
Gadgetbridge is slightly more difficult to set up as it requires a separate app to fetch the weather data. Details are available on the [https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Weather Gadgetbridge wiki]. There is currently (May 2023) a bug in the Pinetime implementation within Gadgetbridge which sets the expiry time to 5 minutes instead of the desired 6 hours, it should be resolved in the next available Gadgetbridge release.
=== ITD ===
ITD is the easiest option as the feature simply needs enabling in the config file with a location specified. It uses data from MET.no and provides one hour of data at a time.
 
=== Gadgetbridge ===
Gadgetbridge is slightly more difficult to set up as it requires a separate app to fetch the weather data. Details are available on the [https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Weather Gadgetbridge wiki].


== Displaying weather data ==
== Displaying weather data ==


Currently there are 2 ways to display weather data on the watch, a debug app  which is disabled by default, and the PineTimeStyle watchface.
Currently there are 2 ways to display weather data on the watch, a debug app  which is disabled by default, and the PineTimeStyle watchface. To enable it, press and hold on the watch face, tap the settings icon and enable weather.


The easiest way to enable the debug app is to change the entry for the navigation app in DisplayApp.cpp to load the weather debug app instead:
The easiest way to enable the debug app is to change the entry for the navigation app in DisplayApp.cpp to load the weather debug app instead:
Line 18: Line 22:
       currentScreen = std::make_unique<Screens::Weather>(this, systemTask->nimble().weather());
       currentScreen = std::make_unique<Screens::Weather>(this, systemTask->nimble().weather());
       break;</pre>
       break;</pre>
[[Category:PineTime]]

Latest revision as of 23:16, 21 November 2023

Infinitime features a weather subsystem which stores weather data on the watch in a timeline which can be queried by apps or watchfaces. It can store many different types of data (see here) and each entry includes a timestamp and an expiry time. When entries expire they are removed from the timeline automatically.

Sending weather data to the watch

Weather data must be sent to the watch via a companion app. Currently, ITD and Gadgetbridge have this functionality implemented.

ITD

ITD is the easiest option as the feature simply needs enabling in the config file with a location specified. It uses data from MET.no and provides one hour of data at a time.

Gadgetbridge

Gadgetbridge is slightly more difficult to set up as it requires a separate app to fetch the weather data. Details are available on the Gadgetbridge wiki.

Displaying weather data

Currently there are 2 ways to display weather data on the watch, a debug app which is disabled by default, and the PineTimeStyle watchface. To enable it, press and hold on the watch face, tap the settings icon and enable weather.

The easiest way to enable the debug app is to change the entry for the navigation app in DisplayApp.cpp to load the weather debug app instead:

    case Apps::Navigation:
      //currentScreen = std::make_unique<Screens::Navigation>(this, systemTask->nimble().navigation());
      currentScreen = std::make_unique<Screens::Weather>(this, systemTask->nimble().weather());
      break;