catalinsanda / org.openhab.binding.solarman

Binding used to communicate with Solarman (IGEN-Tech) v5 based solar inverter data loggers
Eclipse Public License 2.0
8 stars 2 forks source link

Response frame is too short #34

Open schottme opened 1 year ago

schottme commented 1 year ago

Hi all, I get following error if I connect the hybrid inventor with LSE (ethernet) with this binding. I use the 0.3.2 Version. What can I do?

image

catalinsanda commented 1 year ago

Hello,

The response "A5 1700 1045 0300 F6 02" doesn't seem to follow the Solarman V5 protocol as described here: https://pysolarmanv5.readthedocs.io/en/stable/solarmanv5_protocol.html. This protocol was reverse engineered so no "official" documentation for it exists AFAIK. Have no idea what to do next and what the 0300 F6 02 error code means.

If you don't have the latest Logger firmware you can get in touch with the Deye support to ask for an update, maybe this will make it work.

KeeperOf7Keys commented 10 months ago

This is also the new Logger Firmware MW3_16U_5406_2.32-D1 of Deye Inverter which is used with the Relais extension. Inverter version data is like following communication protocol is version 0x0202 with HW version 0x0102 DC-Master Firmware is 0.2.3.6 with AC Version number 1.3.1.2 Compared to the ones which are working with the binding e.g. Logger Firmware MW3_16U_5406_1.53 and Inverter versions communication protocol 0x0201 HW Version 0x0102 DC_Master Firmware 0.1.1.7 with AC Version number 1.2.1.8

As it can be seen it is not an old Firmware - it is a new one. With different communication protocol.

It may be the reason mentioned for Solarman HomeAssistant binding: https://github.com/StephanJoubert/home_assistant_solarman/discussions/271#discussioncomment-7158802

With a Debugger Thing for Deye Inverters I can see Version and Serial numbers of inverter and Firmware version of logger.The other responses I could not evaluate yet. The relais box is doing an automatic update to Logger version MW3_16U_5406_2.27

catalinsanda commented 9 months ago

In the provided link the issue seems to be "pysolarmanv5 is seeing a mixture of requested v5 frames and answers to AT-commands", which is something different that what we have here.

If indeed there is a newer and incompatible version of the Solarman v5, do you know of any library which was updated to support it, to "inspire" myself from their work?

KeeperOf7Keys commented 9 months ago

Up to now I only saw messages from users that complain read out of data is not working. My plan is to add a logger to collect the network traffic together with the Solarman app I hope to get the data analysed. But this will take some time.

KeeperOf7Keys commented 4 months ago

After checking and comparison of the already existing communication protocol there are quite some differences. Request to get long data from inverter. Data: a50a0010173c7ad315e9ed0001243c2166780000000515 after acknowledge and keep alive response with 343 Bytes is there Data: a5 4a 01 10 42 00 7c d3 15 e9 ed 01 08 54 9b ef 5a 00 5f 1c 00 00 ef 4c c6 65 0050 01 00 00 0f 00 00 xx xx xx xx xx xx xx xx xx xx --> ASCII Coded serial number of Inverter 0060 02 00 d2 00 00 00 ae 07 00 00 00 00 00 00 10 09 --> d2--> daily production active 2.10kwh 07ae -->total Output 196,60Kwh 0910 --> 232 AC Voltage? 0070 00 00 00 00 14 00 00 00 00 00 88 13 e8 01 00 00 --> 14 --> AC output current 2.00A 1388 --> Frequency 50.00 01e8 --> AC total output 488 0080 80 07 18 fc 18 fc 18 fc 18 fc 00 00 01 00 00 00 --> 0780 --> Temp 19.20°C 0090 00 00 00 00 00 00 3c 01 5d 00 47 01 42 00 00 00 --> 013c -->DCVolt1 31.60, 005d --> DCAmp1 -->9.30, 0147 --> DCVolt2 32.7, 0042 --> DCAmp2 --> 6.60A 00a0 00 00 00 00 00 00 56 30 2e 32 2e 30 2e 32 56 30 --> ASCII: V0.2.0.2 Communication protocol Version V0 00b0 2e 32 2e 33 2e 36 56 31 2e 33 2e 32 2e 32 00 00 --> .2.3.6: DC MasterFirmwareVersion V1.3.2.2 AC Version numb 00c0 00 00 1f 40 02 01 00 04 00 0b 00 09 00 00 00 00 --> 0b --> Daily Prod 1 1.1 kWh, Daily Prod 2 0.9kWh 00d0 00 00 03 d6 00 00 03 7f 00 00 00 00 00 00 00 00 --> 03d6 TotalProd1 --> 98.2 kWh, 037f TotalProd2 -->89.5kWh 00e0 xx xx xx xx xx xx xx xx xx xx 2d 31 20 20 20 20 ident of solar panel 1 00f0 xx xx xx xx xx xx xx xx xx xx 2d 32 20 20 20 20 ident of solar panel 2 0100 xx xx xx xx xx xx xx xx xx xx 2d 33 20 20 20 20 ident of solar panel 3 0110 xx xx xx xx xx xx xx xx xx xx 2d 34 20 20 20 20 ident of solar panel 4 0120 13 ba 00 28 00 01 00 00 00 02 00 00 0b 3b 07 26 0130 14 1e 12 8e 00 3c 18 04 12 11 1b 37 00 01 00 01 0140 02 02 36 13 22 00 00 07 d0 00 00 00 00 00 00 00 0150 00 00 00 00 00 00 ff 09 e2 04 0b 00 01 13 ba 00 0160 28 00 00 13 ba 00 64 07 d0 00 64 00 00 00 00 00 0170 01 00 00 00 08 00 00 07 d0 03 e8 13 88 03 e8 1f 0180 40 fc 36 27 10 fc 4a 00 01 00 00 e6 15 There is some data ASCII coded - e.g. serial number of several data. xx is e.g. the serial number of inverter Further already known data will be added the next days. While using AT commands to read out registers it could be seen that the data is mainly at the same place like alreay analysed. There are some additional data with new protocol available. In addtion there are 4 more packages - 2 with data length of 23 Bytes, 1 with 14 Bytes, another one with 311 Bytes which contains mainly data from external relay box. Details will follow. update May 6th with data. The data of other requests will follow

catalinsanda commented 4 months ago

Can't tell for sure, but this looks like it's not encapsulating Modbus as usual, but something differently. Not much to work on.

KeeperOf7Keys commented 4 months ago

I have also send the AT commands with deye-logger-at-cmd. Do you like to see the responses also?

catalinsanda commented 4 months ago

Yes, sure, but I think those are part of a separate, control protocol.