No cloud cover data from Aeris weather

151 views
Skip to first unread message

carlo74

unread,
Sep 17, 2025, 4:36:57 PM (8 days ago) Sep 17
to weewx-user
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) 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

Pablo Sanchez

unread,
Sep 17, 2025, 4:47:46 PM (8 days ago) Sep 17
to weewx...@googlegroups.com
You must have been reading over my shoulder! I am new to weewx and I was
collecting information to try to post.

To not confuse things, I will watch this thread and if need be, start a
different thread so as not to muck yours up.

Thx!
-pablo

Pablo Sanchez

unread,
Sep 17, 2025, 5:26:16 PM (8 days ago) Sep 17
to weewx...@googlegroups.com
Just to confirm, is s metar set to 1?

I am not at my computer so you'll have to do a substring search for the variable.
---
pablo

--
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 weewx-user+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/weewx-user/259b6e5a-a4f5-49aa-9889-930219e6847fn%40googlegroups.com.

Message has been deleted

Pablo Sanchez

unread,
Sep 18, 2025, 11:11:30 AM (7 days ago) Sep 18
to weewx...@googlegroups.com
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:
Message has been deleted
Message has been deleted

carlo74

unread,
Sep 19, 2025, 8:07:53 AM (6 days ago) Sep 19
to weewx-user
Yes, forecast_aeris_use_metar = 1
and it works for years (4), until the last days.

And sorry for the last post.
Carlo

carlo74

unread,
Sep 19, 2025, 8:07:53 AM (6 days ago) Sep 19
to weewx-user
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:

carlo74

unread,
Sep 19, 2025, 8:07:53 AM (6 days ago) Sep 19
to weewx-user

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

Pablo Sanchez

unread,
Sep 19, 2025, 8:59:46 AM (6 days ago) Sep 19
to weewx...@googlegroups.com
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

Francesco Fasano

unread,
Sep 19, 2025, 9:21:27 AM (6 days ago) Sep 19
to weewx...@googlegroups.com
Hi guys,
It doesn't work for me either, as I think it does for all users in Italy.
www.meteocivitavecchia.it Dubbing on the site is active.

Message has been deleted

Christian Pieper

unread,
Sep 23, 2025, 11:01:16 AM (2 days ago) Sep 23
to weewx-user
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.

Pablo Sanchez

unread,
Sep 24, 2025, 9:18:27 AM (yesterday) Sep 24
to weewx...@googlegroups.com
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

carlo74

unread,
Sep 24, 2025, 12:15:22 PM (yesterday) Sep 24
to weewx-user
Hi to everyone,
two days ago, it work fine. Today, again, NO.

"error": {"code": "warn_no_data", "description": "Valid request. No results available based on your query parameters."}


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

Pablo Sanchez

unread,
Sep 24, 2025, 12:51:21 PM (yesterday) Sep 24
to weewx...@googlegroups.com
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

carlo74

unread,
Sep 24, 2025, 1:41:04 PM (yesterday) Sep 24
to weewx-user
I think it is a temporary outage of 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

Pablo Sanchez

unread,
Sep 24, 2025, 2:01:53 PM (yesterday) Sep 24
to weewx...@googlegroups.com
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" |
  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" |
  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" |
  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

carlo74

unread,
Sep 24, 2025, 3:52:05 PM (yesterday) Sep 24
to weewx-user
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: {

  1.   "success": true,
      "error": null,
      "response": [
        {
          "loc": {
  1.         "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
          }
        }
      ]
    }
  2. This is the third: {

  1.   "success": true,
      "error": null,
      "response": [
        {
          "loc": {
  1.         "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
          }
        }
      ]
    }

Pablo Sanchez

unread,
Sep 24, 2025, 4:02:27 PM (yesterday) Sep 24
to weewx...@googlegroups.com
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

pablo

unread,
Sep 24, 2025, 6:22:48 PM (24 hours ago) Sep 24
to weewx-user
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

Pablo Sanchez

unread,
6:14 PM (now) 6:14 PM
to weewx-user
Hi everyone,

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

Thx!
---
pablo

Reply all
Reply to author
Forward
0 new messages