Page 1 of 1

Registers on Modbus

Posted: Wed Jan 02, 2019 5:45 pm
by Inventrex3601
Hi there, new user here, do Modbus registers exist for the V3 meter?

I am trying to use Node-red on a Raspberry Pi to request the L-N Voltage and have it come back with a response. Is there any function code that anyone has that I can test out for a specific parameter suchas L-N Voltage?

The image link is the "node" I am using to request the register. If I can do it through a function node, is there any script to try? I will be experimenting in the meantime to see if I can get it to read through Node-red.

Image

If more clarification is needed please let me know.
Thanks

Re: Registers on Modbus

Posted: Thu Jan 03, 2019 11:01 am
by Jameson
Hello there, thank you for posting to the forum.

Very cool to see you are using NodeRed, I got interested in it a while back and made a simple call to the PushAPI (I'll paste in my snippet below). Node Red seems like a good combination of really powerful and easy to understand, I should take another look.

Our meters are not technically Modbus, they do communicate over RS485 like many Modbus devices do, but they use a simple single format call and response. Modbus is too limited by design for what we are trying to accomplish.

(We are developing a multi-protocol EKM/Modbus protocol meter, if you email us, we will let you know when it is available.)

Our meters use a heavily modified version of an IEC 62056-21 communication standard. The v3 and v4 meter protocols are outlined in this section of our Developer Portal: http://documents.ekmmetering.com/api-do ... unications I would say our protocol is easier to understand than modbus in that it is a simple request string that contains the meter number, and if any meter in the string sees its meter number it responds with 90% of its meter data. One huge advantage of our protocol over Modbus, is that our protocol allows for up to 999999999999 unique devices to be used on our system (each of our meters ships with a unique ID), whereas Modbus was created under a different paradigm and only has 255 possible addresses (you would have to assign address 1-255 when you install a meter)

The physical hardware and 2-wire communication system are the same as is used for Modbus. The remote read is a simple 2 wire RS-485 system which allows the meter string (up to 256 meters on a string) to be read from up to 4000 feet away.

This string of meters can then be connected to one of our USB Converters or our EKM Push and from there you can read your meters with a computer or over the internet from anywhere in the world.

Node Red snippet:

Code: Select all

[{"id":"9c2a35fa.419698","type":"http request","z":"c896c7cd.77e708","name":"EKM","method":"GET","ret":"obj","url":"http://io.ekmpush.com/readMeter?meters=300000369&ver=v4&key=MTExOjExMQ&fmt=json&cnt=10","tls":"","x":622.8924102783203,"y":802.5520324707031,"wires":[["ebfee2a0.f326d"]]},{"id":"2e6b9b25.654d84","type":"inject","z":"c896c7cd.77e708","name":"","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"x":390.89588928222656,"y":764.6180114746094,"wires":[["9c2a35fa.419698"]]},{"id":"1994256c.85003b","type":"debug","z":"c896c7cd.77e708","name":"","active":true,"console":"false","complete":"false","x":969.2813262939453,"y":989.2292058379564,"wires":[]},{"id":"ebfee2a0.f326d","type":"function","z":"c896c7cd.77e708","name":"","func":"\nreturn msg;","outputs":1,"noerr":0,"x":713.829865867709,"y":981.5208843725699,"wires":[["33c99413.ec6c4c","1994256c.85003b"]]},{"id":"33c99413.ec6c4c","type":"file","z":"c896c7cd.77e708","name":"","filename":"Node red file maker","appendNewline":true,"createDir":true,"overwriteFile":"false","x":894.1597671508789,"y":1106.9999465942383,"wires":[]}]

Re: Registers on Modbus

Posted: Thu Jan 03, 2019 5:51 pm
by Inventrex3601
Hi Jameson,

Thank you for your reply. It has helped a lot.

Is there anyway that you could make a script that reads L1 and L2 Voltage, and comes back with a response so I have something to go off of, in Python?

If you can do that it would save me so much time that way I fully understand how this meter reads and responds, and so I can modify it to read the other parameters.

In Node-red, I can link the script that is created to a node, and have it output and go where I need it to, if the script ends in .py.

Right now I am using the USB to RS-485 converter from you guys plugged into the Pi.

Lastly, Regarding your EKM Push, is that system capable of requesting parameters every second?

Thank you so much for your help,
Nick

Re: Registers on Modbus

Posted: Fri Jan 04, 2019 3:51 pm
by Jameson
Please try running the python script here: https://documents.ekmmetering.com/api-d ... ers-py-api

I would always use the EKM Dash to make sure you are able to read your meter via your USB converter. Once you have the Dash successfully reading your meter (you then know your connections are good), then you can implement your own code to make sure your code can still read your meter.

The EKM Push can technically read your meter as fast as once per second. There are data charges if you want to read faster than once per minute.

You can sign up for faster read rates here: https://www.ekmmetering.com/pages/subscription