My Arduino Mega-based weather station has been working reliably 24/7 for over a year now, uploading readings every minute to a MySQL DB I have set up on a Raspberry Pi on my network. So I decided to start uploading the same readings to Weather Underground, so others could use them as well.
I followed the GET protocol as explained on WU's Wiki, and it worked fine for around a week. Then all of a sudden, the WU server stopped accepting readings, and no amount of reboots of my station, router or modem, or tweaks to the code to fix possible issues, would fix it. Nor was there likely a problem with WU's servers, as other local stations continued to upload readings regularly.
I tried to email WU but got no response. So I did a little googling, and saw that I might have been using the wrong GET format (even though it worked for a while). I tried using a different format, and voila, I was once again able to upload readings to WU, and have been ever since. This was some days ago.
Here's the original GET format I used:
GET https://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=stationid&PASSWORD=password&dateutc=2017-03-01+13%3A42%3A00&tempf=52.92&temp2f=53.60&humidity=99.90&dewptf=52.90&baromin=29.78&softwaretype=ArduinoCustomBuilt&action=updateraw HTTP/1.1
Recv 277 bytes
SEND OK
+IPD,132:HTTP/1.1 200 OK
Content-type: text/html
Date: Wed, 01 Mar 2017 13:42:03 GMT
Content-Length: 8
Connection: keep-alive
success
And here's the updated GET format that now works:
GET /weatherstation/updateweatherstation.php?ID=stationid&PASSWORD=password&dateutc=2017-03-04+13%3A28%3A00&tempf=24.13&temp2f=24.98&humidity=41.60&dewptf=3.93&baromin=30.55&softwaretype=ArduinoCustomBuilt&action=updateraw HTTP/1.1
Host: https://weatherstation.wunderground.com
Connection: close
Recv 303 bytes
SEND OK
+IPD,127:HTTP/1.0 200 OK
Content-type: text/html
Date: Sat, 04 Mar 2017 13:28:03 GMT
Content-Length: 8
Connection: close
success
Why did the first one work for a while, then stopped working? Could they have changed something in the PHP scripts on their servers, or updated some component of the server software, so that the old format no longer worked? Any idea what that might be?
Incidentally, I'm using an ESP8266 WiFi board to upload the readings.