huntworker
Member
- Joined
- Feb 16, 2021
- Messages
- 39
Sometimes (every few hours) I get a response starting with 0x06 from the battery. The rest of the content is the same as the 0x0A messages.
And the query from the inverter was the same as well. Somebody a glue on that?
Example from this morning:
The checksum for the short messages
is easy, this is just the sum of all bytes inverted, but starting on the 2nd byte. So the first byte is not secured with the checksum.
more complicated is it with the long 0x0A (and 0x06) message. If I do the same calculation, I do not get the correct answer.
I used this one https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/ and took the CheckSum8 2s Complement result.
Maybe the checksum is calculated before the "defusing" of the 0x00 bytes. I changed all the 0x01 to 0x00 but didn't get the correct answer.
Example message when the battery is fully charged -> allowed charging current is nearly 0 A.
The Battery current is 01 01 01 01 (two times) and the maximum charge current is 01 01 01 05
Any Idea for this?
Cycle current is 0xFE by the way.
And the query from the inverter was the same as well. Somebody a glue on that?
Example from this morning:
Code:
06 E2 FF 02 FF 29 04 40 87 43 01 0F 8D 43 66 66 AA 41 33 33 93 40 7B 14 96 40 01 03 48 42 01 03 C8 41 01 14 A0 41 33 33 B7 41 66 66 A6 41 75 93 58 40 27 31 58 40 FE 02 01 02 4D 01 01 02 65
The checksum for the short messages
Code:
09 62 FF 02 FF 29 53 03 1F
08 E2 FF 02 FF 29 06 EF
09 62 FF 02 FF 29 4A 04 27
more complicated is it with the long 0x0A (and 0x06) message. If I do the same calculation, I do not get the correct answer.
I used this one https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/ and took the CheckSum8 2s Complement result.
Maybe the checksum is calculated before the "defusing" of the 0x00 bytes. I changed all the 0x01 to 0x00 but didn't get the correct answer.
But the length of the messages is not changing over time. While the numbers of 0x01 is changing.I guess "00" is a special symbol, so the number 0x438D000 is encoded as 0x438D, and the zeroes are omitted.
Also, I think "01" marks the start of a segment, followed by its length. The length byte is included in the total length.
Example message when the battery is fully charged -> allowed charging current is nearly 0 A.
Code:
0A E2 FF 02 FF 29 1D 5A 85 43 01 03 8D 43 01 03 AC 41 01 01 01 01 01 01 01 01 01 03 48 42 01 03 C8 41 01 01 01 05 CD CC B4 41 01 0C A4 41 A4 70 55 40 7D 3F 55 40 FE 04 01 40 64 01 01 02 56
Any Idea for this?
Cycle current is 0xFE by the way.