For several years, I've been the proud owner of a rather comprehensive weather station - the Oregon Scientific WMR200. It's an impressive model, offering accurate readings and a sleek base station with a touchscreen. The only minor drawback is the rain gauge resolution of 1.0mm per tip, but that hasn't been a significant issue for me. One of the great features of this station is its PC connectivity, allowing for weather data logging. From the outset, my goal was to integrate this with a Linux server, as my primary PC isn't on 24/7. But how? Initially, there was no straightforward solution since the WMR200 uses a proprietary protocol. However, over the years, several practical solutions have emerged. For a time, I used wfrog, which seemed stable with the WMR200 and similar Oregon Scientific models. However, I wasn't completely satisfied with its implementation.
Temporary Solution on Windows
I eventually returned to Windows to capture the data. The software from Oregon Scientific (OS) was subpar. After extensive searching, I discovered Cumulus - a fantastic, free Windows software that had everything I needed. It stored data, displayed it, and could upload to Weather Underground and FTP for a homepage. I used it extensively, and since it emptied the WMR200's datalogger at startup, my database captured all data, even when the PC was off. However, there were stability issues during the PC's sleep mode, and connection to the station often failed. Since I've installed Debian Linux on my Futro S400, I revisited this project with the aim of having software run 24/7, logging values into a MySQL database.
The Best Solution for Linux
After exploring various solutions, a search for "wmr200 linux" revealed a new and fantastic option: Weewx. Weewx seamlessly connected my WMR200 to my Linux PC (the Futro S400). I chose to compile the Weewx software myself for a neater folder structure. However, there was an issue with version 2.4 not recording rain data from the WMR200, resolved in version 2.5. The installation process, detailed in the Setup, was straightforward. I also integrated Weewx with my Apache2 web server to access the automatically generated weather website, following the instructions in the Weewx documentation.
Configuring Weewx
Weewx uses two configuration files - the main config file, which is well-commented and easy to edit with the documentation, and another for the skin, adjusting the web page appearance. The default storage is an SQLite database, but I preferred MySQL, which was easily configurable following the documentation.
A Minor Quirk
One small note for WMR200 users: every data retrieval from the station empties its datalogger, indicated by an animated LED sequence on the device. This can be distracting, so I covered the LEDs with a strip of insulating tape - a simple fix that doesn't detract from the station's functionality.
pyephem
As an optional package, pyephem provides additional data about the sun, moon, and stars. It's more of a fun addition than a necessity, but I found it enjoyable.
Conclusion
Setting up Weewx took just a few hours. The installation was smooth, and the documentation provided all necessary information. After a week, Weewx has been reliably logging weather data, creating attractive charts that even show daylight levels. I'm thoroughly satisfied with Weewx and recommend it to anyone with an Oregon Scientific WMR200 (or similar model) looking to use it with Linux. If the weather station isn't immediately recognized by the system, it's likely due to the USB cable or the station's socket placement. It's worth configuring the units in the config file before starting and making adjustments in the skin.conf for a better webpage appearance.
My Weather Page
Weewx-created page of my weather station, with the NeoWX-Material-Theme
One comment
Reply to comment
14 Oct 2016, 17:05
Jan CommandeurHallo Sven,
Sie haben einer schöne website.
Sie haben gleich wie ich ein weatherstation welches is „powered by weewx“.
Die weather station auf der Weewx map ist in der nähe von IJsland.
Freundlicher Grüsse,
Jan Commandeur.