Widget - Weather Radar Widget

Note: WUradar Widget is now known as Weather Radar Widget!

I got approval for a widget to display a Weather Radar image based on the device GPS coordinates.  Use the following link to download the widget.

https://apps.garmin.com/en-US/apps/9c692f27-57d6-4488-91ae-5dd846a4ad26

Sep 27, 2021 - Added Weather Radar App to the store

https://apps.garmin.com/en-US/apps/bddf48af-bbdb-425c-bc7f-34309e529a2e

The Weather Radar App is essentially version 4.33 of the widget released as a full device app.  This version allows for full screen images on all supported devices.  Enables animations on a few additional devices than supported by the widget.  Lastly, the radar image will auto update every 5 minutes and will not time out and return to the watch face.  Both the widget and the app share a common registration, so if you subscribe to either the widget or the app, you get access to unlock both versions.

App Setup:
Version 4.0 represents a major overhaul in the Weather Radar Widget.  It no longer requires any configuration and should work from initial download.  The radar data being used does cost each month, so this widget has switched to a trial/subscription model.  To start out every new device gets a 21 day free trial that is fully functional.  After the trial is over, you need to sign up for a nominal annual subscription.  After completing your subscription, go into the settings and and your email address used for from the PayPal transaction.  The next time the widget is run, the widget will remain unlocked for 1 year.  After which, you will need to renew again.

Follow these step in order to enter your email address into the settings.  https://ciq.sabeard.net/wrw4/registered.php

Using the widget:
This widget will show up in the widget loop on the device.  How you access that loop will depend on the device.
Button Watches - Press the up or down buttons on the watch until you see the Weather Radar Widget
Touchscreen Watches - Swipe up or down until you see the Weather Radar Widget
Edge devices with Buttons - Use up or down button until you see the Weather Radar Widget
Touchscreen Handheld and Edge devices - Swipe down from the top of the screen to show status page, then swipe right or left until you see the Weather Radar Widget

Acknowledgements:
I decided to write this widget because I recently upgraded my edge 810 to an edge 1000. After setting it up, I noticed the accuweather widget could tell me if it was expected to rain, but there was no way to view the radar map without pulling over to take out the phone. I keep my phone in the saddle bag while riding, so not really convenient. I was surprised that there was not already a radar app in the store. Last week I decided to download eclipse and the SDK plugin and try to write my own app. Armed with the ConnectIQ programming guide and SDK samples, PETERDECKER's tutorials and links to source code examples, and jim_m_58?s tutorials and ideas based on WU Weather Widget, I came up with WUradar. Thanks guys for the inspiration.

The original plan was to release this only for the edge family of devices, however after playing with the configurations I was able to determine fairly simple method to scale the images to work on all the watches also. While the edge devices are better suited for this type of widget due to the always on GPS, there is no harm in including the watches too.

Let the questions and feedback begin.

Starting with version 4.9 the following devices support radar animation:
D2 Charlie, D2 Delta Series, Decent MK1, Edge 520 Plus, Edge 530, Edge 820, Edge830, Edge 1000, Edge 1030, Edge Explorer, Fenix 5X, Fenix 5Plus Series, Fenix 6 Pro Series, FR245m, FR645m, FR945, GPSMap66/86, Captain Marvel, First Avenger, Darth Vader, Rey, Marq Series, Oregon 7xx, Rino 7xx, Vivoactive 3 Music, Vivoactive 4, Vivoactive 4s

Any device not listed does not have enough available memory to display more than a single image.


REQUESTED FEATURES:
Option to zoom map size +/- scale - implemented - Added the ability to change the default zoom level in settings in 1.4, changes on device in 2.4
Option to display rain speed and direction - Direction can now be determined when using animated images on supported devices with version 4.8.
Set color of position dot based on GPS status (Last, Poor, Good) - implemented in version 1.14
Ability to save location for future use - implemented in version 4.17 for watch devices
Ability to load radar current radar image first in animations - Updated in Version 4.33
Add on screen button to enable animations - Added in version 4.33 for Edge and touchscreen handheld devices.

Change Log

4.33 - Officially added support for new devices released in 2021. Animation now download current radar image before starting into the image rotation, this has been requested a few times, finally figured out how to do it efficiently. On touchscreen Edge and handheld devices added an on-screen button to enable/disable animations. Under the hood optimizations to be more efficient with memory.
4.32 - Added support for Venu 2 series
4.31 - Added animation support for Descent MK2
4.30 - Officially added support for Enduro and VenuSq/SqMusic
4.29 - Fixed out of memory crashes on VA3 and FR23x devices
4.28 - Added a credits page to the about screen to acknowledge the active map and radar source being used. Added option on watch devices to hide zoom label and radar source from the radar screen. Fixed crash on CIQ1.x devices when viewing about screen.

4.27 - Added support for fr745 and fixed expiration date on about page to match the timezone set on the server.
4.26 - Optimized memory to reduce crashed on low memory devices while increasing the the viewable size on the image. Removed support for personal developer keys as AerisWeather has chanced their renewal policy.
4.25 - Added support for the newest devices Edge 1030 plus, Marq Golfer, and Mercedes Venu.
4.24 - More memory optimizations to prevent out of memory crashes on low memory devices while trying to access the menu.
4.23 - Fixed an out of memory error on Vivoactive 3 and a menu initialization bug which caused a crash on certain devices.
4.22 - Fixed an out of memory error on the Vivoactive watches.
4.21- Fixed a bug which could sometimes cause the widget to crash on startup on newer devices.
4.20 - Bug Fix
4.19 - Added RainViewer as a second radar data source. This will dramatically increase radar coverage options for all users. To use RainViewer, open the menu then choose Select Radar Source to choose between AerisWeather and RainViewer. AerisWeather provides a higher definition radar image, but RainViewer provides more coverage.
4.18 - Added support for new devices.
4.17 - Fix issue causing black image download on Venu devices. New feature on watches to save and use a previous location. If using a saved location, you can manually refresh to your current position.
4.16 - Fix for another cause of crashes after saving the registration email with the ConnectIQ app.
4.15 - Fixed a bug causing a crash for users trying to save registration after the trial or registration had expired. Until now the work around has been to reinstall the widget and save the registration email address prior to running the widget.
4.14 - Fixed an issue causing error -300 message on F3 devices. Fixed an issue causing some devices to crash after entering registration email in settings.
4.13 - Implemented fix for some devices which would always report phone not connected when it really was. i.e. Edge Explorer 1000.
4.11 - Fixed a bug causing radar images to be displayed in the reverse order.
4.9 - Fixed crash on VAHR and Epix.  Added support for all devices with enough memory to show radar loop.
4.8 - Added option on Map enabled devices to animate image loop. When enabled, the widget will show image loop of the past 30 minutes, 15 minutes, and current. If your device is supported, the option to "Enable animation" will appear in the menu. Supported devices for Animation include Edge devices (except Edge520), F5X, F5plus series, F6pro series, Marq Series, FR945. Still investigating how to support FR645m, FR245m, VA3M, VA4S, and VA4. All other devices I am at the memory limits for widgets and will not get support for animation.
4.7 - fixed more glance view implementation issues on the F6 and Marq
4.5 - Fixed a crash in Widget Glances on F6 and Marq devices. Customized Widget from system defaults.
4.4 - Released to fix bug in Garmin SDK affecting Fenix 6 devices.
4.3 - Added support for Fenix 6 Series, Venu, and Vivoactive 4 Series, fixed some bugs with entering Registration email in settings, and added vibration and background light notification on watch devices. Now you get alerted once the image has downloaded.
4.2 - Fixed some more crashes.
4.1 - Fixed some bugs causing crashes on some devices
4.0 - Major overhaul to the app.  Added registration checking and moved other options from settings to on device menu.  Added about screen to show version and registration status.
3.10 - Added support for new Forerunner and Edge devices.
3.9 - Decreased memory usage on high memory devices, i.e. F5+ series. Hopefully this will help improve image download time.
3.8 - Added support for MARQ and other new devices.
3.7 - Removed support for Weather Underground as the service finally shutdown all support for API keys. Aeris Weather is the only option now!
3.6 - Added support for GPSMAP® 66s / 66st
3.5 - Added support for the new D2 Delta series. Changed Global Satellite to use dark background and added option for color IR satellite view.
3.4 - Added support for Edge Explore, Set Aeris Weather as the default for new installs, Developed new method to use last known GPS position on watch devices based on Garmin fixing in new device FW that I was exploiting.
3.3 - Added support for new devices, VA3M, and F5 plus series.
3.2 - Improved key checking to ensure the key entered is the correct length. Fixed broken error reporting, app will once again report if the download failed, instead of hanging on "retrieving image". Enter key will now open menu on watch devices.
3.1 - Added zoom buttons to touchscreen handheld and Edge devices. Adjusted zoom level designation to match buttons, L5 is most zoomed in, L1 is most zoomed out.
3.0 - Complete rewrite of the code structure. Streamlined image retrieval and display update processes.

  • ClaudiusAubryus,

    Thanks for the feedback. I am starting to wonder if I am trying to request to large of an image for some combinations of devices interacting with different phones which is causing the timeouts, errors, and other crashes. The interaction of different devices and phones may be pushing the limit in one combination but works fine in another. Most of the problems started showing up when I tried to maximize the image size on the display.
  • 1.9a has been released. I tried to scale back the image size on all devices in order to try to decrease the transfer time and minimize the impact of a BT error causing a failure.

    If you have been getting Error code messages or App crashes, please let me know if this build works for you or not.
  • 1.10 is now in the store.

    It appears that 1.9a did not affect the errors or crashes, so I have restored the images back to the size used in 1.8. The source of the errors for some users is still being investigated.
  • 1.11 was released with improved error checking on the phone connection. I incorrectly was checking old data which could be wrong if the link got dropped. Now the app refreshes the data just before checking for the phone connection.

    1.12 was released because I found that I had hit memory limit on some of the round watches in version 1.11.
  • 1.13 has been released to further reduce memory usage on round watch.

    The memory reductions in 1.12 were not enough and could still hit the memory limit.
  • Its a good idea to have something like this on the watch. But at the moment its more a tech demo than useful.

    To be useful the image would need some kind of arrow with minute markers, so I can determine the speed and direction the rain is moving. A static image is telling me nothing without it, rain could be passing by or moving away from me, no way to know.

    A 2nd page with some bar graphic would be great, showing the times in 15 minute steps on the bottom and having a graphic bar showing the expected rain intensity at that time.

    Here is an example how that could look like: https://play.google.com/store/apps/details?id=com.chsoftware.regenvorschau&hl=de

    Also the GPS location needs more info, like the time when it was last located. And the location should be updatable by the press of the button, a difference of maybe 10km from the last location reading could make a difference of getting hit by rain or not.
  • KrapfenKringel,

    Thanks for the suggestions. I will investigate to determine feasibility of the speed and direction arrow.

    I will not be adding a second page showing the rain intensity for two reasons. First is I am at the memory limits on watch devices as it is and have no room to add additional functionality. Second, this would be duplication of the Accuweather MinuteCast widget.

    You make a good point about when the last location was saved. As there are two times to worry about. When was the GPS retrieved, and when was the radar image retrieved. I do not display the image retrieval time on watches because the widget has about a 60 second timeout so you know that image viewed is within the last minute. The last GPS time is only a problem on watch devices because they are the only ones which may provide cashed position information. I try to be battery friendly and only request a one shot position which may provide cashed info based on your last activity. If there is no cashed info, then the watch will try to get a fresh position. This is why I provide the GPS status, so you can determine how relevant the info is to you. A full acquisition time may exceed the widget timeout. While it is my plans to add a refresh position menu option, you could still get faced with the widget timing out before the update occurs. If it does, like I mention in the know behaviors, the easiest thing is start an activity, which will not timeout, that uses GPS. Once you have a fix, restart the widget. I reconize that this is not ideal, and why I am investigating how to best implement the menu option to refresh the position.

    For the non-watch devices, like the cycling computers which have the GPS always on, I do put an image timestamp so you can see when the image and GPS position was received. I also don't have to worry on these devices about the widget timing out.

    Given the available memory limits in the devices, I have to find a balance between what I can do in the device vs. what I have to use my phone for. Since the device must be connected to the phone, I know that I can always use the phone to make more informed decisions. In my case I wrote the app so I could get initial info while riding my bike to determine if I needed to pull over and dig the phone out. My point is everyone has different levels of usefulness.

  • Thanks.

    my idea behind this is not having to take out the phone, which often ist not waterproof, or if it is you cant use the touchscreen very well if its wet (except maybe the Samsung S7 / 8 Series). So it would be practical to get the status of the downpour on the waterproof watch instead.

    But I understand that memory and the small screen is a problem. Wouldn't even know how to let it calculate the directional arrow if its not done by the weather provider.

    Didn't know about a widget timeout, while testing today it was able to get the position in time. Maybe a little more info about GPS status while its doing that would be nice, like the red,yellow and green circle in the activity. Maybe have the GPS text in red,yellow and green so people know they are in a bad or good spot for locating.

    Thanks for mentioning the MinuteCast Widget, since its not for the F5 it wasn't on my list, I will check it out.
  • I like the idea about color coding the position dot based on GPS status used. That should be pretty easy to adjust based on the signal quality. Once I get through the reported error messages, I will look into color coding based on GPS status.
  • 1.14 has been released.

    While I still don't have any good solution to the users experiencing Error messages, I have made a small enhancement as recommended by KrapfenKringel to change the color of the position indicator based on GPS signal. I also display the GPS status message in a different color as well. After some playing around with it, I landed on the following colors.

    GPS Last Known Position = Red Status Message + Red Dot
    GPS Poor = Orange Status Message + Orange/Yellow Dot
    GPS Usable/Good = Green Status Message + Blue Dot

    I kept the dot blue for good GPS signal mostly so it won't clash or get lost in the green radar image.