GARMIN weather service location names

We are using 3.2.x SDK GARMIN service to get weather info and location name as well.

But we are having some problems, as it does not seem to return labels for every city, or even whole countries.

We get a null string if we set the location anywhere at London, for instane... This is causing some discontent.

Do we have a list of where they are not returning any value so we can, at least, warn our users?

Thanks a lot!

  • Set any place at London... The Big Ben coordinates for instance....

    51°30'03"N 0°07'28"W

  • This all gets back to what's said in the API doc for currentConditions.  Anything can have a value or be null.  Even if something can be worked out for a specific location, that doesn't mean the same won't occur somewhere else.

    Just this morning, I was seeing the "feels like" temperature was null for a while.  Never saw that before, and it cleared up after a bit, but things can happen....

  • I'm not sure what you're responding to when you say "It depends on the place". Even if you're telling the Garmin Connect app what location you want, you will not have access to either of the fields from the API that I mention above. We would return null for both of them.

  • I didn't realize that you could override the weather location in GCM. That is not something that was available when I originally worked on this feature.

    Are you certain that this location in London produces the problematic result? I tried a half dozen locations previously and they all returned valid location name data.

    I plugged the decimal coordinates for the GPS location you gave above (51.500833, 0.124444) into our weather service, and it returns the following observation location info:

    <LocationInfo>
      <lat>51.5053</lat>
      <lon>0.055275</lon>
      <name>London City Airport</name>
    </LocationInfo>

    If this location does indeed produce the null observationLocationName result inside a ConnectIQ app on a device, then the problem lies between the web service and the app.

    I set the location in GCM to United Kingdom/SW1A 0AA and then ran a test app on my fenix6xpro. It displayed the observation location data as:

    I moved the location slightly to be on top of Big Ben, and the name didn't change, but the coordinates changed to [51.500836, -0.124508]. So, as far as I can tell, everything is working properly.

    What I'm really looking for is the observationLocationPosition data that is seen when the observationLocationName field is null. Theoretically I should be able to plug that position data in and reproduce the problem... but nobody seems to be able to provide the data and I'm unable to reproduce the problem with several attempts and I cannot see an obvious issue with the code that generates the string.

  • If you're seeing this problem, please provide as much information as you are able. Things that might be relevant:

    1. device (fenix6, venu, ...)
    2. device firmware version
    3. GCM platform (iOS or Android)
    4. GCM version
    5. location

    Also, to be very clear, it is my understanding that there are two problems that are being reported with respect to the location name. The first is that the observationLocationName value is null (i.e., the MonkeyC expression if (conditions.observationLocationName == null) evaluates to true). This is allowed, but not expected to occur often as the data should be present. The other case is the location name is, or contains, the string "null" (i.e., the MonkeyC expression if (conditions.observationLocationName.find("null") != null) evaluates to true). This is allowed, but should only occur if the location name is actually null, possibly the weather data provider is playing a cruel joke.

  • Thanks a lot Jim and Travis for your help!

    I try to summarize all the answers:

    1. We have no problems with crashing the watchface. We already null check every variable.

    2. We get:

    observationLocationName == null, very few times

    observationLocationName == "null", quite a lot

    observationLocationName == "Location [xx.xx.xx yy.yy.yy]", quite some times

    In the wtachface we change the label to "unknown location" (if =="null") or "no data" (if ==null) in these situations, just to no crash a give a more user friendly message.

    3. As an example, we get the "null" string for the following location (Big Ben). And the observationLocationPosition are the coordinates shown in the image:

    I have seen this behaviour myself just moving around. But the thing is that 95% of the email that we get from our users is just because:

    - They get observationLocationName == "null" (we show "Unknown Location")

    - Weather data does not update for hours or days. (If they have an iPhone it is going to happen, no matter what)

    We are changing to OpenWeather just to stop getting emails about the weather and location data. And save hours everyday.

    Hope this give you enough data to check!!

    Thanks a lot!!

  • I forgot... also...

    And I suppose this is not related to a device, firmware version, or GCM version.

    As it happens both in Android and iOS (but I must say that it is more likely to happen in iOS).

    And it has been behaving this way since we released the watchface (for 4months now).

    And we get emails form people with fr245, f6, va4, etc.

    Thanks a lot!

  • - Weather data does not update for hours or days. (If they have an iPhone it is going to happen, no matter what)

    With Android I see the data update often (I display observationTime so easy to see)  The times it doesn't are when the connection from the device to the phone isn't available.  I've not heard from iOS users with a problem like this.

    We are changing to OpenWeather

    doing this, you'll be limited to current data and not forecast data  And if the connection from the device to the phone is an issue it might not help.

  • I hope that you will keep the Garmin weather source as an option for those of us not having the issues that you're describing. In the alternative, if you are only going to offer OWM then please configure the watchface so that the user's phone GPS communicates the device's position to OWM, rather than requiring the device itself to get a fresh GPS fix when changing locations.

  • do I need to check position for wind dir?? era has send me errors for wind dir but not for temp or wind speed