Report your Weather Station Data to Windy
-
@TomSlavkovsky said in Report your Weather Station Data to Windy:
precip - real number [mm]; precipitation over the past hour
How should I interpret this, precipitation added up over the entire hour that passed ? example at 10am the weather station sends the total precipitation between 9 and 10am ? My weather station sends a the observation every 5 minutes. at 10h05, 10h10 etc should then again send the precipitation between 9 and 10h?
-
@TomSlavkovsky
Hi, I'm sending data to Windy station f0ccf7c7 using requests.post(windy_url, data=windy_data) but when I look on www.windy.com/station/pws-f0ccf7c7, I get a message that says:Observation station f0ccf7c7 does not report any date for this period.
(did it mean data instead of date??)
So, why isn't this working?
Thanks for your help! -
@RothwellHeights Hi, I checked the station and it looks like there are no data in the last 7 days to display, so at this moment, there is an issue with sending data to Windy end.
-
@Suty said in Report your Weather Station Data to Windy:
@RothwellHeights Hi, I checked the station and it looks like there are no data in the last 7 days to display, so at this moment, there is an issue with sending data to Windy end.
Thanks for the quick reply. I'm receiving a SUCCESS message (code 200) at the end so I'm not sure why it's not uploading.
-
@Suty Thanks for the quick reply. I'm receiving a SUCCESS message (code 200) at the end so I'm not sure why it's not uploading.
-
Can someone please take a look at this snippet? It runs successfully with a return code 200 however the station is not showing any data on Windy.
Prepare data for Windy.com
windy_data = { "latitude":45.45908, "longitude":-75.61356, "elevation":60, "tempheight":3, "windheight":3, "dewpoint": weatherflow_data['obs'][0]['dew_point'], "uv": weatherflow_data['obs'][0]['uv'], "ts": weatherflow_data['obs'][0]['timestamp'], "winddir": weatherflow_data['obs'][0]['wind_direction'], "wind": weatherflow_data['obs'][0]['wind_avg'], "gust": weatherflow_data['obs'][0]['wind_gust'], "windgustdir": weatherflow_data['obs'][0]['wind_direction'], "winddir_avg2m": weatherflow_data['obs'][0]['wind_direction'], "rh": weatherflow_data['obs'][0]['relative_humidity'], "temp": weatherflow_data['obs'][0]['air_temperature'], "precip": weatherflow_data['obs'][0]['precip_accum_last_1hr'], "mbar": weatherflow_data['obs'][0]['station_pressure']
}
Post data to Windy.com
response_windy = requests.post(windy_url, data=windy_data)
-
@RothwellHeights I discussed this with colleagues, and you probably send these data in the wrong format. One station can be sent with GET method, where setup of the station and measuring are URL parameters.
But if you use POST method, you must send data as a JSON file, where setup of station and measuring has to be separated. More here.
-
-
@Suty Thanks for your help. That worked!
For the record, here is my corrected Python code:
def my_function():
Fetch data from WeatherFlow
response_weatherflow = requests.get(weatherflow_url) weatherflow_data = response_weatherflow.json()
Prepare data for Windy.com
tempheight=3 windheight=3 dewpoint=weatherflow_data['obs'][0]['dew_point'] uv=weatherflow_data['obs'][0]['uv'] ts=weatherflow_data['obs'][0]['timestamp'] winddir=weatherflow_data['obs'][0]['wind_direction'] wind=weatherflow_data['obs'][0]['wind_avg'] gust=weatherflow_data['obs'][0]['wind_gust'] windgustdir=weatherflow_data['obs'][0]['wind_direction'] winddir_avg2m=weatherflow_data['obs'][0]['wind_direction'] rh=weatherflow_data['obs'][0]['relative_humidity'] temp=weatherflow_data['obs'][0]['air_temperature'] precip=weatherflow_data['obs'][0]['precip_accum_last_1hr'] mbar=weatherflow_data['obs'][0]['station_pressure']
URL for Windy.com data
windy_url = f'https://stations.windy.com/pws/update/{windy_personal_access_key}?dewpoint={dewpoint}&uv={uv}&ts={ts}&winddir={winddir}&wind={wind}&gust={gust}&windgustdir={windgustdir}&winddir_avg2m={winddir_avg2m}&rh={rh}&temp={temp}&precip={precip}&mbar={mbar}'
Post data to Windy.com
response_windy = requests.get(url=windy_url)
Check response
if response_windy.status_code == 200: print(current_time,"Data successfully shared with Windy.com") else: print("Error sharing data with Windy.com:", response_windy.text)
while True:
my_function()
time.sleep(300) -
This post is deleted! -
Hi,
I use Ardubridge.com as sender for custom weather station built wit NodeMCU ESP8266, very easy to send data to Windy.com and other weather popular sites. Just configuring minimal credentials from panel.Regards
Enrique -
-
-
@omicron is this still the only solution for connecting WeatherFlow / Tempest hardware? It's not very user friendly for the non technical folks.
-
-
-
It looks like this API expects the weather station to be at a fixed location. My station is on a boat and as such, the data I send is based on my current location which of course can change.
Ideally I would be able to pass longitude and latitude values as query parameters. Is this possible?
-
@bobeasterday said in Report your Weather Station Data to Windy:
It looks like this API expects the weather station to be at a fixed location. My station is on a boat and as such, the data I send is based on my current location which of course can change.
Ideally I would be able to pass longitude and latitude values as query parameters. Is this possible?
Edit: I figured it out but for the edification of others;
You need to use the POST method (as opposed to GET). That way you can send updated server info (including lat and Lon).
-
Hello all.
Again, nothing changed on my side and Windy stopped receiving my data last Monday, April 29th. Does anyone know what changed here?
My PWS is regularly reporting to Wunderground, PWSweather and ThinkSpeak and everything is published.
https://node.windy.com/pws/stats/f052cfed
Others:
https://www.wunderground.com/dashboard/pws/ISOJOS39
https://www.pwsweather.com/station/pws/ISOJOS39Please help.
Jeffo. -
This post is deleted! -
This post is deleted! -
This is what solved it for me. I used a script from a guy in Github:
https://community.windy.com/post/183560
Thanks, @Gkikas-LGPZ
-
I'm getting relatively frequent errors when I try to send data every 5 minutes. I could extend the period to 6 minutes to fix the issue, but I think it's weird that you say that 5 minutes is OK, but then even a slight amount of jitter in the period will cause error messages.
"Measurement sent too soon, update interval is 5 minutes"
Here are some samples of the measured interval in seconds that show the the variations are around 60 milliseconds and we're still getting errors:
300.001
300.037
299.953
300.035
299.992
300.036
299.943As an experiment, I'll add a static delay before sending the data. It will not affect the interval in any way, but it might help if the problem is in fact a clock sync issue. I could of course track the interval and add a variable delay, but our station is on a strict one minute clock, so the Windy data would start to drift relative to that clock since there's no way to claw back the added milliseconds.
-
@jmunkki Hi, how are you measuring those intervals? You should count 5 minutes since you receive response from us. Those issues you are describing are probably caused by network delay. I can maybe lower the interval little bit so we are not so strict about this limit.