Open APIs

I’ve recently bought a device which lets me see how much electricity is being consumed, produced and the surplus electricity at any point in time. It’s called a Wattson and sits in the kitchen and lets us know when we can switch on the dishwasher for example and maximise the surplus electricity available (when it goes green). It comes with just the Wattson display and the unit to read the electricity consumption + production, but we’ve also invested in two home plugs to switch on appliances in the house when there’s surplus electricity which would have ordinarily gone to the grid.

You’re probably wondering what this has to do with APIs? Well, the Wattson display can be plugged in to a PC and the data can be read in to the proprietary piece of software to display usage over time. The software is ok, but it doesn’t have a lot of features I’d like and the display has to be plugged in to the PC to get to the data. I want to be able to plug an usb dongle in to my server, send requests to the main unit and receive back the import, export and consumption values. Then I want to combine those figures with my PV data and upload both figures to PVOutput.

I wrote to the people who make the device and asked them to share the API behind the device so as to be able to communicate with the device, but they declined to give the API away. FYI, all you need is the display plugged in to a PC running the software, Snoopy and a bit of time & patients. You’ll see all of the commands used to access data, but this still requires the display to be plugged in and my server is not located near where the display is usually kept.

In the end I bought an Arduino and got the import figure from the electricity meter directly, but it still doesn’t tell me how much consumption there is in the house.

Yesterday I was researching a weather station with a similar aim in mind. Upload all the data to the internet and combine the data from the weather station with my PV readings on PVOutput. Weather stations have been around for years and I assumed there would be plenty of options for well built (not budget) units that would upload to the internet without a PC being on (I don’t want to load on proprietary software and have a PC running 24/7 connected to the device to export data from their app to where ever I need the data. I want near real-time data that my server (not running Windows) can request).

Surprisingly not…

One unit I’ve found does upload to the internet directly, but to a website set up by the makers of the device. They do then offer the ability to push that data in to Weather Underground, but personally I’d prefer a device that uploads to WUnderground directly or one that I can make calls to using an API and retrieve just the data I’m after and then include in any app I choose to build. One particular make of weather station I was particularly interested in was La Crosse, but they also seem to have an antiquated view on publishing their API.

In this day and age it seems odd to me that manufacturers of products do not like the idea of publishing their APIs for their little black boxes. Despite what the manufacturers think about their own software that can be used to manage their device data, there are other people out there with better, more innovative ideas on how to integrate their devices with applications and websites. Maybe it’s just me in that my job is to integrate with third party services to help my company achieve business objectives, but I now see unrealised potential in the little devices lying around in my home. I think in the near future it will be the manufacturers that offer APIs for their devices that will find their products sell more as people find innovative ways of using the data created by those devices.