weewx is a free, open source, software program, written in Python, which interacts with your weather station to produce graphs, reports, and HTML pages. It can optionally publish to the WeatherUnderground, PWSweather.com, or CWOP. It uses modern software concepts, making it simple, robust, and easy to extend. Here's a list of sample stations.
weewx runs under most versions of Linux, as well as Mac OS X and Solaris. Many users are running on the Raspberry Pi.
- Davis VantagePro2 and VantageVue weather stations, using the serial, USB, or WeatherLinkIP interfaces;
- Oregon Scientific WMR "USB" series (tested on the WMR88 and the WMR100N)
- Oregon Scientific WMR-918/968 series (tested on the WMR-968)
- The Fine Offset series of weather stations. These are branded by many vendors, including Ambient Weather, Watson, Elecsa, Tycon, and others. Tested on the Ambient Weather WS2080.
- Easy to install;
- Uploads to popular weather sites, such as Weather Underground and CWOP;
- Uploads to your website using FTP or rsynch;
- Extensive celestial almanac;
- Ability to create or modify skins (the look and feel of your weather site);
- Simple, but extensible templating system;
- Native support for US or Metric unit systems;
- Support for the MySQL database;
- An easy-to-understand, simple, extensible micro-kernel architecture;
- Ability to extend weewx with new services and reports;
last, but definitely not least,
- A fun, supportive Users' Group!
- 4/10/13. Version 2.3.0. Experimental support for the WMR200 and WS28xx. Various bug fixes.
- 2/14/13. Version 2.2.0 released. Weewx can now be installed using Debian (DEB) or Redhat (RPM) packages, we well as with the old "setup.py" method. New plot options for adding day/night bands and other features.
- 1/02/13. Version 2.1.0 released. Includes support for the Oregon Scientific 918/968 weather stations and for the Fine Offset weather stations. Added file uploading using rsynch (as well as FTP). Added $trend tag.
- 11/4/12. Version 2.0.0 released. Includes support for the Oregon Scientific WMR-USB series, as well as support for the MySQL database.
- 6/17/12. Version 1.14.0 released. Includes formatting for smartphones using jQuery that was contributed by user Torbjörn Einarsson.
- 10/29/11. Version 1.12.0 released. Allows more hardware configuration options to be set in the Davis EEPROM.
- 10/06/11. Version 1.11.0 released. Offers support for the Davis WeatherLinkIP. Posts UV and radiation data to the WeatherUnderground (if available).
- 3/29/11. Version 1.10.0 released. Offers extensive almanac information (such as azimuth, elevation of various planetary bodies). Includes mobile formatted page (thanks, Vince!). Tags can now override unit types. Users can reconfigure the main database, adding and dropping data types. Users can also add custom data types.
- 7/17/10. User Harry Felder has ported weewx to the Mac OS X operating system. No source code changes, but he has provided a ZIP file that includes a persistent daemon that does the start up and shut down of weewx, including after I/O errors. See the Users' Group file section.
- 7/04/10. Version 1.9.0 released. Offers a rudimentary quality control: observation values are checked to make sure they lie within a specified range.
- 4/28/10. Version 1.8.0 released. Now offers correction expressions for applying calibration corrections to your instrument. Added CWOP support. Now saves console battery voltage and transmit battery state to the archive.
- 4/15/10. Version 1.7.0 released. This is a big release with many new features, including support for skins. A skin is a collection of the templates, CSS style sheets, GIFs, and other items necessary to run a report. This makes it possible to run multiple reports against the same skin and put the results in different subdirectories. For example, US and Metric versions of a report could be produced. Many other new features including RSS feeds, support for PWSWeather, support for UTF-8 encoding, many new formatting options, etc. See the change log.
- 3/7/10. Version 1.5.0 released. This new version supports metric units in the presentation layer. It is possible to mix and match which units are used for which variables. For example, US Customary could be used for all variables except pressure, which could use millibars. Other combinations are possible.
- 2/22/10. Version 1.4.0 released. Changed to a late binding architecture for running statistical summaries. Now the SQL statements are not run until template evaluation. This reduced the memory requirements by one half, made execution slightly faster (at least on my server), and simplified the statistics code by 150 lines. Added the feature of being able to reread the configuration file without stopping the process.
- 12/22/09. Version 1.3.0 released. The internal architecture of weewx was changed. It now consists of an engine that loads and manages services. New services can easily be created. This makes weewx much easier to customize and extend for specialized applications. Posting on the Weather Underground is now just another service. Includes a sample new "Alarm" service, where an email is sent if an arbitrary expression evaluates true. New document on customizing weewx.
- 11/27/09 Ported to the SheevaPlug. Mostly, this is just like any other Ubuntu install. Most of the effort was in getting the Plug ready. Here are my install notes.
- 11/20/09 Version 1.2.0 released. Biggest new features are that it offers progressive vector plots for wind data and improved plot scaling.
I wrote weewx over the winter of 2008-2009 for two reasons: it was a wet and miserable winter here in Oregon with not much else to do, so there was no good reason not to, and because I wanted a simple, easy-to-understand server to run my Davis VantagePro2 weather station on a Linux box. I had been using wview, which is a high-performance and feature rich system authored by Mark Teel with lots of users. Written in C, it's an efficient system that can run on very underpowered boxes. In exchange, it's huge (nearly 50,000 lines of code), tightly integrated in with its companion library, radlib (another 14,000+ lines), and very complex, making it difficult to understand and reliably customize. I wanted something more modern and much, much simpler.
Having made a career in C++ and Java, I was also interested in learning some more modern languages, so I thought I'd give either Python or Ruby a try (although, truth be told, the roots of Python are nearly as old as C++!). I ended up picking Python because its libraries are more mature, and there are many more choices for third party libraries.
Weewx is well under 7,000 lines of code, plus another 4,000 comment lines. Because it is pure Python, it requires no makefiles, no builds, no special installs. It offers very powerful configuration and templating options, as well as an internally extensible engine, making it easy to customize. Its internal modular design and use of modern exception handling make it very robust and difficult to crash. It is also architecturally very simple and easy to understand.
Right now, it is Unix only. I have not tried porting to Microsoft Windows, but given the portability of Python it is likely to be a large, but not mammoth, project.
See the Users' Manual for more details.
weewx on SourceForge
svn co http://svn.code.sf.net/p/weewx/code/trunk weewx
There is Users' Group on Google: http://groups.google.com/group/weewx-user