(Hacking) Professional Weather Station for under $100

A huge array of Personal Weather Stations is what makes Weather Underground (aka WUnderground) be so much more precise than any other weather service. In fact, the company’s forecasts are so precise (and cheap?), that “even” Google chose them to be their primary source for searches and other weather related cloud services (i.e. see http://www.google.com/intl/en/help/features_list.html#weather). But while there are “more than 25,000 weather stations across the globe [that] already send data to Weather Underground“, there are still many areas of the world that are not properly covered by this extensive network. In my case the topography of the region is so extreme, that the nearest station was constantly off by up to 15 degrees. Needless to say, even the next day forecasts were all over the place.

La Crosse Alerts Website Screenshot

Introducing (cheap consumer grade) La Crosse Technology Wireless Weather Station with La Crosse Alerts (aka C84612) being sold at offline Costco stores. The station costs roughly $80 and comes with wireless wind (speed, gust, direction), rain (still not working for me), temperature, humidity, and pressure sensors, as well as a mediocre dashboard panel, and an ” internet gateway” (connects the panel to La Crosse propitiatory website). This station is capable of properly reporting current information in close to real-time onto the dashboard and roughly every 20 minutes to the attractive La Crosse Alerts secured website.

Note: The alert service provided by La Crosse, which pushes the information onto their website, is essentially a trial. Once it expires, the service (currently) costs just under $12 per year. An acceptable price, I would say.

Unfortunately, our luck stops there- the site boasts responsiveness and accessibility, but the “forecast” portion is most definitely nothing more than a barometric pressure check, aka 17th century weather science. This is far from all of the awesome information you can get from WUnderground, and the need to log-in via browser each time just to check weather kills even the current condition aspect of the offering.

PWSFortunately, we have our web box (a VPS droplet courtesy of DigitalOcean, of course)  that is just itching to connect and marry the two for our enjoyment- La Crosse (propitiatory) website and Wunderground Personal Weather Station (not-so-documented) API. I’ve devised a quick PHP script that connects to La Crosse Alerts, logs-in and, using the same session, downloads the data, parses it, and then pushes it over to Wunderground. Please feel free to reuse and let me know if it has been of help for you as well.

The La Crosse website data was not officially designed for scrubbing, hence the structure could potentially change. It is unlikely that the change would occur any time soon, especially since the format appears to be generally similar to that of open-weather, however they could deem this type of connection detrimental to their service/offering (??!!) and a breach of the TOS (??!!), leading to eventual block of the script. Please try to not abuse their system!

As both website fluctuate at times, the error handling is set such that it does not send back the output unless it’s been some time (configurable) since the last scrub and/or upload of data. I also had to do some additional recalculating since the La Crosse wind gauge cannot be adjusted once hoisted in place. Who knows what else I will add to this over time (perhaps non-recurring error notification control and consistent session and connection control?), but for now, I recommend you do try it out for yourself. Reconfiguring it for your own station and setting it up on cron (with MAILTO to email on any output (errors)) takes only a few minutes- try it out and let me know!

Note: Wunderground PWS API uses non-secured pushes- they are not only basic HTTP, they are, in fact, all GET based. This puts your password at risk (albeit username is not used)- consider changing it to something basic or using a secondary login for authorizing PWS updates.

  • Ben

    I just bought one of these too and I am looking forward to testing out your script.

    On another note I think your rain sensor has the same issue I ran into. You may have discovered this since your wrote the post but the issue is that there is a bit of tape put on during manufacturing that secures the rain sensors mechanism from moving (Tipping bucket rain gauge). Anyway I didn’t see any instructions that indicated that this was needing to be removed. I ended up finding it just because I was trying to see what was broken.

    To get to tape and the sensor mechanisms just twist the base of sensor the fraction of a degree to release it an then the whole sensor comes apart. I know it doesn’t really look like you are removing anything more then the base ring but you will see when you try it.

    • Hi Ben,
      Let me know how it goes with the script.
      FYI, I have a new addition to this version that supports “Stashboard”. I’m holding off on releasing it, as think it’s a bit of an overkill for most, but let me know if you are interested and I can post it.

      Unfortunately I did remove the tape earlier on with no effects on the sensor — the dashboard still shows dashes for the rain gauge and does not show the “receiving” icon next to it either.. Did you have to do anything extra (other than ripping the tape off) to get it going at all?
      Thanks!
      -I

      • Ben

        Yes, all I had to do was take the tape off. I always got the “receiving” icon just wouldn’t show any rainfall even when I dump glass of water down it.

        I think for now I will look at what you have posted. It may take me a bit as I have more then a few personal projects building up. Plus I am mostly just interested in pushing data to Weather Underground although that may expand as time goes on.

        I will let you know how it goes. This is a great project.

        Ben

  • divinemayhemstudios

    I am currently testing this out using a webhost that allows me to run a CRON job. I will report back if it works.
    I edited the PHP to my relevant information, created a directory on my webhost and added it as a CRON job. I’m keeping my fingers crossed!

  • Markster University

    Just installed my La Crosse 84612 and wondered to myself if there was more than just using their website to view data. And lo and behold find this! Love Wunderground! I setup an account PWS on the site and then moved on to the script.
    No fancy setup or web server here. I’m just trying to run the script and get an error “PHP Fatal error: Call to undefined function curl_init() in C:WUndergroundLaCrosse.php on line 212” I’m not running a web server or anything. Windows 7 Home Premium. Installed the Windows 7 binary 5.5.11 and when I try to run the modified (with my info) script I get that error. Any ideas. Really excited to get it working.