Tutorial- paper ui - modbus + sdm630 +epever tracer a + modbus relay board

Here i will show how to interconect all in the same BUS. Is hard to find infos using PAPERUI to acquire that.

After a lot of tests discovered that CH340 chipsets ARE BAD for using in a real world system. for tests and debugging is good. For now using a ISOLATED FTDI chip. works 100% no erros.

my config is SDM630 == ID 1
RELAY BOARD == ID 2
EPEVER TRACER AN == ID 3
ALL devices setted to 9600 8 N 1

1-Install Modbus Binding.
2 create the 3 serial modbus bindings.

3 - create the polls:

8 relay board starting at 1 polling 8 registers

EPEVER starting at 0x3100 HEXA: 12544 polling 6 registers

SDM630 starting at 6 polling 34 registers

Probably 1 poll for each will not be enough becouse have data that i want to poll after and MAYBE can not work polling all at the same time. EPEVER have problems with polling more then 6 registers at a time in the 9600 BPS. SDM dont, and relay board dont. works perfectly.

the data it self is extracted at modbus data bindings.

sdm630:
in that case extracting the L1 CURRENT data.

You should link it as number value:

for the relay 1: should be payd attention in the transformation required to turn it ON AND OFF

1 Like

Hello Johann, thank you for this Tutorial.
I have one Epever Tracer and and have connected them with Modbus Binding.
Can you show me how you config the Modbus data for your Epever Thing?
I would like to get Information about Current Load, Current Power and Current Voltage, Is there a way to get this Vaules?

first, you should set your ep-ever in the right speed. factory defaults to 115200 speed. IF you use only the tracer A in the bus, no problem. you just have to set the right speed in the serial thing. after that, READING the modbus implementation from tracer A, you see its all in HEXADECIMal format. so you have to convert it before. after conversion, you enter the values in the poller, and them you extract it using a thing, pointed to the first register you polled of the modbus. sometimes 32 bit swapped

sometimes 16 bit uint

and at last, the values should be divided(transformed) by 100.

Thank you.

i have connection and can read the values.
But i do not know how to find out which of them is the Power, which is Voltage.
I tried to add Modbus datas for 12544, than 12545, 12546, and so on. Is there an overview which of them stands for Power, Voltage, Curent or temperature?

P.S. could you also share your js. Translation file? I am not good at programming, i guess it devides by 100?

take a look at the modbus addressing manual for this controller

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=9&ved=2ahUKEwi-r-KI0I3oAhWMdt8KHV_1DzUQFjAIegQICBAC&url=http%3A%2F%2Fwww.solar-elektro.cz%2Fdata%2Fdokumenty%2F1733_modbus_protocol.pdf&usg=AOvVaw2l5P3iHoscUNM1t4jzkCSc

convert the values in the manual for decimal format and use then to read the right adress

use https://www.rapidtables.com/convert/number/hex-to-decimal.html to convert

Capture

this is the file inside transform folder that makes the division by 100

Thank You Johann.

Everything works.
Looks very easy, but without your help i probably would need many days or weeks to find out how.

good it worked for you. people help me here i help others with all learned.

Hi!

I’m trying to connect my EPEVER wifi box using your method. I can successfully get the data on my PC using a virtual COM port setup to the Modbus TCP server on the device. I can read (and write) the data using EPEVER Solar Station software, so the connection is good :slight_smile:

However, when i try to connect with OpenHAB i’m getting no where. I followed the tutorial above (many thanks!), but with the TCP bridge option, but just get connection errors with all the pollers :frowning:

Any suggestions?