johanmeijer / grott

Growatt inverter monitor
https://github.com/johanmeijer/grott/wiki
374 stars 103 forks source link

Encoding of messages from ShineWifi #494

Open patcher-ms opened 6 months ago

patcher-ms commented 6 months ago

Hello, I managed to decode the content of the packets emitted by ShineWifi, at least for my interpreter. Maybe that can help reducing the amount of manual mapping.

Let’s start with the messages. There are two messages emitted periodically. One for input registers and another for holding registers. Grott already deals with encryption and checksums so let’s skip that and dive into the content of the plaintext.

Each plaintext has a 67 bytes headers and several blocks of register values.

The header contains:

Each register block contains:

With this information we know exactly which bytes correspond to which register and we can interpret them with a lookup in this document https://github.com/johanmeijer/grott/blob/Beta-(2.8.x)/documentatie/Growatt-Inverter-Modbus-RTU-Protocol-II-V1-24-English-new.pdf

I’m not sure this is new information but I haven’t seen any documentation on how the mappings are generated and many questions about the mapping so hopefully it’s useful.

johanmeijer commented 6 months ago

Am I missing something. This is what Grott is doing.