Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Growatt NEO 800M-X Support / Protocol #552

Open
robertzaage opened this issue Jul 2, 2024 · 16 comments
Open

Growatt NEO 800M-X Support / Protocol #552

robertzaage opened this issue Jul 2, 2024 · 16 comments

Comments

@robertzaage
Copy link

robertzaage commented Jul 2, 2024

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
Copy link
Author

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
Copy link

Any Updates?

@robertzaage
Copy link
Author

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

@johanmeijer
Copy link
Owner

See also discussion #560

CalvinSchwartz added a commit to CalvinSchwartz/grott that referenced this issue Aug 28, 2024
The NEO 800M-X is currently incompatible, see issue johanmeijer#552 
Therefore it is now mentioned in the README
@CalvinSchwartz
Copy link

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
Copy link
Author

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
Copy link

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
Copy link
Author

@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
Copy link

@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
Copy link
Author

@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
Copy link

@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
Copy link
Owner

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.

@FranzSchi
Copy link

FranzSchi commented Oct 13, 2024

Hi,
I guess i just faded the same thing, just a a small question to the other affected users.
Do you also see the regular dialogue in the https://server.growatt.com/index Dialogue?
i changed here something but it seems it had no effect at all.

Is it the same in your setup?

Then I’ve tried to reconfigure using the app and faced the mqtt hostname

What‘s also interesting is that the website shows as ip+port of my datalogger:
IP & Port:10.10.0.103:26938

IMG_0627

@deiberger211
Copy link

Hello,
I also have an Neo 800M-X inverter and it is not working:. Anyone an idea how to fix this?

 - Growatt packet received:
	  <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.5', 51102), raddr=('47.254.130.145', 5279)>
 - Grott - grottproxy - Invalid data record received, processing stopped for this record

 - Growatt packet received:
	  <socket.socket fd=6, family=2, type=1, proto=0, laddr=('172.30.33.5', 60672), raddr=('47.254.130.145', 5279)>
 - Grott - grottproxy - Invalid data record received, processing stopped for this record

 - Growatt packet received:
	  <socket.socket fd=8, family=2, type=1, proto=0, laddr=('172.30.33.5', 53730), raddr=('8.209.71.240', 5279)>
 - Grott - grottproxy - Invalid data record received, processing stopped for this record

@deiberger211
Copy link

Hello, I also have an Neo 800M-X inverter and it is not working:. Anyone an idea how to fix this?

 - Growatt packet received:
	  <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.5', 51102), raddr=('47.254.130.145', 5279)>
 - Grott - grottproxy - Invalid data record received, processing stopped for this record

 - Growatt packet received:
	  <socket.socket fd=6, family=2, type=1, proto=0, laddr=('172.30.33.5', 60672), raddr=('47.254.130.145', 5279)>
 - Grott - grottproxy - Invalid data record received, processing stopped for this record

 - Growatt packet received:
	  <socket.socket fd=8, family=2, type=1, proto=0, laddr=('172.30.33.5', 53730), raddr=('8.209.71.240', 5279)>
 - Grott - grottproxy - Invalid data record received, processing stopped for this record

Ok in the mean time I have understood that this kind of inverter is not supported yet.

@FranzSchi
Copy link

FranzSchi commented Oct 23, 2024

As this Microinverter allows no other thing to be plugged in.
The only possibility so far is using https://github.com/PLCHome/growatt libs, which read from cloud.
I’ve found this docker implementation which reads from the cloud and posts into MQTT.
https://hub.docker.com/r/bbme/growattnpm

Anyone knows a better solution so far for this microinverter?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants