Archive for the ‘Weather Station’ category

Meteoalarm Weather Warnings PHP WebService

January 1, 2018

Accurate, localised weather warnings are a useful addition to any weather website. Historically I have used Wunderground’s Alerts API for this purpose on my own weather website. However, at some point last year Wunderground’s Alerts API stopped returning any weather warnings for the UK even during major weather events. At the time of writing this is still the case.

I noted that Wunderground were receiving their European weather warning data from Meteoalarm. Looking at their website I found that weather warnings from the UK were being reported accurately matching exactly what the UK MetOffice (the source of Meteoalarm’s UK data) were publishing on any given day.

To my disappointment neither Meteoalarm nor the MetOffice published a webservice API for weather warnings. Meteoalarm do, however, provide RSS feeds of weather warnings for each country and region in Europe that they support.

I decided to use Meteoalarm’s RSS feeds to solve my own issue with publishing weather warnings to my website for my local area. However, I knew that directly publishing raw RSS feeds would not be not flexible enough for my needs. I would instead prefer a RESTful JSON formatted web service API which I could call via AJAX.

To this end I’ve written meteo-alarm-weather-warnings. This is a PHP API available on GitHub under the MIT License. It’s primary use case is to make it easy to incorporate the latest MeteoAlarm weather warnings into a web site while not requiring users to directly engage with the underlying RSS feeds. The web service fetches the appropriate RSS feed for a given request and parses and converts it into a consistent JSON formatted reply.

It’s functionality includes:

  1. The ability to query for all weather warnings for all regions within any European country covered by Meteoalarm for today and tomorrow.
  2. The ability to query for weather warnings for any individual region for today and tomorrow.
  3. Custom date/time formats to use for results.
  4. Custom time zone to use for date/times in results (Meteoalarm reports all date/times in CET).

For example, here is a portion of the the raw JSON results from meteo-alarm-weather-warnings for the UK on 31/Dec/2017 when several warnings were in effect:


Click to Enlarge

meteo-alarm-weather-warnings is now incorporated into my own weather web site’s weather warnings page. Here is how it looked rendering results from the web service for my local area on 31/Dec/2017:

meteo-alarm-weather-warnings on website

Click to Enlarge



Met Office Weather Maps PHP API

October 17, 2015

For those who want to add detailed weather maps of the UK to their websites an excellent option is to use the Met Office’s DataPoint web service API. Among many other features the API makes available several different types of observation and forecast time series weather maps as detailed images.

However, DataPoint still leaves users with a lot of work to do if they want to utilise the maps on their websites. For example the DataPoint API only provides the map images as simple layers with no underlying map of the UK. This gives users the flexibility of adding their own UK maps but creates one of many common problems that all DataPoint users have to solve individually.

To address this and other website integration issues I’ve made the met-office-weather-maps PHP API available on GitHub under the MIT License. It’s primary use case is to make it easier to incorporate the latest Met Office weather maps into a web site while not requiring users to directly engage with the Datapoint API.

It’s functionality includes:

  1. Wrapping the complexity of underlying JSON web service calls by exposing one simple PHP class for each available map type.
  2. Adding tailored UK map layers to fetched images that obey the required Mercator projection boundary box.
  3. Adding UK timestamps to map images where they are not already present.
  4. Operating caching to allow maps to be requested on a regular schedule. This ensures that the latest maps are fetched without making excessive calls to DataPoint which may breach their fair use agreement.

The met-office-weather-maps API supports all of the DataPoint map types:

  • Infrared satellite
  • Lightning strikes
  • Precipitation forecast
  • Pressure forecast
  • Rainfall radar
  • Surface pressure charts
  • Temperature forecast
  • Total cloud cover forecast
  • Total cloud cover and precipitation forecast
  • Visible satellite

See the met-office-weather-maps Git Hub project page for details of its requirements, installation and API documentation.

I originally wrote met-office-weather-maps for incorporation into my own weather website where I regularly fetch a selection of weather maps. I previously used Weather Underground’s map API but I find DataPoint to be far superior in terms of map selection and the high frequency of map update.

See below for some real examples that demonstrate met-office-weather-map’s capabilities.

Example 1: Surface Pressure Forecast Map

The Surface Pressure Forecast image available from DataPoint is a transparent layer depicting isobars and fronts:

Click to Enlarge

The same image after processing by met-office-weather-maps. Note the addition of a timestamp and a colour base image of the UK:

Click to Enlarge

Example 2: Visible Satellite Map

The Visible Satellite image available from DataPoint is an opaque layer depicting cloud cover:

Click to Enlarge

The same image after processing by met-office-weather-maps. Note the addition of a yellow outline overlay image of the UK which does not obscure the existing image layer’s timestamp and key:

Click to Enlarge

Example 3: Temperature Forecast Map

The Temperature Forecast image available from DataPoint is a partially transparent layer depicting colour-coded screen temperature:

Click to Enlarge

The same image after processing by met-office-weather-maps. Note the addition of a timestamp, a colour base image and a black outline overlay image of the UK:

Click to Enlarge

Example 4: Cloud Cover and Precipitation Forecast Map

The Cloud Cover and Precipitation Forecast image available from DataPoint is a transparent layer depicting cloud cover and colour-coded precipitation rates:

Click to Enlarge

The same image after processing by met-office-weather-maps. Note the addition of a timestamp, a colour base image and a black outline overlay image of the UK:

Click to Enlarge

Cirrus Pebble WatchApp for Weather Display Live

January 17, 2015

I don’t mind admitting that I am a bit obsessed about the weather. I am especially fastidious in keeping up with the current conditions where I live. This has manifested itself in several of my recent coding projects that display data from my weather station including my own web site, a web service, a PiFaceCAD based console and an android app widget.

I bought a Pebble smart watch last year on a whim and have found it useful for its notifications of texts, emails and phone calls (I keep my phone on silent so the Pebble’s vibration based notifications are especially handy). Given I have access to my weather station’s data on all of my other devices doing the same with the Pebble was a logical choice for a new project.

Previous weather projects I have written have directly fetched and processed Weather Display Live’s clientraw.txt file. For my Pebble watch application I wanted to make more use of my own web service. This would simplify the coding process as the service, unlike clientraw.txt, exposes weather data in a well-defined structure and many different measurement units. In addition PebbleJS toolkit has built-in support for making http calls to JSON-based web services.

I coded the application in Javascript using the CloudPebble website. For a browser based IDE CloudPebble is very feature rich with syntax highlighting, github integration and logging. It also has the ability to deploy directly to a pebble watch provided you have a paired smart phone for the watch on the same wireless network as the computer running CloudPebble.

The only other code that was required was a web page to expose configuration settings for the application. This currently has to be hosted on the web. In my application’s case this page allows the configuration of the web service URL and a choice of metric or imperial weather measurement units.

The finished application makes use of the Pebble’s menu UI. It populates a top-level menu of current weather data including temperature, surface pressure, humidity, rainfall and wind. Selecting any of these top-level menu items displays a sub-menu of more in-depth information for the particular measurement including daily high and low values.

As usual my code is open source and hosted on github. It can be found here: pebblejs-watchapp-cirrus.

Click to Enlarge

Click to Enlarge

Cirrus Android Widget for Weather Display Live

December 13, 2014

One of my recent projects was to develop an Android widget to display the values found in online WD Live clientraw.txt files. It accesses the same data as my other weather related code projects this year: a JSON Web Service for Weather Display Live and a PiFaceCAD Weather Display Console.

I’ve name the Widget “Cirrus” after the cloud genus. The widget supports 18 different weather data points (and displays the current trend for many of these) and 16 different measurement units. It also has colour coding for easy recognition of different temperature ranges (using the BBC Weather temperature colours) and UV index (using the US EPA UV Index colours).

Click to Enlarge

Click to Enlarge

I use the widget to display the current conditions for both my own weather station and others when I travel. So far I have installed and run it successfully on a Samsung Note II (Android 4.4.2), Samsung Galaxy Express (Android 4.1.2) and a 2013 Nexus 7 (Android 5.0.1).

At this time I do not have any plans to publish the widget on the Google Play Store. I have, however, open sourced the code using the MIT License and made it available via GitHub here:

See the read me for installation and use instructions.


Weather Station Winter Report

November 21, 2014

The onset of Meteorological Winter is a little over a week away here in New Jersey (it runs from 1st Dec to 1st March). Last year’s winter here represented a period of prolonged cold and quite sizeable snow fall. It was certainly more severe than anything my weather station setup experienced in the preceding years in Scotland (although note that the station was only installed there in August 2011 after the severe winters of 2009 – 2010 and 2010 – 2011).

This post relates my experiences with my weather station from last year’s winter (2013 – 2014) and is a record of what worked well and what did not work so well. I run a standard Oregon Scientific WMR200 setup and will describe how well each of the sensors stood up to the harsher than normal conditions. I have illustrated the post with pictures taken at the time and supplemented with various charts produced using my Meteo Sheeva setup.

Winter 2013 – 2014 in New Jersey

Last winter New Jersey, like many parts of the USA, was in the grip of a prolonged Polar Vortex. There were certainly colder places in the USA that winter. There were also places that got a lot more snow. Indeed, according to meteorological records, New Jersey has itself had much colder and more snowbound winters in its past. What made it unusual was how prolonged the cold was and, as a result, just how long the deep snow was able to persist.

Click to Enlarge

Click to Enlarge

As I have already mentioned it was very cold. The coldest it got according to my instruments was -15.7°C on the morning of 7th January 2014. What was really extreme was that the temperature could remain entirely below freezing for days at a time. The chart below shows the number days per month from December 2013 to February 2014 when the temperature did not rise above 0°C. January was especially gruelling with 14 of 31 days spent entirely below zero.

Click to Enlarge

Click to Enlarge

The following chart shows the minimum temperature for every day from the start of December 2013 through to the end of February 2014. Extended cold like this quickly becomes wearing on people and machines alike.

dec - feb min temperature

Click to Enlarge

Note the spike in minimum temperature on 22nd December 2013 (to 13.7°C). This is not a sensor anomaly and I remember that day well. Preceded by some rather cold days the temperature got up to 20.6°C. This made for shorts and t-shirt weather for one day in December. As we can see from the chart the warm weather did not last long and temperatures plummeted and stayed cold thereafter.

Then there was the wind chill. This dropped to a low of -21.3°C on the same morning as the lowest temperature was recorded. I suspect that the wind chill was worse than this in reality as my anemometer is not in the most exposed of locations. The graph below shows the daily minimum wind chill from late December 2013 (when the sensor was installed) through to the end of February 2014.

Click to Enlarge

Click to Enlarge

Finally there was the snow. Up to 2 feet was present on the ground for weeks at a time. The problem was not that it snowed an incredible amount. Instead what did fall remained for weeks at a time because of the consistently low temperatures.

snow depth

Click to Enlarge

Weather Station Sensor Location

The siting of my weather station’s sensors has some bearing on my experiences last winter so I will describe that briefly here.

I am not entirely happy with my weather station setup at the moment. Unlike my previous setup in Scotland I am constrained in terms of space having no garden or roof to speak of. The anemometer/wind vane and rain gauge are installed fairly low down on the makeshift box and pole arrangement pictured below (a UV sensor is also pictured but this was not actually installed until mid-2014). The Temperature/Humidity sensor is better situated and can be found round the corner on another pole in a spot well sheltered from the sun.

Click to Enlarge

Click to Enlarge


Before I turn to each sensor’s winter performance I will talk a little about batteries. Oregon’s various sensors are wireless and are therefore powered by AA or AAA batteries. Conventional wisdom in weather station circles goes that it is best to swap from alkaline over to lithium batteries when it gets cold as they perform better in such conditions. I stuck it out with normal alkaline batteries last winter and suffered no signal drop-outs from my sensors. Lithium based batteries are no doubt better for extremely cold conditions but they are an unnecessary expense for the kinds of conditions I saw last winter.

Temperature/Humidity Sensor

The WMR200 comes complete with a THGN801 temperature and humidity sensor. The sensor is a relatively small box installed within a plastic weather shield. Mine is mounted on a pole about a metre off the ground. During the winter the shield did its job well as it became heavily encrusted with ice and protected the sensor which kept reporting consistently with no signal drop-outs throughout the winter. The shield even sported a 30cm icicle at times as pictured below.

Click to Enlarge

Click to Enlarge

Ice was a real hazard generally last winter. Indeed the accumulated ice managed to bow the previously vertical trees near the sensor to be almost horizontal under its weight.

winter weather

Click to Enlarge

The only let down with the THGN801 was a strange behavior that manifested whenever the air temperature dropped to -10°C. Whenever this occurred the humidity would continue to be reported by the sensor but would not vary until the temperature rose above -10°C at which point it would start to report the true value again.The following chart shows this behavior starting at just after midnight on the 7th of January and persisting until mid-morning on the 8th of January (where the blue plot goes flat).

Click to Enlarge

Click to Enlarge

Basically the humidity reported by the THGN801 below -10°C will almost certainly be incorrect and as will the associated dew point. Various weather forum searches have informed me (for example, here) that this is not an individual sensor fault but an endemic problem with the THGN801 and other similar sensors . If I lived in an area with frequent -10°C cold I would not be relying on Oregon gear.

Anemometer / Wind Vane

The WGR800 is a combined anemometer and wind vane. Mine is mounted, less than ideally, on a relatively short pole. The sensor performed well with no signal drop-outs all winter. The only issue I had with it was with the wind vane component on top and I put this at least partly down to its low position. When heavy snow fell on it overnight it could become encrusted on the vane which froze and locked into a single fixed position. Pictured below is one occurrence of this (note the rain sensor is starting to disappear beneath the snow. More on this below).

Click to Enlarge

Click to Enlarge

While frozen the wind vane reported a constant (and incorrect) wind direction until it defrosted sufficiently to move again. This wind vane would typically only be frozen for a few overnight hours at a time when there was heavy snowfall. One such instance is charted below when there was wind but a suspiciously constant South-Easterly wind.

wind vane frozen 25 jan

Click to Enlarge

Rain Gauge

The final outdoor sensor I had last winter was the PCR800 rain gauge. There is not much to say here as it was completely buried under deep snow for much of last winter as pictured below. Once it was buried I felt it was safer (for it and for me) to leave it there insulated under the snow until it was revealed in the thaw. Despite its imprisonment it reported (understandably zero rainfall) constantly with no signal drop-outs throughout the winter.

Click to Enlarge

Click to Enlarge

Winter 2014 – 2015 in New Jersey

My setup remains the same as it did last winter apart from the addition of a UVN800 UV sensor. Customer reviews show this to be a particularly delicate sensor prone to permanent failure in colder conditions. Given that temperatures here are already falling frequently below zero and UV is already a distant summer memory I have already mothballed the sensor until spring comes around.

The rain sensor did fail the following May when it was hit by 11.5 cm/hr rain. As a result its innards got a bit wet and no amount of drying could get it to signal consistently again thereafter. I have since replaced it with a spare unit. The question is, did its icy incarceration shorten its time span? I will never know but if my replacement rain gauge starts to become entombed in the same way this winter I will fish it out and bring it inside. There is no point in risking it in conditions where there is no rain to report anyway.

With a week to go and temperatures already plummeting here I have prepared all of the deployed sensors with new batteries. All that remains now is to see what this winter will bring to my corner of New Jersey.

JSON Web Service for Weather Display Live

October 26, 2014

I’ve been busy implementing a new website for my weather station over the last few weeks at Wayne’s Weather.

There are a number of new technologies being employed. I’ve ditched my bespoke (and ugly) HTML and instead use Bootstrap for a client responsive UI. Chart and image viewing is now more user-friendly thanks to Lightbox. I have also made extensive use of JQuery to pull in information from various sources and to provide a more dynamic experience.

The functionality of the site has also been extended. There are now more in-depth current readings supporting both metric and imperial measurements, forecasts and weather maps from for the local area have been integrated and I have added a weather webcam and a weather almanac. I intend to write posts to cover the wunderground and webcam build outs soon.

For now this post will concentrate on an unexpected off-shoot of my efforts: a Web Service that exposes Weather Display Live data.

Weather Display Live

Weather Display (and its equivalents such as MeteoHub) can generate clientraw.txt files containing a weather station’s readings and can upload them to a web server periodically and frequently via FTP (in some cases every minute). The primary purpose of this is to drive a Weather Display Live (WDL) dashboard:

Click to Enlarge

The WDL clientraw.txt format is well documented and I have previously used the HTTP addressable clientraw.txt to drive a custom Android widget and my PiFaceCAD Weather Display Console. The disappointing aspect is WDL itself. Don’t get me wrong it’s an excellent weather dashboard and I still have it available in my new website. The problem with it is that is Flash based which is not as widely supported as it used to be. It’s pretty much not an option for mobile device clients running IOS or Android, for example.

To counter this I wanted my new website to make far greater use of the information contained in the clientraw.txt files outside of WDL dashboard itself. My old weather website made use of PHP to grab weather readings from clientraw.txt and place them into web pages before serving them up to the client. This was an approach I wanted to move away from.

I’d just cut my teeth on using JSON formatted web services with my experience as a client to the Wunderground API. I liked the idea of having a page load its own data from the client side where it could conceivably be mix and match data from various services. I figured it wouldn’t be too difficult to create my own web services to expose WDL data and call them from my own web site.


I settled on using PHP for the implementation for a couple of reasons. Firstly because I’ve used it for server-side processing on-and-off for a few years and know if fairly well. Secondly because I intended to write a general solution which I could open source for others to use and PHP is ubiquitous in the hosting world.

The result was json-webservice-wdlive, a JSON formatted web service API.

The API exposes two URLs. The first URL returns current weather conditions including Temperature, Pressure, Rainfall, Wind, Humidity, Dew Point, Wind Chill, Humidex, Heat Index and UV. The second URL returns a weather almanac for Month-to-Date, Year-to-Date and All Time records. Both JSON and JSONP (enabled with the addition of a callback attribute to the URL) are supported.

Besides exposing the data in the default units found in clientraw the responses also contain many alternative units. For example, clientraw files store wind speeds in knots. The Web Service responses, on the other hand, respond with Bft, knots, km/h, mph, and m/s.


Click to Enlarge

Note that I only expose the data I need for my own purposes (i.e. what my weather station setup supports). However, it would be a simply matter to expand the service calls to add, say, solar measurements or extend the selection of almanac measurements. Anything else WDL clientraw.txt files provide can be exposed, if required, with minor code additions.

I have made the json-webservice-wdlive source code available as a GitHub project. Have a look in the project’s README for installation instructions. json-webservice-wdlive is also running live on my own weather website. You can try it at by clicking on the links below:

Refer to the GitHub project page for more details on the Web Service’s response fields including the different measurement units and number field formatting details.

I also make use of the service in three places on my own website: the Current Conditions, Weather Almanac (pictured below) and the Forecast page where I mix my service’s results with those from the Wunderground web service.


Click to Enlarge

If you have a WDL enabled website feel free to install json-webservice-wdlive to expose your weather data to others and/or to include your information in your own pages.

PiFaceCAD Weather Display Console Build Out

July 19, 2014

I bought a Raspberry Pi back when they were first released in February 2012. It was purchased with the intention of setting it up as data logger for my WMR88 weather station. I got it up and running for that purpose using wview. However, I soon found a better solution for my data logging requirements in the Meteo Sheeva.

The Pi then found its way into a box and remained there unpowered for over two years. I wanted to put it to good use but no ideas were forthcoming to utilise it. Then inspiration struck.

I had just completed an Android application widget that could poll the WD Live files hosted on a website and display the current weather conditions therein. I use it on my smart phone to see the current conditions at home. Could I use the same principle to create a custom weather display console? It seemed like a cool little project and would put the Pi to good use at last.

The first thing I needed was some kind of simple, dedicated display for the Pi. Trawling the web I found a few products on offer that did just that. Unfortunately they all required soldering which I’m just not brave enough to try. Then I discovered the PiFace Control and Display (PiFaceCAD).

The PiFaceCAD is a neat bit of kit. It attaches to a Pi via its GPIO ports and provides a small backlight 16×2 character screen, five buttons, a three position navigation switch and an IR receiver. All of these features are programmable via Python. I ordered it and the compatible Camden Boss case from MCM and they arrived a few days later.


The assembly was a little fiddly as the Camden Boss case is a very tight fit around the Pi and PiFaceCAD. I’ve illustrated the process in the pictures below.

The unboxed PiFaceCAD:


Click to Enlarge

The unboxed case with the included rubber feet. I prefer clear cases if I can get them as they are more interesting to look at than opaque cases:


Click to Enlarge

My Pi ( a Model B Rev 1) maneuvered into the bottom half of the case. It’s a tight fit to get it in place, especially the composite video port:


Click to Enlarge

The PiFaceCAD attached to the Pi via its GPIO pins. Getting the PiFaceCAD into the bottom half of the case is difficult as the five buttons have to fit into small cut outs. I was sure I was going to break something but fortunately I didn’t:


Click to Enlarge

The top of the case snapped into place. Again it’s tricky to fit it around the Pi’s USB and Ethernet ports:


Click to Enlarge

Finally the assembled unit powered up, with the PiFaceCAD software installed and running the supplied SysInfo demo program:


Click to Enlarge

Coding in Python

With the hardware up and running the next step was to code the weather display application itself. The PiFaceCAD provides a functional, easy to use Python API. The API exposes the ability to write to the display, control its backlight and add event handlers to the various buttons and the IR receiver.

I had never coded in Python before (Java has been my mainstay for last few years with the occasional foray into PHP and C#) but found it to be a straightforward language to pick up with a gentle learning curve and excellent documentation. The language’s dynamic typing took a little getting used to given my background but I started the exercise prepared to learn new ways of doing things (I did not want to “code Java in Python”). Coming from Java I really appreciated the lack of boilerplate code required by Python and just how little code it took to get things done without sacrificing readability. I expect to be doing a lot more coding in Python in the future.

Python’s library support is also excellent. I was pleased to find a JUnit like capability in the “unittest” Module and made use of decimal, urllib, threading and time modules in my solution (as well as creating a few modules of my own to handle, transform and format weather data).

What I did not do was code on the Pi itself. I instead coded the project on my Macbook using the excellent PyCharm Community Edition IDE from JetBrains. I periodically uploaded my unit tested solution to my Pi via FTP for integration testing. The code targets Python 3.2.3 which was the version available on my current version of Raspbian (released Jan 9th 2014).

pifacecad-wdlive on GitHub

The result of my endeavours was the pifacecad-wdlive application which I have hosted on GitHub. If you are interested in installing pifacecad-wdlive then head to the README for setup instructions. If you want to fork pifacecad-wdlive to add extra capabilities then all of the source code and unit tests are available in the GitHub project.

The current version of pifacecad-wdlive supports 16 different weather displays which are selectable using the PiFaceCAD’s navigation switch (this switch also controls the backlight) and 16 different measurement units toggled using the PiFaceCAD’s buttons. Better yet all of these functions can be controlled via a normal IR remote control (I have mine working via my XBox 360 remote). The application can be configured on the command-line to point at any WD Live enabled website and polls for updated weather conditions every 60 seconds.

Finishing Touches

If my Pi ever lost power I did not want to have to start pifacecad-wdlive manually every time the Pi restarted. To execute pifacecad-wdlive on startup I added the following line to the Pi’s /etc/rc.local file:

su - pi -c "python3 /home/pi/pifacecad-wdlive/" &

Those wanting to do the same will want to adapt these lines to match their particular pifacecad-wdlive installation and clientraw.txt URL.

A normal weather display unit such as the WMR88 or WMR200 can display weather anywhere it can receive mains power and wireless sensor data. My PiFaceCAD, on the other hand, was shackled to an Ethernet cable. I decided to make my setup a little more portable by adding a wireless adapter to the Pi. I picked up an Edimax Wifi USB from Amazon to accomplish this.

A wasted hour of following various (conflicting) manual instructions on the web ensued as I tried and failed to set the wireless adapter up on the Pi. I then stumbled on and installed wicd-curses and promptly got the Wifi working.

My one concern in using a Wifi USB adapter was that of power. I feared that having the Wifi USB adapter and the PiFaceCAD connected to the Pi at the same time may require me to use a powered USB hub. Fortunately my 0.7A Samsung phone charger was up to the job so a powered hub was not required.

Here is the finished build out complete with Wifi adapter and displaying pifacecad-wdlive’s summary weather display screen for my own weather station:

Click to Enlarge

Click to Enlarge

I’m quite pleased with how the build out has turned out. While it would probably have cost around the same money to buy a new weather display console from Oregon creating this was a lot more fun and satisfying.

UVN800 Wireless Remote Sensor Review

April 13, 2014

Until recently I lived in Scotland where UV is hardly ever an issue given the hideous weather we tend to get there. However, I now live in New Jersey in the USA where the summers can be very hot and the risks of UV exposure are more of a concern for me. Given that I took my weather station with me when I relocated (which comprises of both the WMR88 and WMR200 base stations) it made sense to consider expanding its capability to record UV.

One of the advantages of Oregon Scientific’s range of wireless weather stations is the ability to add extra sensors. I have, for example, previously taken advantage of this by adding an additional temperature and humidity sensor in the form of a THGR810 unit.

Both of my base stations also support a UV sensor in the form of the UVN800. This sensor is not normally bundled with the WMR88 or WMR200 but I purchased one recently as an add-on. The unit normally retails for $59.99 but I was able to pick it up for $43.79 from Amazon (not including sales tax). Both the full and discounted prices are on par with what I would expect to pay for other additional sensors such as the THGR810 mentioned above. It arrived undamaged and well packaged in a relatively small box:

UVN800 boxed

Click to Enlarge

Upon unboxing I was presented with the UVN800 unit itself, a wall mount with two screws, a ground spike, AA batteries and instructions.

UVN800 unboxed

Click to Enlarge

This provided me with two different installation options. Either use the ground spike to insert the sensor in the ground or the wall mount and screws to attach it to a wall or pole. I chose the wall mount option which I attached to my existing sensor pole. However, I appreciate the flexibility of the ground spike option. The trick with the UVN800 is to orient it such that the UV sensor on top of it has a constant, uninterrupted view of the sky which I could more easily achieve with the pole mounting.

UVN800 mounted

Click to Enlarge

Installation of the UVN800 is fairly straight forward if a little more awkward than it could be due to some weird choices made by the unit’s designers. First of all accessing the battery compartment requires the removal of four small screws from the base of the unit to access the battery compartment. Why the compartment is not accessed by a sliding mechanism like most of Oregon’s sensors is a mystery.

Secondly the wall mount is screwed into place at the bottom of the unit obscuring the battery compartment and reset button. Given my pole mounted configuration changing batteries will be far more time-consuming than it should be. I will have to unscrew the wall mount from the pole, detach the sensor from the wall mount, remove the screws from the battery compartment. Only then can I change the batteries and will then have to reverse the procedure to reinstall the unit.

So far this is my only gripe with the UVN800 and it is not a deal breaker by any means. One the batteries were installed pairing it with my base stations was as simple as hitting the sensor’s reset button and initiating a search from each base station. They both started displaying UV Index readings straight away. On both the WMR88 and WMR200 this takes the form of a live UV Index display and a graph of the last 10 hours of values.

Having UV Index values displayed on my base stations was just the start, however. I publish weather data to my own website and wanted to add UV Index information to it. I use a Meteo Sheeva connected to my WMR200 as a data logger and to do uploads of weather readings and graphs to my website. As expected it was a snap to get it to start logging data from the UVN800. As an example here is one of several graphs I have configured on the Meteo Sheeva which display the last 7 days of maximum UV Index values:


Click to Enlarge

My Meteo Sheeva also uploads data in WD Live’s clientraw.txt format which includes UV Index readings. I have rearranged my existing WD Live console on my website to incorporate a UV Index bar:


Click to Enlarge

Returning to the UVN800 itself there is one more thing to note. The reviews on Amazon for the UVN800 indicate that many units permanently fail just after a year of operation. At the time of writing I have only been operating the sensor for a few days but will add a note to this review if and when it fails.

Should the sensor last at least a couple of years (as all my other sensors have already done) then I would not hesitate to recommend the UVN800 as a useful, easy to use addition to an existing Oregon Scientific wireless station.

Meteo Sheeva

November 23, 2013

Late last year I purchased a Meteo Sheeva to log the data from my WMR200 weather station. While the WMR200 is supposed to function as a simple data logger Oregon Scientific’s awful software renders the feature useless. Therefore, to log data from the WMR200, I required a separate connected computer. My requirements for a data logging machine were that it be:

  • capable of logging the data from my WMR200’s sensors
  • able to publish my  weather data live to the internet
  • compact
  • low-cost
  • turn-key

The Meteo Sheeva fulfills all of these requirements and then some.

A Meteo Sheeva is actually a combination of two things. Firstly there is the “Sheeva” part. This takes the physical form of a SheevaPlug Linux-based compact computer. Secondly there is the “Meteo” part. The Meteo Sheeva ships with an SD Card preloaded with a demo version of the Linux-based MeteoHub data logger software. I purchased the Meteo Sheeva unit from a UK vendor called New IT for £130 and licensed the MeteoHub software from Smartbedded for £50.

For me this is a relatively low price purchase compared to dedicating a full size machine to data collection. I could have created a data logger for less money by configuring a Raspberry Pi with, say, wview. However, I was more interested in my particular solution being turn-key in nature than in saving more money.

The SheevaPlug fufills the compact requirement as it measure only 11 x 7 x 5 cm. This makes it bigger than a cased Raspberry Pi but still small enough to tuck out of sight. This picture shows my SheevaPlug next to a beer mat for comparison purposes.

Click to Enlarge

Click to Enlarge

Like the Raspberry Pi the SheevaPlug runs off of a SD Card. It is powered off the mains via a detachable radio type power cable. For connectivity it has a USB socket to connect to a weather station and has an ethernet port for networking.

The unit’s setup is indeed turn-key and couldn’t be much easier. I simply connected the SheevaPlug to the mains, attached it via USB to the WMR200 and to my router using an ethernet cable. Once powered up all interactions with the MeteoHub software are made via a web browser and a simple web-based UI. All I had to do to start data logging was access the Weather Station section of the UI, specify that a WMR200 was connected and then select which of the automatically detected sensors I wanted to log data from.

The MeteoHub interface is simple, uncluttered and well organised. For example, here is Sensors page which shows the current status of all connected weather sensors:

Click to Enlarge

Click to Enlarge

The MeteoHub manual is excellent. The manual covers every detail of the software’s capabilities. This is invaluable, not because the MeteoHub software is difficult to use, but because of the massive amount of functionality it provides. I will describe a small subset of the main features which I have found to be the most useful for my own requirements. Bear in mind that MeteoHub is capable of much more than I make use of.

The first feature I started experimenting with was the ability to specify charts from the logged sensor data. I focused on bar and line charts but there are many more options available as well as flexible configurations for time period, aggregation buckets, scales and colours. With limited UI-based configuration I was able to create charts for all of my weather data types over many different time periods.

Here are a selection of some of the charts I have specified for my own setup:

Last Day of Maximum Wind Speed, Gust Speed and Wind Direction:

Click to Enlarge

Click to Enlarge

Last Day of Temperature, Humidity and Dew Point:

Click to Enlarge

Click to Enlarge

Last Month of Daily Surface Pressure Ranges:

Click to Enlarge

Click to Enlarge

Last Month of Daily Maximum Wind and Gust Speeds:

Click to Enlarge

Click to Enlarge

Last Year of Total Monthly Rainfall (data logging started in September):

Click to Enlarge

Click to Enlarge

Any of the charts can be displayed via the MeteoHub UI at any time. However, the charting feature really come into its own when combined with the automated FTP upload feature. This can be used to publish updated charts to a website on a pre-defined schedule. I use this feature to publish my setup’s charts to my own weather website.

MeteoHub can also automatically publish its data via FTP in WD-Live format. This makes it capable of feeding the Flash-based Weather Display Live dashboard. This is separate software from another vendor but costs only $40 and enables a dynamic and attractive looking weather dashboard which is highly configurable. This is my particular online weather dashboard:

Click to Enlarge

Click to Enlarge

Weather data can also be pushed to more than two dozen online weather services including WeatherBug, Weather Underground and the UK Met Office. For example, here is my data displayed on the Met Office’s WOW website:

Click to Enlarge

Click to Enlarge

Publishing my weather station’s data to my website in WD-Live format had an interesting side benefit as I could use it to view my weather station’s latest readings from my smart phone. The paid-for but inexpensive Android Weather Watch Widget can be pointed at the WD-Live data file’s location and display the latest conditions for my weather station:

Click to Enlarge

Click to Enlarge

In short I cannot recommend the Meteo Sheeva highly enough as a weather station data logger. Even though I only take advantage of a subset of its capabilities the features I do use make use of make it more than worth the money I have invested in it. You can get a cheaper and smaller solution using a Raspberry Pi. However, if you want something that works out of the box then the Meteo Sheeva cannot be beat.

WMR200 Weather Station

December 28, 2012

Towards the end of last year I wrote a three part post about my new Oregon Scientific WMR88 weather station (part 1part 2part 3). While the installation was successful the setup was not completely reliable. I concluded the final post stating:

“If I am serious about logging and publishing my weather station’s data I will have to invest in some better kit to minimise gaps in the data. I have my eye on the WMR200 and may purchase one next year. The WMR200 has a built in data logger and a hefty looking external antenna which unlike the WMR88′s internal antenna I can, if necessary, modify. Also it should be possible to use the same suite of sensors simultaneously for the WMR200 and my existing WMR88 base station. This means that I can have two operational weather consoles and a set of spare sensors.”

Six months ago I did exactly that and purchased an Oregon Scientific WMR200. The idea was to compliment, rather than replace, my existing setup. This post details my experiences with this new weather station. Note that in this post I tend to compare the WMR200 with the WMR88 so you may want to read my original posts on that first.


The WMR200 currently retails for £400. However, Amazon, Weather Shop UK and Oregon Scientific themselves tend to offer the unit at up to £120 cheaper from time to time. It pays to be patient and wait for such a deal rather than pay full whack. I ordered directly from Oregon as they had the cheapest price at the time.


When the WMR200 arrived the most striking thing about it was how much bigger it was boxed than the WMR88:

wmr200 boxed

Click to Enlarge

Then again you get a lot more with the WMR200 to help justify the extra cost. Pictured below are most of the package’s contents:

  • PCR800 Rain Gauge with rain filter
  • THGN801 Temperature and Humidity Sensor
  • WGR800 Wind Sensor (Anemometer & Wind Vane)
  • STC800 Solar Panel
  • USB Cable for connecting the base station to a PC
  • Batteries for all sensors and the base station
  • A mounting pole in three sections, base, rope, fasteners and stakes for ground mounting
  • Cable ties
  • Various brackets U-bolts and screws to allow for other mounting options
wmr200 unboxed 1

Click to Enlarge

The remaining contents are the WMR200 base station itself and its power adapter which are shown below:

wmr200 unboxed 2

Click to Enlarge

The included kit allows for a lot of flexibility as to how the sensors are installed, more so than the cheaper WMR88. All sensors bar the rain sensor can be placed together in a single array using either the supplied pole or an pre-existing one. Alternatively sensors can be distributed across separate locations using the supplied brackets. For example, attached to fences or buildings. The supplied pole which, in combination with the supplied ropes, fasteners and stakes allow for the option of a ground mounting which  gives substantial height to the sensors.

Sensor Installation

I had already installed a mounting pole for the WMR88’s wind sensor so used it and the supplied brackets to install the wind sensor (pictured top), solar panel (pictured bottom right) and temperature/humidity sensor (pictured bottom left) together in the same location:

wmr200 sensors

Click to Enlarge

The WGR800 wind sensor supplied with the WMR200 is the same as the one that comes with the WMR88. The curious thing is that the WMR88 manual states that its wind sensor transmits a signal every 56 seconds while the WMR200 manual says signal transmission occurs every 14 seconds. Certainly each station updates their displayed wind readings at the stated intervals. Clearly the longer display interval on the WMR88 base station is a limitation of the base station rather than the wind sensor which transmits more frequently.

The THGN801 temperature/humidity sensor that comes with the WMR200 is shielded unlike the THGN800 that came with the WMR88 (I had built a shielded housing for the THGN800 which I can now decommission). While the THGN800 had clearly been superseded it was not completely obsolete. I simply changed its broadcast channel from 1 to 3 and moved it into a room in the house so I could see readings from there (as detailed here I had already installed a THGR810 sensor on channel 2).

The STC800 solar panel is a nice addition as it helps to power the WGR800 and THGN801 and will hopefully save on replacement batteries. It has two cables attached to it which can be plugged into each of the aforementioned sensors. The connections look to be well insulated and the supplied cable ties can be used to attach the power cables firmly to the sensor brackets.

I had no cause to replace or move the existing rain gauge as the same rain sensor is supplied with the WMR88 and WMR200: the PCR800. The bonus with the WMR200 is that you get a rain filter in the form of a fine metal grille to place in the gauge to catch debris. I have placed this in my existing PCR800. See my previous post for details of the PCR800’s mounting on the side of my shed.

In summary my current sensor setup now comprises:

  • THGN801 for outside temperature/humidity
  • WGR800 anemometer & wind vane
  • STC800 solar panel to help power the THGN810 and WGR800
  • PCR800 rain gauge
  • THGR810 for temperature/humidity in the garage
  • THGN800 for temperature/humidity in the house (placed in a different room from either base station to compliment their readings)

All of the sensors now in place are compatible with both the WMR88 and WMR200 base stations. As the sensors simply broadcast both base stations can receive data from all of the sensors.

This hybrid setup has also provided me with unused backup sensors for both wind (WGR800) and rain (PCR800). Given the extortionate cost of replacement sensors these are handy items to have in case of failure in one of the original sensors.

Base Station Installation

The WMR200 base station is a super-charged version of the WMR88 capable of doing everything the cheaper unit can do and more. First I will cover the similarities between the two before looking at the differences.

Like the WMR88 the WMR200 functions as an internal temperature and humidity sensor and as an air pressure sensor. The WMR200 has an optionally backlit LCD display similar to the WMR88. The WMR200 also features the same clock synchronisation feature as the WMR88. Both units can be powered from the mains and be loaded with backup batteries.

The WMR200 displays the same information as the WMR88 (temperature, dew point, humidity, wind, rain, pressure, UV, historical highs and lows, forecast, moon phase and current time) but its larger screen means that it can display more of this information at the same time. For example, the WMR88 can only display one set of temperature and humidity readings at a time while the WMR200 can display the internal base station readings and the readings from a selected channel simultaneously. The WMR200 can also display rain, UV and atmospheric pressure readings at the same time while with the WMR88 you have to cycle between the values. This makes it possible to review the current conditions at a single glance.

The WMR200’s screen features a resistive touch screen rather than the physical buttons of the WMR88. This makes the operations of cycling between sensors, checking highs and lows, etc far more intuitive. Unfortunately the WMR200 has preserved the WMR88’s annoying feature of beeping whenever the touch screen is pressed. This again cannot be switched off.

The WMR200 also functions as a data logger. However, Oregon Scientific’s included software remains as useless as ever so accessing the stored data is nigh on impossible. This is not an issue for me as I now use an external data logger connected via USB (more on that in a future post).

The WMR200 supports up to 10 channels and therefore up to that number of temperature/humidity sensors while WMR88 only supports 3 channels.

Below is a picture of the base station mounted to a wall (easily accomplished as there are mount points on the back):

wmr200 base station

Click to Enlarge

The final advantage of the WMR200 over the WMR88 is the external antenna. Oregon Scientific’s wireless weather stations are famously awful at reliably picking up remote sensors. I did not expect a great improvement with the WMR200’s rather tiny antenna but at least it gave me scope to apply simple modifications to improve performance which I could not hope to accomplish with the WMR88’s internal antenna.

So is the WMR200’s external antenna more reliable than the WMR88’s internal antenna? That is difficult to say. What I can say is that it is far from perfect. My first site for the WMR200 was less than 10 meters from all sensors with an internal wall and brick wall inbetween. This location gave intermittent signal issues. A complicating factor was that this location was also my office and contains my laptop and router. I suspect that these may have been responsible for some interference with the signal.

After a few weeks of experimenting I had moved the base station into the upstairs hall which gave it almost line of sight to the sensors via a window. This took the interior wall out the equation and eliminated any interference from electronic devices. The new location experienced less signal drop-outs but did not cure them completely. I then implemented a simple modification by attaching a metal radio aerial to the existing antenna using a bulldog clip:

wmr200 base station with antenna long

Click to Enlarge

Since the base station move and my simple modification I have experienced minimal signal drop outs. Specifically, a few weeks apart and lasting no more than 5 minutes. This is more than acceptable for my purposes. Getting the best from the WMR200 appears to be a combination of closest location to sensors, line of sight to sensors or minimal obstacles, minimal electronic interference and putting more metal in the air.

I have attached my data logger via the supplied USB cable to the WMR200 through the wall. The WMR88 has been relocated to the living room downstairs for display purposes. Handily this means that I can now check the current conditions without changing floor.

On the subject of the data logger I have installed a SheevaPlug running Meteohub weather server software. I will detail my experiences with the data logger in an upcoming post. For now it will suffice to say the SheevaPlug/Meteohub combo is a nice piece of kit that is easy to set up and is feature packed.

Summing Up

I am happy with the WMR200 now that I have it working reliably. The antenna issues make it far from plug and play and any prospective buyers should be prepared to put a lot of effort into minimising signal drop outs. In hindsight I would have bought a WMR200 in the first place rather than the more basic WMR88. On the other hand, I find the flexibility of having two base stations to be the perfect setup and an advantage of having a wireless as opposed to a wired weather station.