It is a well-known saying – no pain, no gain. Never has it been more true then over the past couple of days when I have been assembling and installing a simple Open Energy Monitor.
I should have known from the start that it wouldn’t be as easy as it looked. Open Energy Monitor is an Open Source project
and whilst I fully support and encourage Open Source as a concept it often falls down on some very basic requirements. Of course, the project must work and as far as I can see to date OEM certainly works. In fact, it works a little too well because it lulls you into a false sense of security. It works but as soon as you stray a little from the “standard” set up then finding out what to do and finding readable and informative documentation becomes a bit of a nightmare.
So what am I trying to achieve with OEM?
We move house soon and I want a cheap but usable energy reporting system to replace the one I currently have which I shall be leaving for the new owner. My existing system consists of:
- Current Cost EnviR – this reports on house power use and solar generation and uploads that to PVOutput.com where it is logged and graphed providing an instant snapshot of the current condition of each and also logging the data so that it can be reported historically.
- Fronius Solar Display – this is in our lounge and shows an LCD display of solar generation.
- EcoEye – LCD display in our lounge showing current house power use
- Davis Vantage Vue weather station sending temperature, rain and wind data to a console in the lounge which uploads to Weather Underground and our own weather web site.
- Toshiba netbook, connected to the home network, which runs several programs to upload the data from the devices above.
So this little collection of devices and software allows us to:
- See instant and historic home power use
- See instant and historic solar generation
- See instant and historic weather data specifically temperature & humidity (inside and outside), wind, rain, barometric pressure
Of this we are taking the weather station and console but leaving the rest for the new owner so we needed a replacement for the bits we are leaving behind. Rather than just replace these with direct replacement devices I decided to take this opportunity to replace the functionality with a more broad and integrated Home Automation and Power Management System (HAPMaS). HAPMaS will be home grown and home build where ever possible to keep the cost down and it will use Open Source, Free software and hardware designs whenever possible too. At least that is the plan!
So that is what we are looking to replace and so I chose Open Energy Monitor as the starting point. It is an Open Source system that is based on cheap hardware (Arduino, Raspberry Pi) and as I wanted to build as much of this myself as possible I chose the DIY, build it yourself, kit.
The kit arrived and after a practise bit of soldering I set about assembling the supplied parts. It wasn’t too arduous and the instructions online were just about adequate for me as someone inexperienced in building electronic projects. The problem was that the hardware supplied is pretty new and so
much of the documentation refers to the old version. Nevertheless, a bit of common sense and reading between the lines here and there it was pretty clear how to assemble the hardware and I completed it in a couple of hours.
For clarification… I was building:
- emonTX Shield – this is a board which when completed fits onto an Arduino Uno. It provides the connection ports for the power sensors (current transformers or CTs) and it has a wireless module (433 MHz) to communicate with an emonBase OEM base station. You provide your own Arduino or they can supply one. I already had an Arduino Uno so I used that.
The Arduino to which the shield connects can run a number of programs (sketches) that process the data sensed through the shield and then send that data, via the wireless module, to the emonBase station. These can be downloaded from the web site. As it is a standard Arduino these programs can be easily modified to add or change functionality. Sketches are loaded onto the Arduino in any way normal for the Arduino commonly through the Arduino IDE.
RFM69Pi – this is a small add-on board that connects to a Raspberry Pi (RPi) computer board turning the RPi into an emonBase station. It has on it a wireless module (433 MHz) to receive data from the emonTX shield and any other OEM device in range. It then send that data to an emonCMS server, either on the home network or on the Internet, where the data is stored and reported upon. I already had a Raspberry Pi so I used that.
The software running on the RPi is a modified version of Raspbian which can be downloaded for free from the web site or ordered on a ready-to-use micro-SD card from the OEM shop… which is what I did. The OS can be then run directly from the RPi without any complication.
So that is what I was building. The hardware build went without major incident after a lot of digging around the OEM web site, the OEM Wiki and the OEM forum but eventually it was all built. However, it was then that the task became much more difficult.
I am a computer consultant of over 30 years and a software developer and web master and so I am not confused easily when it comes to setting up systems or following technical designs and instructions. But when I tried to find a set of easy to follow, step by step, instructions on what to do next I was completely stumped. I searched and searched the web site, wiki and forums looking for some guidance without luck.There was a lot of technical background and many, many links the the software itself (on Github) so if I were technically minded and wanted to dig around the code then it is quite likely that I would be able to work it out. As it happens I asked on the OEM forum and I eventually got some help that way later in the evening. The help I was given got me going but no where could I see any documentation that would have given me that help without asking someone else. I even ask them how I could have found it out myself without pestering him and he hasn’t replied.
I find this all very frustrating. If I am having trouble then it is certain that most people would have even more trouble and so perhaps this is the biggest issue for me with OEM so far. Technical documentation is plentiful but user orientated, non-techie, info is very scarce and limited to high-level, overview documents more relevant to a sales rather than support. I have been involved in a few Open Source projects and I am sorry to say that it is a feature of Open projects. There is no one person or organisation in charge and so the people that build the system, the techies by definition, do techie documentation and they assume people know what the techie stuff means. Another good example of this is with Linux… great system but let down by the documentation and lack of non-techie tools.
Eventually then I got it going and it is now up and running but what a struggle it has been. Still I know of no easy documentation that would help people set up from scratch unless you are already familiar with the technologies. I will be trying to do a “Installing OEM with Arduino Shield 101” myself but it may take a while for me to get to grips with it all myself first.