Jump to content


Automate (without doing a number) Weather for $35 plus donationware

Posted by pete_c , 17 June 2015 · 8511 views

The etymology of this usage of number is:
The meaning "musical selection" is from vaudeville theater programs, where acts were marked by a number.
Specifically here doing weather automation without having to do a song and dance (easy peasy)
Unrelated in classical thought, the four elements earth, water, air, and fire frequently occur; sometimes including a fifth element or quintessence (after "quint" meaning "fifth") called aether in ancient Greece and akasha in India. The concept of the five elements formed a basis of analysis in both Hinduism and Buddhism. In Hinduism, particularly in an esoteric context, the four states-of-matter describe matter, and a fifth element describes that which was beyond the material world. Similar lists existed in ancient China and Japan. In Buddhism the four great elements, to which two others are sometimes added, are not viewed as substances, but as categories of sensory experience.

Aristotle added a fifth element, aether, as the quintessence, reasoning that whereas fire, earth, air, and water were earthly and corruptible, since no changes had been perceived in the heavenly regions, the stars cannot be made out of any of the four elements but must be made of a different, unchangeable, heavenly ...
A little brevity unrelated to the original topic but a short scene from the move The Fifth Element.

Related elements of weather and climate

There are several elements that make up the weather and climate of a place. The major of these elements are five: temperature, pressure, wind, humidity, and precipitation.
Analysis of these elements can provide the basis for forecasting weather and defining its climate.
These same elements make also the basis of climatology study, of course, within a longer time scale rather than it does in meteorology.

1 - Temperature is how hot or cold the atmosphere is, how many degrees it is above or below freezing. Temperature is a very important factor in determining the weather, because it influences or controls other elements of the weather, such as precipitation, humidity, clouds and atmospheric pressure.

2 - Humidity is the amount of water vapor in the atmosphere.

3 - Precipitation is the product of a rapid condensation process (if this process is slow, it only causes cloudy skies). It may include snow, hail, sleet, drizzle, fog, mist and rain.

4 - Atmospheric pressure (or air pressure) is the weight of air resting on the earth's surface. Pressure is shown on a weather map, often called a synoptic map, with lines called isobars.

5 - Wind is the movement of air masses, especially on the Earth's surface.

Over the years here and there have utilized Cumulus for my weather software.  
Weather watching like automation is a hobby for me. 
Favorite and mesmerizing touch screen view for me is this one:
Posted Image

Cumulus is donationware software for retrieving, storing and displaying data from an electronic Automatic Weather Station (AWS).
December 16, 2014 - Cumulus / Sandaysoft author Steve quote
Yesterday, I "finished" the new version of Cumulus that I have been working on for some time now, which I am calling "Cumulus MX". By "finished", I mean that I have now implemented sufficient functionality for it to be made available for release for testing. It has about 90-95% of the functionality of the current version of Cumulus. I need to do some more testing on my Raspberry Pi and Macbook before I make the first beta available, but I hope to do that in the next few days, if I don't hit any major problems.

I thought that I would post a few notes, so that you know what to expect, and can ask any questions in advance.

It runs on Windows, Linux, and Mac OS X. It does this by virtue of being a .NET console application (targeting .NET 4.5) and can thus run on Linux and OS X using Mono. Note that Mono is not a 'hack', it is a legitimate way of running .NET applications on platforms other than Windows (or even on Windows itself), and was written using the same international standards as .NET (large parts of which are now open source). Note that the .NET 4.5 cannot be installed on obsolete Windows XP, hence Cumulus MX does not run on XP.

Cumulus MX is a console application, i.e. it runs from the command line. It provides a GUI which runs in a browser by acting as a webserver. The GUI consists of a number of HTML pages backed by JavaScript, and it supplies JSON encoded data to the browser, via a WebSocket interface for frequently changing current data, and by HTTP 'Get' requests for other data (so it can be retrieved by Ajax calls, for example). It thus requires a relatively 'modern' browser, i.e. one capable of handling HTML5 and web sockets. The major browsers have had the required support for some years now. Because of this architecture, the UI does not have to run on the same PC as the 'engine'.

Cumulus will store full weather records, along with daily and all-time records, and graphical data. Cumulus can upload its data to a web server and comes packaged with template web pages for this purpose. Cumulus also supports automatic uploads to Weather Underground, PWS weather, Weatherbug, WOW and CWOP/APRS.
Cumulus MX runs in Wintel, Linux and OSx.
Some screen shots of Cumulus MX









Supported Devices Davis Range
  • Vantage Pro
  • Vantage Pro 2 *
  • Vantage Vue *
Oregon Scientific
  • WMR-928
  • WMR-918
  • WM-918
  • WMR-968
  • Equivalent rebadged Radio Shack stations (serial only)
  • WMR-88, WMR-100, WMRS200 and WMR-200
Fine Offset
(MyDEL, Nevada, Watson, Tycon Power, Fine Offset etc)
Use the "Fine Offset (WH1080)" setting in Cumulus for these:
  • W8681
  • WH1080 *
  • WH1080PC
  • WH1081
  • WH1090
  • WH1091
  • National Geographic 265NC
  • PCE-FWS 20
  • ELECSA 6975
  • ClimeMET CM2000
  • Maplin N96FY/N96GY
  • Ambient Weather WS-1080/WS-2080
  • WeatherEye WEA22
  • Jaycar Digitech XC0348 (AU/NZ)
  • Tycon Power TP1080WC (USA)
* What I personally utilize today
Donations & Sandaysoft
a note from the developer...

Sandaysoft is the home of Cumulus, software to help you make the most of your weather station. Located on the island of Sanday, in Orkney, off the north coast of Scotland in the UK. Cumulus is donationware. If you like the software and find it useful, please make a contribution towards the continuing development of Cumulus.

I rely on your donations to allow me to buy the software that I need to continue improving Cumulus. 100% of any donation received goes towards software development, either towards the cost of new development tools or the cost of hosting this site. We don’t make a profit from Sandaysoft - I have a full-time job and Sandaysoft is what we do in our spare time.
Personally this is what I did and it works for me. 
BTW this post assumes a basic knowledge base relating to a bit of Linux and using the RPi2. 
The blog only writes about utilizing CumulusMX on an RPi2.
I have historically utilized Wintel servers for my Cumulus 1 box configurations. XP works too with Cumulus 1.
I plan on sticking the RPi2 to the back of the consoles I use making the combo a small footprint weather station / server configuration.  Power requirements for the combo Console / RPi2 are less than a PC and the Console.
DIY Parts list
1 - Rasberry Pi 2 - $35.00  MCM Electronics
2 - Rasberry Pi 2 Case  - $8.99 MCM Electronics
3 - MicroSD Card - SDUltra 16Gb - $9.64 Amazon
4 - USB Serial cable - Generic - $3.11 - Amazon
5 - Rasberry Pi 2 Power supply - 5VDC - 1A - $12.95 - Amazon
6 - Davis console new USB datalogger cable - $55.00 USD including shipping order here.
7 - Davis console new RS-232 datalogger cable - $60.00 USD including shipping order here.
8 - PiFace RTC Shim - MCM Electronics - $11.99
Note the above is approximately $143.00 which is more than $35.00. 
RPi2 having a built in RTC is my preference and it is related to another hobby of mine which is time.
You can purchase the stuff anywhere these days.
This post / dialogue only writes about using an RPi2 using a common Linux based OS. 
What I see when I SSH to the Cumulus RPi2
Last login: Thu Jun 18 03:58:14 2015 from .....
Uptime: 3 days 12 hours 08 minutes
CPU Speed: 900 Mhz - Load Average: 1min 25% 5min 26% 15min 26% - Cores: 4
Free Memory: 887 Mb
Free Disk Space rootfs: 11G
SD Card: Written 3554M Read 0G
Network Traffic eth0: Sent 288.2 MiB Received 142.5 MiB

~# uname -a
Linux ICS-Cumulus 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux

~# mono -V
Mono JIT compiler version 3.12.1 (tarball Fri Mar  6 23:28:08 UTC 2015)
Copyright © 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       normal
    Notifications: epoll
    Architecture:  armel,vfp+hard
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            sgen

Note too here that the latest release of Mono is Cycle 5 Service Release 1 ( and CumulusMX will run with most current version of Mono.

I have frozen my build to version 3.12.1.
Weather station
1 - Davis Vantage Vue Weather Station - $205.95 - Star Marine Depot
2 - Davis wireless Vantage Pro II ~ $400.00 USD
3 - Fine Offset weather station (check out Amazon for current pricing).
Note that personally here utilize a Vantage Vue and a Vantage Pro II and a Fine Offset. 
Relating to this blog you will be configuring a weather station using an RPi2 (Rasberry Pi 2 model B)

Install the PiFace RTC shim to your RPi2 and put the RPi2 inside of your new case.
DIY base image
Windows tools that I use (personally I am using either Ubuntu or Wintel).
- Putty - download here
- WinScp - download here
- FileZilla - download 64bit version here or 32bit version here.

1 - Download this base RPi2 image here
This image was put together by Rob Mason on the Homeseer Forum.  Thank you Rob.
Rob Mason is currently writing a Homeseer 3 plugin for the Leviton HAI Omni combo security panels.
There are 3 users on this distro, all with the same password: homeseer
The users are root, pi, homeseer

2 - Write the image to the MicroSD cards
3 - Boot the new RPi2 with your new image
4 - It will do DHCP to get an IP address on your network
5 - SSH to your new RPi2
6 - the image is smaller than 16Gb - expand the image using RPi using raspi-config
sudo raspi-config
raspi config 1

7 - sudo apt-get update
8 - sudo apt-get install mono-complete
9 - change your passwords for the above three users created
10 - change the device from using DHCP to a static address
IE: you can utilize WinSCP or SSH / nano the file /etc/network/interfaces
Here is an example - note I commented out the DHCP piece and provided an example of the static IP piece.
Change the addressing to you network.
auto eth0
# iface eth0 inet dhcp

iface eth0 inet static
10 - SSH to your RPi2 and install the RTC clock software by doing the following.  Read/download this document.
Note change the xx in hxxps to tt.
wget hxxps://raw.githubusercontent.com/piface/PiFace-Real-Time-Clock/master/install-piface-real-time-clock.sh
chmod +x install-piface-real-time-clock.sh
sudo ./install-piface-real-time-clock.sh
sudo reboot
SSH again to your RPi2
set the current time - example shown
sudo date -s "18 JUN 2015 05:05:05"
Check to make sure your RTC clock works
sudo halt
disconnect power from RPi2 for a few minutes and plug it back i.
SSH again to your RPi2
type date
you should see the correct date and time.
11 - Install Webmin read here.  Note this is a light web managment interface.  I use it to keep my RPi2 updated without having to use SSH (still use SSH for other stuff).
- wget hxxp://prdownloads.sourceforge.net/webadmin/webmin_1.750_all.deb
- sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
-sudo dpkg --install webmin_1.750_all.deb
12 - change the name of your RPi2 - note this is optional - use Webmin to do this.
13 - Join and register yourself on the Cumulus forum here.  Please donate to author via link on forum.
14 - Please donate to author via link on forum.
15 - Download CumulusMX here.
16 - unzip the distribution to your wintel box and copy CumulusMX to the root drive of your RPi2 using WinSCP.
17 - ssh to your new RPi2
cd /CumulusMX
Running Cumulus MX:
Cumulus MX needs to run as an administrator on Windows and under Superuser (root) on Linux and OS X.

sudo mono CumulusMX.exe
When Cumulus starts, it will display the URL of the user interface. It runs on port 8998 by default; if this is not suitable for some reason you can over-ride it using the '-port' parameter on the command line, e.g. to use port 9999 instead:  sudo mono CumulusMX.exe -port 9999
18 - Type the URL which is displayed into your browser (replace the * with the IP address, or use localhost) and the interface should appear. If this is a 'clean' installation, the first thing you will need to do is to go to the settings and set the station type and units, and any other configuration settings you want to make. Having set the station type, you will need stop Cumulus MX and start it again. Note that this also applies to some other settings - you will need to restart Cumulus MX to get the new setting picked up.
19 - Here we will start CumulusMX manually for a bit while we get familiar with the interface.  Leave the SSH console open while you configure the main interface.
20 - Here we will show pictures of the Davis Vantage Vue configuration via a serial and a buffered serial cable.
Note the first section is the local web interface stuff that will be utilized for the internet web interface. 
Settings / Station Settings - The configuration is straight forward and I have included just the top half here.
CumulusMX StationSettings 1

Settings / Internet settings

DIY hardware adds
DIY DB (mySQL) integration)
DIY Software or Firmware Automation integration
20 of June, 2015
Not yet done with the above writing of stuff.  Today switched over to a new buffered serial cable (mentioned above) with a USB connector on it.  Works great with the RPi2.  Disconnected it and went back to serial cable for my testing with two instances of Cumulus running (Windows and Linux).
I noticed too that you can get a bit more diagnostic data from the console relating to RF signals et al which is a good thing.  I already used some of this before with Cumulus 1.
Ordered an RS-232 buffered cable today such that I can test using two consoles and three applications.
5 of July, 2015
Current RPi2 / CumulusMX / Davis Vantage Vue station is doing well with no issues at this time.
Doing a second setup using another RPi2 / CumulusMX / Davis Vantage Pro II.  I have ordered another buffered serial cable and waiting on this cable to start (back ordered right now).
Found a picture of an analogue weather station today that I like.

25 of July, 2015
Current configuration above is working in the following fashion:
1 - Davis Vantage Vue ==> Davis Console #1 ==> buffered serial cable ==> Serial server to
A - Legacy Cumulus software running on a Wintel server
B - Cumulus Mx running on an RPi2
2 - Davis Vantage Pro 2 ==> Davis Console #2 ==> serial cable ==> RPi2
3 - Looking to do a FIne Offset ==> Fine Offset Console #1 / USB port ==> RPi2
All of this tinkering has me looking now a a new combination receiver and transmitter weather station device.  It is very modular and it is a purely DIY thing right now.
The unique pieces are that the TX part of it allows for use of Davis or other types of weather measuring instruments and the RX piece (console) of it does similiar using common standards of communications.
You can integrate 1-wire devices in to the TX pieces or a Fine Offset device and have it talk the Davis weather standard protocal stuff.
Might take this to a separate blog as it involves soldering / multiple RF boards et al.
Personal adds to this project would be a GPS time sync and radio for NOAA alerts in the outdoor TX part (box) and solar cell to keep battery charged inside of the main TX box.  (very easy to do these days)
5 of August, 2015
Shut down Cumulus 1 today running on a Wintel server leaving only CumulusMX running on the RPi2.
Well I should have probably shut it down a few weeks back as I was double uploading weather data.  I also removed my Russound serial server as the abundance of data coming from the Davis Console was a bit much for the serial server.