Developer Portal

EKM Push Cloud Communication Service

Free and Unrestricted Meter Data:

EKM Metering not only wants to provide great metering products that are reliable, accurate, and affordable, but we also want to be completely open about how you choose to access, utilize, and display your meter data. One of the reasons that we choose not to charge for meter data, is because we want to make our products as attractive as possible for developers and businesses. We believe that we offer the perfect metering system for developers to build a business around. This page is a good jumping off point for anyone who wants to develop their own apps or software solutions utilizing our products. You can choose to utilize data from the EKM Push system (easier to implement and more scalable) or access the meter data directly from the serial RS485 port on the meter itself.


EKM Push Open Energy API:

Now you can very easily access the EKM Push Data using the EKM Dash software. All you need is your EKM Push User Key and your Omnimeter number. You can use the dash to then create emails, generate .csv files, and store an unlimited number of meter reads in your local EKM Dash database. We have attempted to make the EKM Push system as scalable as possible. You can have from one to hundreds of thousands of meters in your EKM Push account. These could be meters that are spread all over the world on any number of EKM Push gateways, feeding data to this known, fixed location for super easy access. This is the most open, most scalable, most reliable, easiest to access meter data solution in the industry, and it is FREE.

--------

Check out the Push App Store for examples of solutions that utilize EKM Push data: Push App Store

For examples of the EKM-Push's capabilities you can look at our widget here: Widget for EKM-Omnimeter 10068

--------

Here is a tool that you can use to learn the various formats and filters you can use to access your meter data: API Sandbox Tool

--------

Draft API examples:

Here is a very simple example of this using EKM Push key MTExOjExMQ (this URL format the basis for most of our API calls):

http://io.ekmpush.com/readMeter/v4/key/MTExOjExMQ/count/10/format/html/

This link will return 10 reads of meter data from all Omnimeter Pulse v.4 meters in Push account with key MTExOjExMQ. It will display it as html data.

--------

If you would like to filter to just 1 meter you can add the filter /meters/300000369 like this:

http://io.ekmpush.com/readMeter/v4/key/MTExOjExMQ/count/10/format/html/meters/300000369/

Or you might want to filter for multiple meters:

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/html/meters/10068~10054

In this case you only want data from v3 meters 10068 and 10054 (tilde ~ separate the meter numbers) that are in the Push group with key MTAxMDoyMDIw

--------

By default the Push system returns the time as UTC Time (computer time). If you would like the time returned in a specific time zone you can add this to the URL call.

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/html/meters/10068/timezone/America~Los_Angeles/

These are IANA timezones (with a tilde ~ separator): http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

--------

Count can be from 1 to 1000

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/1/format/html/meters/10068/timezone/America~Los_Angeles/

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/1000/format/html/meters/10068/timezone/America~Los_Angeles/

--------

Format can be: html, xml, json, csv, timeseries, influx, vector

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/html/meters/10068/timezone/America~Los_Angeles/

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/xml/meters/10068/timezone/America~Los_Angeles/

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/json/meters/10068/timezone/America~Los_Angeles/

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/csv/meters/10068/timezone/America~Los_Angeles/

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/influx/meters/10068/timezone/America~Los_Angeles/

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/vector/meters/10068/timezone/America~Los_Angeles/

--------

You can call all available data from a given Sequence Number.

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/1000/format/html/meters/10068/timezone/America~Los_Angeles/since/1415218436919

With this you can call up to 1000 reads from the last time you retrieved data. So you might get just 1 read back or 1000 reads depending on how many reads have been inserted since your last call (sequence number). You can also use the filter "until": /until/1402445768644/

--------

Use the same idea for Start Date and End Date

/start_date/12062014/end_date/12072014/

/start_time/062400/end_time/062500/

--------

You can filter for just the data fields you are interested in by using /fields/.

http://io.ekmpush.com/readMeter/v3/key/MTAxMDoyMDIw/count/10/format/html/meters/10068/timezone/America~Los_Angeles/fields/kWh_Tot~Rev_kWh_Tot~RMS_Watts_Tot/

In this case we are only interested in Total Kilowatt Hours, Reverse kWh, and Total Watts (tilde separated)

--------

/alias/details/

Gives you the meter values in a shortened name.

Rev_kWh_Tariff_1 becomes: PT_REV.T1 for example

--------

You can call data from seconds ago, in this case you are calling data from up to 20 seconds ago:

http://io.ekmpush.com/readMeter/v3/meters/10068/key/MTAxMDoyMDIw/count/1000/format/html/timezone/America~Los_Angeles/back/20/

--------

--------

Information about our legacy API:

.xml web data dump (best viewed with Firefox or Chrome):

http://io.ekmpush.com/10068~300.xml?MTAxMDoyMDIw

--------

Or in Linux command line or Mac OSX Terminal (by default, you can retrieve from 1 to 1000 reads, this request is for 300 meter reads):

curl http://io.ekmpush.com/10068~300.xml?MTAxMDoyMDIw

--------

Create your own request:

curl http://io.ekmpush.com/**your Omnimeter Number here**~**number of reads requested**.xml?**your User Key here**

--------

Create a solution using EKM Push data that we think our users will find useful and we will promote it for you on our EKM Push page. This could be a web app, mobile app, data analytics, billing solutions, BMS, or anything else you come up with.

--------

Advanced API requests:

Find all meters and Read Rates in associated with EKM Push Key MTAxMDoyMDIw:

curl http://io.ekmpush.com/grpEnumMeters.xml?MTAxMDoyMDIw

--------

Request all meter data (up to 1000 reads) since Seq 1407875379561 from meter 10054:

curl http://clmain.ekmmetering.com/10054~1000@1407875379561.xml?MTAxMDoyMDIw

(the seq number should be updated for each request to the seq from the latest read received)

--------

Request data from multiple meters (10 reads from meter 10068 and 1 read from meter 10054):

curl http://io.ekmpush.com/10068~10,10054~1.xml?MTAxMDoyMDIw

--------

Documents:

EKM Push Spec Sheet: EKM Push Specs

EKM Push Schema: EKM Push .xml Data Parameters

EKM Push Sample Data: Data returned by Linux curl command

EKM Push to EKM Dash Setup: Setup Instructions

Push data to wattvision.com: Setting Up EKM Push to wattvision

EKM Push data to PVoutput.org: Omnimeter v.3 Pushed to PVoutput.org

EKM Push data to Excel (on a PC) Interface real-time data to Excel

 

Here is our widget displaying live Omnimeter data, using an EKM Push gateway:

To see the full version of this widget go here: Widget for EKM-Omnimeter: #10068

EKM Meter Serial RS-485 Communications:

This section is for developers that want to communicate with their EKM Meters directly using their own software or embedded solution.

Our meters use an IEC 62056-21 communication standard that has been optimized for our own needs. We are more than happy to share this with you. With this you can write your own software or embedded solution to access your meter data.

EKM-Omnimeter I v.3 and EKM-Omnimeter II v.3 UL:

Here are a couple links to download the v.3 String Parsing, as well as the v.3 Settings Protocol for our v.3 Omnimeters.

EKM-Omnimeter Pulse v.4:

Here are the links to download the string parsing v.4 String Parsing, as well as the v.4 Settings Protocol for our EKM Omnimeter Pulse v.4. Here is an additional supplemental v.4 Parsing Example Document

General RS-485 Hex Parsing:

Send any of your meters on your RS-485 network the simple request (including the 12 digit meter number) and the targeted meter will respond with most of its data. If you use our EKM Dash software and utilize the "Hex Inspector" functionality under the "Help" menu item, it will simplify your job to be able to "see" the request and response (this is helpful for both the RS-485 parsing as well as parsing the EKM Push .xml data). The last 2 bytes of the RS-485 return string are a CRC-16 checksum. 30 represents a 0, 31 represents a 1, 32 represents a 2, etc.

Serial Settings for v.3 and v.4 meters: 9600 baud, 7 data bits, Even Parity, 1 Stop Bit, No Flow Control

Always send the "Close String" at the end of the transaction. This tells the meter that the communication session is over. Send: 01 42 30 03 75

Developer Discussion:

Please either email us at info@ekmmetering.com or join the discussion on Developers Section of our user User Forum.