WSParser

Fri 01 July 2016

I'm sitting at work one day, and I wanted to know, what's the weather like at home? Is it raining yet? Is it still blistering hot? To solve the problem, I purchased an Ambient Weather WS-1400-IP weather station.

This weather station does it all, and even uploads the data to Weather Underground! Except, it only uploads the data to Weather Underground. Natively, it has no support to send the data to a database of your own. One clever person figured out how to redirect the data to a device of your chosing using DD-WRT. That's pretty cool, but I want to poll the device myself and get the data.

So I wrote a python module to do it!

Usage

I've thrown the module up as a GitLab snippet.

Get it here: https://gitlab.com/snippets/21842

Before you go further, you'll need to Python 3 and the requests module.

  1. Copy/paste the code, or save the raw file to your workstation as wsparser.py.
  2. Launch a python 3 interactive shell in the same directory as where you saved the module, and do the following. Replace the url, http://wx/livedata.htm with the URL of the Live status page of your PWS.
>>> from wsparser import WSParser
>>> parser = WSParser('http://wx/livedata.htm')
>>> parser.read()
>>> parser.data
{'outTemp': '72.1', 'uv': '674', 'solarrad': '169.04', 'inTemp': '72.5',
'avgwind': '0.0', 'rainofhourly': '0.00', 'windir': '123', 'rainofmonthly':
'0.25', 'outHumi': '65', 'rainofweekly': '1.04', 'gustspeed': '0.0',
'inHumi': '70', 'uvi': '2', 'rainofyearly': '1.04', 'RelPress': '29.71',
'rainofdaily': '0.25', 'AbsPress': '24.32'}

That's it! You can now take the code and write your own Flask app, or do some other fun thing with it!

P.S., if you're curious and want to see what the weather is like in Edgewater, CO, lookup KCOEDGEW3 on Weather Underground.