Hi everyone,

I have started a Discussion with a proposed implementation plan - see https://github.com/uajqq/weewx-belchertown-new/discussions/30

Thx!

---
pablo


On 2025-09-24 18:22, pablo wrote:
Following up to myself .. there are two endpoints that are provided for conditions:

  * Observations
  * Conditions {/Summary}

The code uses Observations, which based on the documentation[1], should be the source of truth. In my case, there are no nearby stations which report these data. However, Conditions does, which is an interpolation of various sources.

I believe the underlying code, rightly, expects a specific JSON format of current conditions. I will need to do some more analysis to figure out the proper alternative endpoint and how to support it. I also think that this discussion probably does not belong in this group. I will create a discussion[2]. My apologies for the clutter.

Thx!
-pablo

*_References_*
1 - https://www.xweather.com/docs/weather-api/endpoints
2 - https://github.com/uajqq/weewx-belchertown-new/discussions

On Wednesday, September 24, 2025 at 4:02:27 PM UTC-4 Pablo Sanchez wrote:

    Hi Carlo,

    I have no doubt that it will stop working again. :\  At which
    point, you can try the test code.

    As mine does not work, I will see what happens if I can drop-in
    the Xweather API call. It would be ideal if the JSON returned can
    be parsed by the code without any changes.

    Cheers!

    ---
    pablo


    On 2025-09-24 15:52, carlo74 wrote:
    Hi,
    now it's OK, it works again ... whattt!?!
    Schermata del 2025-09-24 21-46-54.png

     1. *This is the result of first method:* {
          "success": true,
          "error": null,
          "response": {
            "id": "LIRZ",
            "dataSource": "METAR_NOAA",
            "loc": {
              "long": 12.5,
              "lat": 43.1
            },
            "place": {
              "name": "perugia",
              "city": "perugia",
              "state": "",
              "country": "it"
            },
            "profile": {
              "tz": "Europe/Rome",
              "tzname": "CEST",
              "tzoffset": 7200,
              "isDST": true,
              "elevM": 205,
              "elevFT": 673
            },
            "obTimestamp": 1758741600,
            "obDateTime": "2025-09-24T21:20:00+02:00",
            "ob": {
              "type": "station",
              "timestamp": 1758741600,
              "dateTimeISO": "2025-09-24T21:20:00+02:00",
              "recTimestamp": 1758742093,
              "recDateTimeISO": "2025-09-24T21:28:13+02:00",
              "tempC": 17,
              "tempF": 63,
              "dewpointC": 14,
              "dewpointF": 57,
              "humidity": 82,
              "pressureMB": 1015,
              "pressureIN": 29.96,
              "spressureMB": 990,
              "spressureIN": 29.25,
              "altimeterMB": 1015,
              "altimeterIN": 29.97,
              "windKTS": 3,
              "windKPH": 6,
              "windMPH": 3,
              "windMPS": 1.54,
              "windSpeedKTS": 3,
              "windSpeedKPH": 6,
              "windSpeedMPH": 3,
              "windSpeedMPS": 1.54,
              "windDirDEG": 210,
              "windDir": "SSW",
              "windGustKTS": null,
              "windGustKPH": null,
              "windGustMPH": null,
              "windGustMPS": null,
              "flightRule": "VFR",
              "visibilityKM": 9.656064,
              "visibilityMI": 6,
              "weather": "Mostly Cloudy",
              "weatherShort": "Mostly Cloudy",
              "weatherCoded": "::BK",
              "weatherPrimary": "Mostly Cloudy",
              "weatherPrimaryCoded": "::BK",
              "cloudsCoded": "BK",
              "icon": "mcloudyn.png",
              "heatindexC": 17.2,
              "heatindexF": 63,
              "windchillC": 17.2,
              "windchillF": 63,
              "feelslikeC": 17.2,
              "feelslikeF": 63,
              "isDay": false,
              "sunrise": 1758689985,
              "sunriseISO": "2025-09-24T06:59:45+02:00",
              "sunset": 1758733446,
              "sunsetISO": "2025-09-24T19:04:06+02:00",
              "snowDepthCM": null,
              "snowDepthIN": null,
              "precipMM": 0,
              "precipIN": 0,
              "solradWM2": 0,
              "solradMethod": "estimated",
              "ceilingFT": 5300,
              "ceilingM": 1615.44,
              "light": 0,
              "uvi": null,
              "QC": "O",
              "QCcode": 10,
              "trustFactor": 100,
              "sky": 81
            },
            "raw": "METAR METAR LIRZ 241920Z AUTO 21003KT 160V260
        9999 FEW041/// BKN053/// 17/14 Q1015",
            "relativeTo": {
              "lat": 43.1,
              "long": 12.5,
              "bearing": 180,
              "bearingENG": "S",
              "distanceKM": 0,
              "distanceMI": 0
            }
          }
        }
     2. *This is the second: *{
          "success": true,
          "error": null,
          "response": [
            {
              "loc": {
                "lat": 43.1,
                "long": 12.5
              },
              "place": {
                "name": "sant'egidio",
                "state": "tr",
                "country": "it"
              },
              "periods": [
                {
                  "timestamp": 1758742800,
                  "dateTimeISO": "2025-09-24T21:40:00+02:00",
                  "tempC": 16.64,
                  "tempF": 61.95,
                  "feelslikeC": 16.64,
                  "feelslikeF": 61.95,
                  "wetBulbGlobeTempC": 15.24,
                  "wetBulbGlobeTempF": 59.43,
                  "dewpointC": 14.15,
                  "dewpointF": 57.47,
                  "humidity": 85,
                  "pressureMB": 1015,
                  "pressureIN": 29.97,
                  "windDir": "W",
                  "windDirDEG": 272,
                  "windSpeedKTS": 2.53,
                  "windSpeedKPH": 4.69,
                  "windSpeedMPH": 2.92,
                  "windSpeedMPS": 1.3,
                  "windGustKTS": 10.69,
                  "windGustKPH": 19.8,
                  "windGustMPH": 12.3,
                  "windGustMPS": 5.5,
                  "precipMM": 0,
                  "precipIN": 0,
                  "precipRateMM": 0,
                  "precipRateIN": 0,
                  "snowCM": 0,
                  "snowIN": 0,
                  "snowRateCM": 0,
                  "snowRateIN": 0,
                  "snowDepthCM": 0,
                  "snowDepthIN": 0,
                  "pop": 0,
                  "visibilityKM": 9.656,
                  "visibilityMI": 6,
                  "sky": 79,
                  "cloudsCoded": "BK",
                  "weather": "Mostly Cloudy",
                  "weatherCoded": "::BK",
                  "weatherPrimary": "Mostly Cloudy",
                  "weatherPrimaryCoded": "::BK",
                  "icon": "mcloudyn.png",
                  "solradWM2": 0,
                  "uvi": 0,
                  "isDay": false,
                  "spressureMB": 984.2,
                  "spressureIN": 29.06,
                  "altimeterMB": 1015,
                  "altimeterIN": 29.97,
                  "solrad": {
                    "azimuthDEG": 298.8726,
                    "zenithDEG": 118.1063,
                    "ghiWM2": 0,
                    "dniWM2": 0,
                    "dhiWM2": 0,
                    "version": "v2"
                  }
                }
              ],
              "profile": {
                "tz": "Europe/Rome",
                "tzname": "CEST",
                "tzoffset": 7200,
                "isDST": true,
                "elevM": 262,
                "elevFT": 860
              }
            }
          ]
        }
     3. *This is the third:* {
          "success": true,
          "error": null,
          "response": [
            {
              "loc": {
                "lat": 43.1122,
                "long": 12.38878
              },
              "place": {
                "name": "perugia",
                "state": "tr",
                "country": "it"
              },
              "periods": [
                {
                  "timestamp": 1758742800,
                  "dateTimeISO": "2025-09-24T21:40:00+02:00",
                  "tempC": 16.94,
                  "tempF": 62.48,
                  "feelslikeC": 16.94,
                  "feelslikeF": 62.48,
                  "wetBulbGlobeTempC": 14.75,
                  "wetBulbGlobeTempF": 58.55,
                  "dewpointC": 11.8,
                  "dewpointF": 53.23,
                  "humidity": 72,
                  "pressureMB": 1015,
                  "pressureIN": 29.97,
                  "windDir": "WNW",
                  "windDirDEG": 283,
                  "windSpeedKTS": 1.65,
                  "windSpeedKPH": 3.06,
                  "windSpeedMPH": 1.9,
                  "windSpeedMPS": 0.85,
                  "windGustKTS": 6.62,
                  "windGustKPH": 12.26,
                  "windGustMPH": 7.62,
                  "windGustMPS": 3.41,
                  "precipMM": 0,
                  "precipIN": 0,
                  "precipRateMM": 0,
                  "precipRateIN": 0,
                  "snowCM": 0,
                  "snowIN": 0,
                  "snowRateCM": 0,
                  "snowRateIN": 0,
                  "snowDepthCM": 0,
                  "snowDepthIN": 0,
                  "pop": 0,
                  "visibilityKM": 16,
                  "visibilityMI": 9.942,
                  "sky": 100,
                  "cloudsCoded": "OV",
                  "weather": "Light Rain",
                  "weatherCoded": ":L:R",
                  "weatherPrimary": "Light Rain",
                  "weatherPrimaryCoded": ":L:R",
                  "icon": "rainn.png",
                  "solradWM2": 0,
                  "uvi": 0,
                  "isDay": false,
                  "spressureMB": 958,
                  "spressureIN": 28.29,
                  "altimeterMB": 1015.7,
                  "altimeterIN": 29.99,
                  "solrad": {
                    "azimuthDEG": 298.7815,
                    "zenithDEG": 118.0293,
                    "ghiWM2": 0,
                    "dniWM2": 0,
                    "dhiWM2": 0,
                    "version": "v2"
                  }
                }
              ],
              "profile": {
                "tz": "Europe/Rome",
                "tzname": "CEST",
                "tzoffset": 7200,
                "isDST": true,
                "elevM": 493,
                "elevFT": 1617
              }
            }
          ]
        }

    Il giorno mercoledì 24 settembre 2025 alle 20:01:53 UTC+2 Pablo
    Sanchez ha scritto:

        Hi Carlos,

        Good to check.

        I have had some time to look a bit further and Christian is
        correct that aerisweather has been rebranded to Xweather.
        Aerisweather seems to be available for backward
        compatibility. I have no idea how long that will last.

        I looked at the Python code[1] that is making the API call[2]
        and I am able to replicate my problem via the command line. I
        used the Xweather API builder to create what I believe is the
        new version of the call. The call returns good data. I have
        not changed the Python code (yet).

        If you want to try a test, I have provided my bash-compatible
        code below. Using your JSON data, I set some of the variables
        to reflect your location. You will need to set CLIENT_ID and
        CLIENT_SECRET before you copy-and-paste the shell script to a
        terminal.

        I would also suggest that you install jq. It prettifies the JSON.

        Shell code:

        ################################ - variables, set CLIENT_ID
        and CLIENT_SECRET
        LOC="perugia,it"
        LIMIT="7"

        LAT="43.1"
        LONG="12.5"
        CLIENT_ID="FILL_ME_IN"
        CLIENT_SECRET="DO_NOT_SHARE_THIS"

        FILTER="allstations"
        FILTER="day"

        ################################ - curl call
        # The current method - no worky pour moi
        curl -s -H "Content-Type: application/json" -X GET
        
"https://api.aerisapi.com/observations/$LAT,$LONG?&format=json&filter=allstations&filter=metar&limit=1&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET";
        
<https://api.aerisapi.com/observations/$LAT,$LONG?&format=json&filter=allstations&filter=metar&limit=1&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET>
        |
          jq -C | less -R

        # New method, using long/lat - the closest city decided is
        zillions of
        # KMs from my location!
        curl -s -H "Content-Type: application/json" -X GET
        
"https://data.api.xweather.com/conditions/$LAT,$LONG?format=json&plimit=1&filter=1min&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET";
        
<https://data.api.xweather.com/conditions/$LAT,$LONG?format=json&plimit=1&filter=1min&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET>
        |
          jq -C | less -R

        # New method, using a location (city/province) - use the
        Xweather app
        # builder to decide, or be bold and try!
        curl -s -H "Content-Type: application/json" -X GET
        
"https://data.api.xweather.com/conditions/$LOC?format=json&plimit=1&filter=1min&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET";
        
<https://data.api.xweather.com/conditions/$LOC?format=json&plimit=1&filter=1min&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET>
        |
          jq -C | less -R

        *_References
        _*1 - .../weewx-data/bin/user/belchertown.py
        2 - line 1169 in version 1.4 of the new Belchertown code

        ---
        pablo


        On 2025-09-24 13:41, carlo74 wrote:
        I think it is a temporary outage of xweather.com
        <http://xweather.com> ... Perhaps ... I hope.
        Schermata del 2025-09-24 19-37-01.png
        Schermata del 2025-09-24 19-40-10.png
        Thanks
        Carlo
        Il giorno mercoledì 24 settembre 2025 alle 18:51:21 UTC+2
        Pablo Sanchez ha scritto:

            Hi Carlo,

            While the error message suggests something else, have
            you confirmed that you have not exceeded your monthly
            allotment of forecast queries?

            Cheers!

            ---
            pablo


            On 2025-09-24 12:15, carlo74 wrote:
            Hi to everyone,
            two days ago, it work fine. Today, again, NO.

            In my
            [[https://meteopievedicampo.ddns.net/json/forecast.json]]:
            "error": {"code": "warn_no_data", "description": "Valid
            request. No results available based on your query
            parameters."}

            In
            
[[https://www.meteocivitavecchia.it/weewx/belchertown/json/forecast.json]]
            it works.

            So, it's not only in Italy.
            Bye
            Carlo


            Il giorno mercoledì 24 settembre 2025 alle 15:18:27
            UTC+2 Pablo Sanchez ha scritto:

                Thank you for the tip Christian. I also found this
                thread
                https://github.com/poblabs/weewx-belchertown/issues/393
                which provides some of the development background.
                It lead me to look at my forecast.json file (below)
                and I see the error: Valid request. No results
                available based on your query parameters

                An additional issue with my situation is that
                Aerisweather, using the provided long/lats, is
                picking a city that is too far from my location for
                an accurate forecast.

                I have some time today (I think!) to dink around
                and run some tests. I will post back with my findings.

                # jq . forecast.json
                {
                   "timestamp": 1758718818,
                   "current": [
                     {
                       "success": true,
                       "error": {
                "code": "warn_no_data", "description": "Valid
                request. No results available based on your query
                parameters."
                       },
                       "response": []
                     }
                   ],
                   "forecast_24hr": [
                     {
                       "success": true,
                       "error": null,
                       "response": [
                         {
                           "loc": {
                             "long": -75.854,
                             "lat": 46.242
                           },
                           "interval": "day",
                           "place": {
                             "name": "saint-raphael",
                             "state": "qc",
                             "country": "ca"
                           },
                           "periods": [
                ...

                ---
                pablo


                On 2025-09-20 15:12, Christian Pieper wrote:
                I'm having the same problem. Aerisweather is no
                longer available, and it redirects to
                https://www.xweather.com/
                I think there's a problem with the URL when
                retrieving the data.

                Francesco Fasano schrieb am Freitag, 19. September
                2025 um 15:21:27 UTC+2:

                    Hi guys,
                    It doesn't work for me either, as I think it
                    does for all users in Italy.
                    www.meteocivitavecchia.it
                    <http://www.meteocivitavecchia.it> Dubbing on
                    the site is active.

                    Il giorno ven 19 set 2025 alle ore 14:59 Pablo
                    Sanchez <[email protected]> ha scritto:

                        Hi Carlo,

                        This is interesting! it is not working for
                        me either but I just started using WeeWX
                        so I have baseline.

                        Debug does not provide any insights on my
                        end.

                        ---
                        pablo


                        On 2025-09-18 15:28, carlo74 wrote:
                        Hi,
                        yes, in weewx.conf
                        *forecast_aeris_use_metar = 1*
                        It works until few days ago (for 4 years!)
                        Thanks
                        Carlo

                        p.s.: sorry for the reply.
                        Il giorno giovedì 18 settembre 2025 alle
                        17:11:30 UTC+2 Pablo Sanchez ha scritto:

                            Hi, yes, in weewx.conf debug is set
                            to 1.

                            Hi Carlos,

                            Not debug but
                            *forecast_aeris_use_metar = 1* There
                            is no icon if set to 0.

                            Also, please reply to the list, not
                            directly to me.

                            Thx!

                            ---
                            pablo


                            On 2025-09-17 16:36, carlo74 wrote:
                            Hi everyone,
                            today i receive this error in weewx
                            logs with Belchertown skin:
                            ---------------------------------
                            weewxd[5830]: INFO user.belchertown:
                            No cloud cover data from Aeris weather
                            .....
                            weewxd[5830]: message repeated 11
                            times: [ INFO user.belchertown: No
                            cloud cover data from Aeris weather]
                            ---------------------------------
                            In my homepage
                            (meteopievedicampo.ddns.net
                            <http://meteopievedicampo.ddns.net>)
                            i don't see the weather icon and
                            other data such visibility
                            and cloudiness.
                            In my aeris area
                            (https://account.xweather.com/data/member)
                            i see the number remain for today:
                            200 total access (5.000 for a day).
                            Secret and Id api are OK in weewx.conf.
                            I delete forecast.js and restart
                            weewx, but nothing.
                            What happens?
                            Thanks
                            Carlo
-- You received this message because
                            you are subscribed to the Google
                            Groups "weewx-user" group.
                            To unsubscribe from this group and
                            stop receiving emails from it, send
                            an email to
                            [email protected].
                            To view this discussion visit
                            
https://groups.google.com/d/msgid/weewx-user/259b6e5a-a4f5-49aa-9889-930219e6847fn%40googlegroups.com
                            
<https://groups.google.com/d/msgid/weewx-user/259b6e5a-a4f5-49aa-9889-930219e6847fn%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are
                        subscribed to the Google Groups
                        "weewx-user" group.
                        To unsubscribe from this group and stop
                        receiving emails from it, send an email
                        to [email protected].
                        To view this discussion visit
                        
https://groups.google.com/d/msgid/weewx-user/52e24e64-ad59-4896-878e-80977a74a3ccn%40googlegroups.com
                        
<https://groups.google.com/d/msgid/weewx-user/52e24e64-ad59-4896-878e-80977a74a3ccn%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are
                        subscribed to the Google Groups
                        "weewx-user" group.
                        To unsubscribe from this group and stop
                        receiving emails from it, send an email to
                        [email protected].

                        To view this discussion visit
                        
https://groups.google.com/d/msgid/weewx-user/c4bddadb-e388-42f7-9ba5-c2936c5ed778%40hillsandlakes.com
                        
<https://groups.google.com/d/msgid/weewx-user/c4bddadb-e388-42f7-9ba5-c2936c5ed778%40hillsandlakes.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are
                subscribed to the Google Groups "weewx-user" group.
                To unsubscribe from this group and stop receiving
                emails from it, send an email to
                [email protected].
                To view this discussion visit
                
https://groups.google.com/d/msgid/weewx-user/eb5a79c6-1a42-45cd-a93f-ffa0f9e65df8n%40googlegroups.com
                
<https://groups.google.com/d/msgid/weewx-user/eb5a79c6-1a42-45cd-a93f-ffa0f9e65df8n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are subscribed to
            the Google Groups "weewx-user" group.
            To unsubscribe from this group and stop receiving
            emails from it, send an email to
            [email protected].
            To view this discussion visit
            
https://groups.google.com/d/msgid/weewx-user/6787023d-2ee3-4fce-8001-5af7af8ed2cdn%40googlegroups.com
            
<https://groups.google.com/d/msgid/weewx-user/6787023d-2ee3-4fce-8001-5af7af8ed2cdn%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are subscribed to the
        Google Groups "weewx-user" group.
        To unsubscribe from this group and stop receiving emails
        from it, send an email to [email protected].
        To view this discussion visit
        
https://groups.google.com/d/msgid/weewx-user/0310da1f-a3ca-4b27-accd-0b37dde7da12n%40googlegroups.com
        
<https://groups.google.com/d/msgid/weewx-user/0310da1f-a3ca-4b27-accd-0b37dde7da12n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are subscribed to the
    Google Groups "weewx-user" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected].
    To view this discussion visit
    
https://groups.google.com/d/msgid/weewx-user/de5a28ea-8629-4870-982f-3c72efb9dad8n%40googlegroups.com
    
<https://groups.google.com/d/msgid/weewx-user/de5a28ea-8629-4870-982f-3c72efb9dad8n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/0adac423-8bd7-4b9e-ac74-129bf7ba4ad6n%40googlegroups.com <https://groups.google.com/d/msgid/weewx-user/0adac423-8bd7-4b9e-ac74-129bf7ba4ad6n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/weewx-user/070c78c9-e169-4b12-aacb-ebeed337bc91%40hillsandlakes.com.

Reply via email to