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!?!
> [image: 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 ... Perhaps ... I hope.
>> [image: Schermata del 2025-09-24 19-37-01.png]
>> [image: 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 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) 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.