Giter VIP home page Giter VIP logo

forecaswatch2's Introduction

banner

GitHub release (latest by date) GitHub All Releases Platform Build status GitHub Tip jar

Once upon a time I relied on ForecasWatch as the daily driver watchface on my beloved red Pebble Time. Recently, the free tier of the Weather Underground API on which the watchface relied was discontinued, making a huge portion of the watchface unusable.

The developer, RCY, is nowhere to be found in the Rebble era. I plan to continue using my Pebble(s) for years to come, so this is my attempt to revive this wonderful watchface—and this time it's open source!

Screenshots

Color screenshot Black and white screenshot

Features

  • Current time
  • Battery indicator
  • 3 week calendar
  • 24 hour weather forecast (updates every 30 minutes)
  • Bluetooth connection indicator
  • Quiet time indicator
  • Multiple weather providers (Weather Underground*, DarkSky)
  • Current temperature
  • Temperature forecast (red line)
  • Precipitation probability forecast (blue area)
  • City where forecast was fetched
  • Next sunrise or sunset time
  • GPS or manual location entry
  • Fahrenheit and Celsius temperatures
  • Customize time font and color
  • Customize colors for Sundays, Saturdays, and US federal holidays
  • Offline configuration page

* Using a hacky workaround

Platforms

All rectangular watches are supported (Classic, Steel, Time, Time Steel, Pebble 2).

Installation

Rebble

A stable release is was made available on the Rebble store thanks to @joshua. Click here for the store page.

Manual install

For more cutting-edge features, download the latest forecaswatch2.pbw release. On Android you can use Cx File Explorer to open this file through the Pebble app.

Developers

Building

Prerequisites: Node.js and Docker Desktop

# Install JS dependencies
npm install

# Start the detached docker container
npm start

# Build within the container
npm run build

This will build the project inside a docker container containing the Pebble SDK. The .pbw output can be found in the build directory on the host machine.

You can also use npm run shell to access other Pebble CLI commands.

Config

You can create a file src/pkjs/dev-config.js to set values for Clay keys (for convenience), e.g.

var darkSkyApiKey = 'abc123';
module.exports.darkSkyApiKey = darkSkyApiKey;

forecaswatch2's People

Contributors

clach04 avatar flip-13 avatar mattrossman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

forecaswatch2's Issues

Add option for precipitation amount rather than probability

The graph seems to suggest that lots of blue equals lots of rain, but the chart just shows the chance of precipitation. Maybe it would be more useful to show the expected rainfall amount. Since there's no defined range of values for this, the bottom of the graph could be zero and the middle could be whatever an average amount of rainfall is. Naturally some values would go beyond the bounds of the layer. Or perhaps I could do some kind of log transform.

Add option to change time's color

Can you please add a color picker option to setting to be able to pick colors for time, please?
That would be awesome, and fairly easy to implement as well.

Weather update fails on reverse geocoding

The following snippet currently gets no response from the reverse geocoding service:

WeatherProvider.prototype.withCityName = function(lat, lon, callback) {
// callback(cityName)
var url = 'http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?f=json&langCode=EN&location='
+ lon + ',' + lat;
request(url, 'GET', function (response) {
var address = JSON.parse(response).address;
var name = address.District ? address.District : address.City;
console.log('Running callback with city: ' + name);
callback(name);
});
}

I'm not sure what the cause for this is. Here is the free endpoint that I'm calling, I don't see any obvious notices about changes to the service, but any calls that I try to make get stuck. This might just be a temporary slowdown. Later on I'll look a bit deeper to see if there's any actual changes.

Phase of the moon

It's sort of geeky and little practical use, but add a phase of the moon indicator somewhat like on the old ForecasWatch. It might be possible to find a better place to put it

Also, someone suggested red Sundays, but how about optional red holidays? (Of course, you wouldn't be able to program in every single holiday for every single culture, but even just "if this is red on a calendar you buy in a store in America, it's red on the watch" should be useful.)

First display week

Thank you, for reviving one of the best watchface of our pebble.
I would find it convenient to be able to choose the first week to display, current or last week.

Add configuration data structure

As the number of configuration options grows, I will need a way to conveniently store them all. Storing them all in one object also facilitates persistent storage of configuration options between app launches.

Date selector color should be more visible

Current date cursor in the calendar on Basalt should be changed to a more contrast color like for example the blue perspiration color on the weather graph. Right now the dark blue is almost indistinguishable form the black background, unless the watch is in the direct sunlight or with back-light on. Or make it a black number against the white rectangle as it was in the original Forecastwatch.

Wind speed

Originally, right upperside of graph was wind speed.

Idea: Alternative weather providers

Instead of scraping, the watchface could try some well-supported API. Examples:

You may even want to take a look at the weather services already implemented in Home Assistant.

Choose update internal

Personally I would like to have the face update every six hours, others might be interested in 9 or 12.

Calendar date number repeats upon month changing

I noticed this morning (October 25 2020) that the calendar dates displayed:
18 19 20 21 22 23 24
[25] 26 27 28 29 30 31
1 1 2 3 4 5 6

This appears due to the calendar month rotating from a month ending with 31 days on a Saturday. The big was easily remedied by going to another screen and coming back to the watch face. The calendar properly set to:
18 19 20 21 22 23 24
[25] 26 27 28 29 30 31
1 2 3 4 5 6 7

Add seconds?

Anyway to add seconds option in the upper left corner?

Simplify bottom axis drawing

I did some weird calculations to try to make the bottom axis responsive to the number of hours of data that are fetched. Really, the hour and tick markers should just be fixed and the hour labels are all that can vary. As long as the user can only select from 12-hour increments, it will be trivial to calculate the label values from the starting hour.

Save weather provider preferences

Selecting one of the weather provider options and submitting should change the provider used in index.html and preserve the configured value on next launch of the clay config page.

ℹ️ Notice regarding feature requests

Hi ForecasWatch 2 users,

These days I am focusing on my graduate studies and 3D web programming, so I don't have spare time to develop new watchface features. I also don't wear my Pebble regularly anymore due to a bluetooth battery drain issue.

For now I am leaving the Issues panel open to support existing FCW2 features should any bugs arise (seems it has been stable though), and if you'd like to implement new features I can provide tips and guidance, but I generally won't be very active in this repo.

Figured I should pin a message here explaining why the feature requests aren't getting attention. Apologies for any inconvenience!

✌️

Show latest fetch status in Clay

Near the weather update button there should be visual indication of the last time, date, and location for which weather was fetched. Perhaps we could also indicate the delivery status (i.e., whether the messaged failed to send).

Support additional watch models.

It would be nice if this could support more watch models in the future. I understand that it would be hard to change the layout for the Pebble Round, but it should be possible to make a grayscale version to support the Original and Steel models. (My pebble 2 isn’t working right now, so I can’t tell if it is currently supported or not.)

Allow inverted colors

Allow for inverted color scheme on black and white watches. I.e. black text and info with a white background.

Show battery charging indicator

Right now when the watch is charging the battery shows as if it's low. I can use a lightning bolt symbol to show that it is being charged instead.

Weather not updating

Recently the weather graph has stopped working when using gps.

When i put in a location manually it works again.

edit: reinstall fixed it

gif animation on wrist flick

Hi there!
Hope you are well ! Actually I would love to get an animation (gif) from a flick. Forecaster remains all the time on the pebble like it is right now, and a wrist flick triggers the little animation for a few seconds. Maybe we can even have a custom gif. If this possible, it would be just amazing! Take care

Battery level incorrect when loading watch after battery level has changed

I think this is true for all battery level changes but I'm documenting what I saw today:

  • watch battery low, 20%
  • exit out of FCW2
  • load a different watchface
  • charge pebble (to 100%)
  • load FCW2 - battery still shows as low, eventually it will update

This appears to be due to the watchface persisting and then reading the battery level to storage. I'm not sure why it does this. I'll attach a quick fix but I think the persistence code should be removed.

plan for DarkSky API support going away

From https://blog.darksky.net/

What happens to our existing products?
...
Our API service for existing customers is not changing today, but we will no longer accept new signups. The API will continue to function through the end of 2021.

Weather Underground support still works great as of 2020-04-01 :)

Weather Update not working late July 2022

As title says, weather update is not working. I have attempted Weather Underground and DarkSky, as I still have a DarkSky api key. This issue began presenting about 6pm CT Friday July 22 (Midnight GMT Saturday July 23) across multiple locations, with or without wifi and manual updates.

Get current temperature in Weather Underground provider

The Weather Underground provider just uses the first temperature in the forecast as the current forecast. This is because the existing API call only delivers forecast info, not current weather. A second call should be added in to fetch this additional information to make the data more accurate.

Clock in 24-hour format

I am used to 24-hour current time format, would it be possible to implement a switch for that?

Weatherunserground not syncing

Hi,

First and foremost love the watchface and use it as a daily driver. Since yesterday night 10:30 PM CEST weatherunserground data are not synced anymore.

I wonder if I am the only one who has the issue or if something changed at least the service does not seem to be down.

I am using GPS location settings however also a fixed location is not working.

Any hint/additional info highly appreciated would not want to change my beloved watchface :)

Cheers and happy Easter

Add red color to Sunday column?

Just like old Forecasweather face can you add red color to Sunday column fonts? It's easier to know the day when you glance the watchface.

Battery Percentage [Feature Request]

I'm not sure if you are taking feature requests, but I'd like to see an option to show the current battery percentage.

As a stop-gap, I changed it for myself but I'm not sure how to incorporate it into clay effectively

I was thinking of having:

  1. Icon only
  2. Percentage only
  3. Both icon and percentage

I haven't taken enough time to come up with a good solution for last one, but if you have any ideas go for it. I'd be happy with the first two if you don't want to deal with finagling positioning of the elements. If you want an example of what I did to add the percentage, or both percentage and icon I'd be happy to share.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.