Last modified on April 1, 2008
wviewweather.com - home of wview
Davis Vantage Pro/Pro2 Console Controller
Vaisala WXT-510 Controller
La Crosse WS-2300/2305/2310/2315 Controller
Weather Station Simulator
Weather Web Site Generator
Weather Alarm Processor/Data Feed Engine
Citizen Weather Observer Program (CWOP) Client
Weather Underground Client
Fast Generation • Non-GUI, Headless, Lightweight • Multi-Lingual • US or Metric Units • Extended Sensor Support • Weatherlink Archive Format • MySQL/PostgreSQL Archive • RSS Weather Feeds • Runs on the Linksys NSLU2 • Embeddable • 24x7x365 Reliability

What Is It?
wview is a collection of linux/unix daemons which interface with a supported weather station to retrieve archive records (if generated by the station) and current conditions. The stations currently supported are:

  • Davis Vantage Pro/Pro2
  • Vaisala WXT-510
  • La Crosse WS-2300/2308/2310/2315
  • Station Simulator

If the station does not generate archive records internally, wview will auto-generate archive records based on the sensor readings collected for that interval. The archive records are stored in the Davis WLK file format (thus Weatherlink-generated archive files can often be used by wview). At a configurable interval, wview will utilize the archive history and current conditions to generate weather images (buckets, dials and graphs) and HTML web pages based on user-configurable HTML templates.

Features:
  • 24x7x365 reliability.
  • Fast image and HTML/XML file generation.
  • Non-GUI, headless, lightweight (size and resources).
  • Embeddable - can be deployed on low-power embedded systems such as the Linksys NSLU2.
  • Multi-Lingual - HTML/XML templates, labels and text.
  • US (Imperial) or Metric Units - can be easily configured for metric or US units of measure.
  • SQL Storage - archive data may be stored in a relational database (MySQL or PostGreSQL). This does not replace the use of the WLK binary files but is an export-only capability.
  • Remote Upload - web pages and images can be transferred to a remote web server via an ftp or secure ssh process included with wview.
  • Alarms - the wview alarm daemon wvalarmd can be enabled to deliver current conditions to TCP socket clients as a near real-time data feed engine. wvalarmd can also be configured to function as a weather data alarm generator to user specified scripts or binaries.
  • CWOP - can be configured to submit data to CWOP.
  • Wunderground - can be configured to submit data to Wunderground.
  • WeatherForYou - can be configured to submit data to WeatherForYou.
  • Awekas - can be configured to submit data to Awekas.
  • RSS Feeds - processes XML template files and includes a default weather data RSS feed template.

What Do I Need?

  • Weather Station - one of the following:
    • Vantage Pro or Vantage Pro2 Weather Station with Console
      • WeatherLink for Vantage Pro or Pro2, Windows, Serial or USB - the windows software is not required, but this is the only way to obtain the serial or USB data logger
    • Vaisala WXT-510
    • La Crosse WS-2300/2308/2310/2315
    • Station Simulator (included, for demos and testing)
  • PC or Embedded Device to Host wview - this can be any platform running linux/*BSD/unix/MacOSX with an available serial or USB port and a network interface
  • linux/*BSD/unix/MacOSX Operating System
  • Standard Installations of: libz, libpng, libgd, radlib (2.6.2 or higher)
  • wview
  • libcurl (in the curl package) if you plan to submit data to the Weather Underground and/or WeatherForYou
  • MySQL (libmysqlclient.a) or PostgreSQL (libpq.a) client development library if you want to store archive data in a database
  • How do I install it?
    Download the most recent tarball (wview-x.y.z.tar.gz) then extract it wherever you like by executing "tar zxvf wview-x.y.z.tar.gz". In the top-level of the distribution, consult the files wview-Quick-Start.html (or wview-Quick-Start-MacOSX.html if you have a Mac) and wview-User-Manual.html for detailed building and operational instructions.

     

     

    wview Processes
    wviewd - the station interface daemon. Communicates via serial/ethernet/USB interface to obtain current conditions and archive records.
    htmlgend - the HTML and image generation daemon. Communicates with wviewd and reads archive records generated by wviewd to create the weather images and HTML pages.
    wviewsqld - the optional SQL archiving daemon. Synchronizes an SQL table to all WLK weather data records found in /var/wview/archive. Updates the table as new archive records are generated.
    wvalarmd - the alarm processing daemon. Communicates with wviewd to receive current weather data values. Listens on port 11011 for data feed socket connections, sends current weather data to socket clients, and processes user-defined alarms.
    wvcwopd - the CWOP client daemon. Transmits CWOP data to an APRS server based on the configuration found in wvcwop.conf.
    wvhttpd - the HTTP submission daemon. Transmits data to wunderground/weatherforyou servers based on the configuration found in wvhttp.conf.
    wviewftpd - the FTP transfer daemon. Transfers image and HTML files to a remote server based on the configuration found in wviewftp.conf.
    wviewsshd - the rsync/ssh transfer daemon. Transfers image and HTML files to a remote server based on the configuration found in wviewssh.conf.

    wview has been successfully deployed on many OS and hardware platforms including Linux, FreeBSD, Mac OSX (Darwin), i386, ARM and PowerPC (Mac). Check out the Weather Site Directory for some example implementations of wview.

    HTML Generation
    wview generates images and HTML files 2 to 3 orders of magnitude more quickly than Weatherlink. wview only generates the images necessary for a given time frame. Yearly historical graphs are only updated once per day immediately after midnight. 28-day historical graphs are only updated once per hour immediately after the top of each hour. 24-hour historical graphs are updated following each new archive record:

    Feb 12 23:55:04 dmzweb wviewd[7454]: <172542427> : storing record for 02/12/2005 23:55
    Feb 12 23:55:04 dmzweb htmlgend[7458]: <172542428> : Adding 5 minute sample...
    Feb 12 23:55:10 dmzweb htmlgend[7458]: <172548071> : Generated: 104 ms: 20 images, 6 htmls
    Feb 12 23:56:10 dmzweb htmlgend[7458]: <172608028> : Generated: 60 ms: 12 images, 6 htmls
    Feb 12 23:57:10 dmzweb htmlgend[7458]: <172668028> : Generated: 59 ms: 12 images, 6 htmls
    Feb 12 23:58:10 dmzweb htmlgend[7458]: <172728029> : Generated: 60 ms: 12 images, 6 htmls
    Feb 12 23:59:10 dmzweb htmlgend[7458]: <172788030> : Generated: 60 ms: 12 images, 6 htmls
    Feb 13 00:00:05 dmzweb wviewd[7454]: <172843062> : storing record for 02/13/2005 00:00
    Feb 13 00:00:05 dmzweb htmlgend[7458]: <172843062> : Adding 5 minute sample...
    Feb 13 00:00:05 dmzweb htmlgend[7458]: <172843063> : Adding hour sample...
    Feb 13 00:00:05 dmzweb htmlgend[7458]: <172843063> : Adding day sample...
    Feb 13 00:00:05 dmzweb htmlgend[7458]: <172843086> : NOAA Generate: creating monthly NOAA reports up to 20050212
    Feb 13 00:00:05 dmzweb htmlgend[7458]: <172843087> : NOAA Generate: creating yearly NOAA reports up to 20050212
    Feb 13 00:00:10 dmzweb htmlgend[7458]: <172848258> : Generated: 267 ms: 38 images, 6 htmls
    Feb 13 00:01:10 dmzweb htmlgend[7458]: <172908032> : Generated: 60 ms: 12 images, 6 htmls
    Feb 13 00:02:10 dmzweb htmlgend[7458]: <172968033> : Generated: 60 ms: 12 images, 6 htmls
    Feb 13 00:03:10 dmzweb htmlgend[7458]: <173028034> : Generated: 60 ms: 12 images, 6 htmls
    Feb 13 00:04:10 dmzweb htmlgend[7458]: <173088035> : Generated: 60 ms: 12 images, 6 htmls
    Feb 13 00:05:04 dmzweb wviewd[7454]: <173142427> : storing record for 02/13/2005 00:05
    Feb 13 00:05:04 dmzweb htmlgend[7458]: <173142427> : Adding 5 minute sample...
    Feb 13 00:05:10 dmzweb htmlgend[7458]: <173148080> : Generated: 104 ms: 20 images, 6 htmls
    Feb 13 00:06:10 dmzweb htmlgend[7458]: <173208026> : Generated: 59 ms: 12 images, 6 htmls
    Feb 13 00:07:10 dmzweb htmlgend[7458]: <173268027> : Generated: 59 ms: 12 images, 6 htmls
    Feb 13 00:08:10 dmzweb htmlgend[7458]: <173328028> : Generated: 59 ms: 12 images, 6 htmls
    Feb 13 00:09:10 dmzweb htmlgend[7458]: <173388030> : Generated: 60 ms: 12 images, 6 htmls

    Note these times were achieved on an AMD Athlon 1400.

    Image Quality
    Not only does wview generate images in a fraction of the time of Weatherlink, but the images are of a much higher quality and require far less disk space to store. wview also supports multiple-plot data charts for better comprehension:

    wview Chart (1.8K size)


    Weatherlink Chart (12K size)


    Embedded Friendly
    wview is easily embedded onto low horsepower, storage-constrained platforms:

    • autoconf and automake are used to configure the build environment
    • image generation is very fast and efficient
    • image files take up much less storage space
    • the distribution contains example cross compilation scripts
    • wview is quite robust and stable