[APP][Pro] Modbus - Connect every Modbus devices

I like to test send this to my inverter.

01060beb2af8e538

Which flow card to use and how to fill in?

What a value should that be? As default, integer values are used.

You need a Modbus documentation for your device telling you all technical details about available registers, datatypes etc.

This is an answer I get when I set the power limit via Solis cloud.

Data sheet

I’m trying to find out which register to use. Solis does not give any information about that. Thought as a test to see if it works to send this code (110%)

Hi,

  • use the flow card ā€œwrite holding registerā€
  • use register 3050 and select ā€œregister, starting a #1ā€, then the offset is done by the app.
  • insert the value as integer. Use 10000 for 100% or 500 for 5%. The device supports 2 decimal places and uses a factor x100 to use integer
  • use UINT16 as type (unsigned integer 16bit), should be the correct type for ā€œU16ā€

If you set another register with type ā€œS16ā€ it seems it’s a signes integer, so use INT16 as type.

Good luck :crossed_fingers:

1 Like

Thanks, I don’t get any error message. But when I look via Solis cloud the power doesn’t change.

This maybe is useful info from the HA Solis modbus integration:

How did you enable port 502, Johan?
When I run a portscan, only port 80 is open.
Info is in here I guess :wink:

1 Like

The Solis dongle can Modbus TCP. I have set that as master. And the inverter as slave. If I add a slave to Homey, Solis G4 2kWp/1 is recognized on ID 1. So that works I would say.

Reading works, but the strange thing is that I have to read register 3052 starting with 1 to read the percentage. (get the value I expect, and indeed changes when I change the limit via Solis cloud) So something is not quite right. Solis does not give you any information. That is only for installers… It should also be possible via the API, but I can’t figure that out either.

I suspect that the converter is write-protected by default. I had already requested remote access. But so far no response. (and I don’t expect to get it) Still, I find it interesting that it works via Solis cloud. And you also get the modbus message that I posted earlier. Then there is something open, you would say.

The message feom your app is RS485 (Modbus RTU), the serial version. So perhaps internal used via wired connection.

In Fronius inverter, you can activate write access via ModbusTCP.
Can you activate this in your app or perhaps local webpage or webapp?

I can’t edit any setting other than the wifi network setting. The modbus tool for Windows, as well as Homey say ā€˜can’t connect’. This is because of port 502 is still closed.

I think I’ll leave it cloud enabled for now, I’m already glad to be able to limit the power-to-grid level, using the Solis app.

In the documentation you shared, it says cloud is disabled the moment Modbus is activated.
Do you see data passing by, when you use the Modbus tool for Windows?

Unfortunately I can’t find the option to allow steering anywhere. On the other hand that’s exactly what you do via the cloud. Inverter shows on the display limited by EPM. All communication via Modbus as Cloud goes via the same Solis S2-WL-ST dongle. So it is interesting. I think that if there is Modbus communication, the connection to the cloud is temporarily lost. I work on Mac so I can’t test anything on Windows. It should also be possible via the API. Let’s investigate that further.

@Peter_Kawa het lijkt mij handiger om verderte gaan in het Nederlands. Even verder in dit topic?

1 Like

Im trying to set exportlimit on My Fronius Gen24.
First you have to log in and set a export limit in the Fronius inverter. I have tried to set it on and of via 40232 and 40236.

It does not work as i want it to. Has Anyone else a working flow in homey. I found a HA thread about it.

@RonnyW - Having just installed this app, I don’t seems to be able to get most of the flow cards (only connect, disconnect and Write Coil Register).
Does this app actually require advanced flow to work ?

Yes, that’s right. Most cards return tags with the read values. And working with these tags is only possible in AdvancedFlow (following action cards).

Hi. Is there option to write multiple holding registers? Deye inverters needs this function for writing. Best regards, Simon

Writing multiple registers means to write a value starting at one register with a sice of x registers (means one value written over x 16bit registers).

The ā€œWrite holding registerā€ card offers several data types (like INT32). If this type is uses, 2 registers are written. It depends on the type. The only exception is data type ā€œstringā€ where you can define a size. But that’s normally only used to read a text.

Hi Ronny.
Deye inverters (16bit registers) needs for writing function ā€œwrite multiple registersā€. Deye does not allow writing in one register. If I write with 32 bits then I also overwrite the values ​​over the second 16-bit register. Best regards, Simon

Hm, the app is writing single register for 2Byte values and multi registers for >2Byte.
I have to think about it to provide an easy solution without breaking existing functionality.

New test version 0.11.0:

  • Added app setting to force ā€˜write multiple registers’ for single register update.

@Simon_Ojstersek FYI and to test. You can activate the multiple registers option in device settings. This forces to write a single register with ā€œmultiple registersā€ function.

Hi Ronny.
I’ll try and let you know. Thank you very much.
Best regards, Simon

Hi Ronny. It is working, so can be used for writing with Deye inverters.
Thank you very much and best regards, Simon :slight_smile:

1 Like