johanmeijer / grott

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

Growatt NEO 800M-X Support / Protocol #552

Open robertzaage opened 3 months ago

robertzaage commented 3 months ago

I bought a Growatt NEO 800M-X and tried to connect it to a grottserver. Unfortunately grott proxy couldnt decode the data and therefore dropped it.

The factory endpoint is mqtt.growatt.com:7006 which looks like an TLS+MQTT endpoint. I analyzed the traffic with this server and saw tls handshakes. I'm currently tcpdumping the traffic into a file, just in case it helps to find patterns. Worst part, if even possible, would be breaking up the TLS communicaton. The whole fw can't be too complex, as it's an Espressif based system... But I hope they dont verify cert signatures.

Has anyone here experience with the NEO-class devices?

Jul 01 19:00:02 machine grott[3272139]:          - Grottserver - Socket connection received from ('127.0.0.1', 43578)
Jul 01 19:00:02 machine grott[3272139]:          - Grottserver - Send queue created for : 127.0.0.1_43578
Jul 01 19:00:02 machine grott[3272139]:          - Grottserver - input received:  <socket.socket fd=4, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('0.0.0.0', 5781)>
Jul 01 19:03:27 machine grott[3272139]:          - ('192.168.2.224', 53156) has connected
Jul 01 19:03:27 machine grott[3272139]: 
Jul 01 19:03:27 machine grott[3272139]:          - Growatt packet received:
Jul 01 19:03:27 machine grott[3272139]:                   <socket.socket fd=20, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 36622), raddr=('127.0.0.1', 5781)>
Jul 01 19:03:27 machine grott[3272139]:          - Grott - grottproxy - Invalid data record received, processing stopped for this record
robertzaage commented 3 months ago

Offtopic: I set trace = True in grott.ini but the trace mode didn't turn on. What is this mode about and is this a bug?

fdreckmann commented 2 months ago

Any Updates?

robertzaage commented 2 months ago

@fdreckmann no, i currently think of buying another 800M-X just for tearing it down and dump the firmware.

johanmeijer commented 2 months ago

See also discussion #560

CalvinSchwartz commented 1 month ago

Before reading this issue I set my Neo 800M-X to the Grott server. However I can't connect it to the Growatt servers anymore as there's currently the (non-working) Grott Server set.

I already tried resetting via the Shine app (setting to mqqt.growatt.com:7006) however the connection to the server fails. Any ideas how one can reset the Wifi Module to connect back to the Growatt servers?

robertzaage commented 1 month ago

Before reading this issue I set my Neo 800M-X to the Grott server. However I can't connect it to the Growatt servers anymore as there's currently the (non-working) Grott Server set.

I already tried resetting via the Shine app (setting to mqqt.growatt.com:7006) however the connection to the server fails. Any ideas how one can reset the Wifi Module to connect back to the Growatt servers?

Maybe a typo: mqtt.growatt.com:7006

CalvinSchwartz commented 1 month ago

Typo was only on GitHub 😕 I did set the server of the Datalogger in the settings section on server.growatt.com

Using the shine app to connect the Datalogger back to Wifi/Growatt Server there was already mqtt.growatt.com filled in. Changed it to server.growatt and then back to mqtt.growatt.com however there's still no connection to the growatt servers possible. I'll contact the growatt support to see if there's any option to completely reset the datalogger to factory settings.

robertzaage commented 1 month ago

@fdreckmann no, i currently think of buying another 800M-X just for tearing it down and dump the firmware.

I tried to dissemble a unit. It has two solid metal halves glued together - impossible to separate and the case is completely filled with grey gum. So no luck here...

fdreckmann commented 1 week ago

@fdreckmann no, i currently think of buying another 800M-X just for tearing it down and dump the firmware.

I tried to dissemble a unit. It has two solid metal halves glued together - impossible to separate and the case is completely filled with grey gum. So no luck here...

Do you have see this addons https://github.com/mtrossbach/noah-mqtt

Maybe you can Work together?

robertzaage commented 1 week ago

@fdreckmann no, i currently think of buying another 800M-X just for tearing it down and dump the firmware.

I tried to dissemble a unit. It has two solid metal halves glued together - impossible to separate and the case is completely filled with grey gum. So no luck here...

Do you have see this addons https://github.com/mtrossbach/noah-mqtt

Maybe you can Work together?

Afaik this addon just polls the growatt API and is no offline solution or proxy.

fdreckmann commented 1 week ago

@fdreckmann no, i currently think of buying another 800M-X just for tearing it down and dump the firmware.

I tried to dissemble a unit. It has two solid metal halves glued together - impossible to separate and the case is completely filled with grey gum. So no luck here...

Do you have see this addons https://github.com/mtrossbach/noah-mqtt Maybe you can Work together?

Afaik this addon just polls the growatt API and is no offline solution or proxy.

That's how I understand it too. Then only the addons description would be wrong:

"Integration Growatt Noah 2000 Home Batteries with Home Assistant via MQTT, Enabling Real-Time Monitoring and Control of Your Energy Storage System."

Here it is called "real-time". But I guess you're right.

johanmeijer commented 1 week ago

Yes that solution works with the Growatt API and pulls information from the growatt server. Nothing wrong with that but it is a total different solution then Grott that act as a proxy and intercepts the data the moment is being send (and cannot block/filter the commands comming from growatt).

At this moment I am not able to decode the Noah information. Maybe I will try i again later and get a brilliant idea. If somebody can give a hint it wil be very welcome.