-
Notifications
You must be signed in to change notification settings - Fork 50
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
Deye inverter SUN600G3-EU-230 at (and tcp) reading stopped working #206
Comments
Had the same after an automatic firmware update the at mode isn't accessible any more. |
Hmm, I tried to do so. Maybe I mixed up the config parameters and/or the inverter was already in standby. |
Remove DEYE_LOGGER_PORT from the config. |
Hi,
The system is producing energy now and I can read out values via solarman online. P.S.: I recognized that I selected metric group string instead of micro and changed it - but that has no effect. |
My Inverter (SUN-M160G4-EU-Q0) updated from I had the assumtion that only the AT mode was disabled as it was also mentioned here It could be that the have updated their firmware and blocked the connection for the TCP mode as well. You can find more information about that here: Its also code which runs in docker and is getting then the information of the inverter directly. But as far as i remember not that often as the code from kbialek as the inverter sends it from time to time. |
The page you meant which mention the security fix is this one Sadly i can't find anything yet mentioning your firmware version. Another thing which might still work is "dSolarLite". In the video he hasn't used any special port only "modbus address= 1" what ever that means. So don't know if that still works or whatever method he uses to connect to the converter (maybe they just changed the at port from 8899/48899 to 1 :P ) What i also just read here in a german forum is that someone requested a firmware downgrade via email contact to deye just one month ago. I didn't knew that this firmware downgrade was even possible via request. |
@MarcErl you may also consider downgrading the firmware on your own. Check out this project https://github.com/dasrecht/deye-firmware |
Thanks guys - I'll try out several things the next days. It needs daylight for the inverter to be online... |
Okay, I have an update. After following further hints in www, I found this (adopted) project: https://github.com/dmaj/deye-controller/tree/master with the hint that some registers have been changed for this inverter type (but for me the relevant look the same).
and I got:
(26 W is plausible, same as via solarman web).
So - modbus via tcp seems to be possible but something is special with this inverter. |
I looked at pysolarmanv5 source code. I did not spot any logical difference in the communication protocol. |
I need to set up wireshark - until that with verbose=True: Success:
With timeout:
|
I see that pysolarmanv5 gets this same response as my service does. Look at these fragments of your logs
Both get this data from the logger However, according to your logs, pysolarmanv5 also got this valid response
|
Nope, looks that it sends both directly after each other... |
Okay, maybe there is an option to turn that "AT+..." message off in the inverter's config. Did you check it? Take a look at:
|
Unfortunately I can not find any possibility to switch it of in config or hidden config. And sometimes also other issues, like below.
It seems they have somehow damaged the protocol. Probably it doesn't make sense to try to work around that behaviour. |
Guys, is there a way to use the standard modbus polling utilities in Linux e.g. mbpoll to poll the deye inverter and include the serial number for auth ? |
I found a new (?) addon for OpenHab (LswLogger Binding [Sofar/Omnik/IE wifi/eth stick for SolarmanPV]). With this I get my values again. I've not yet analyzed what it is doing different. |
@MarcErl Please do capture the traffic |
No problem! Two files: One when starting the addon "thing" and one a bit later where the value for total output value changes at the end (maybe others too). |
@MarcErl Did you by any chance set the Logger Modbus Address to 0xAA? 🤔 I see such Modbus response frames in the wireshark dump:
The first byte is the Logger Modbus Address. Usually it's 0x01, but here it's 0xAA. |
I don’t see any possibility to change it. |
Just for documentation link to your used OpenHAB addon: https://github.com/ptrbojko/openhab-lsw4inverter-binding |
Hi there i have exactly the same problem as MarcErl. my setup: inverter 2: DEYE SUN-M80G3 config: DEYE_LOGGER_COUNT 2 DEYE_METRIC_GROUPS micro DEYE_FEATURE_MULTI_INVERTER_DATA_AGGREGATOR true DEYE_LOGGER_2_IP_ADDRESS 192.168.100.76 DEYE_LOGGER_2_PROTOCOL at DEYE_LOGGER_2_SERIAL_NUMBER xxxx DEYE_LOGGER_1_PROTOCOL tcp DEYE_LOGGER_1_SERIAL_NUMBER yyyy DEYE_LOGGER_1_IP_ADDRESS 192.168.100.105 error: (repeatedly) 2024-10-21 14:49:41,327 - DeyeInverterState - INFO - [2] Reading registers [metrics group: {'micro'}, range: 0050-0053] 2024-10-21 14:49:46,432 - DeyeAtConnector - WARNING - [2] Too many connection timeouts 2024-10-21 14:49:52,638 - DeyeAtConnector - WARNING - [2] Too many connection timeouts 2024-10-21 14:49:52,638 - DeyeInverterState - INFO - [2] Reading registers [metrics group: {'micro'}, range: 0054-0057] 2024-10-21 14:49:57,744 - DeyeAtConnector - WARNING - [2] Too many connection timeouts 2024-10-21 14:50:03,950 - DeyeAtConnector - WARNING - [2] Too many connection timeouts 2024-10-21 14:50:03,951 - DeyeInverterState - INFO - [2] Reading registers [metrics group: {'micro'}, range: 0058-005b] 2024-10-21 14:50:09,055 - DeyeAtConnector - WARNING - [2] Too many connection timeouts @kbialek : would be great if you could make the Logger Modbus Address configureable |
Maybe we can learn something if you don't mind 🙂 Do you have an external relay, e.g. Deye SUN-MI-RELAY-01 connected to your microinverter? |
Ah, yes that is true😳 |
Let me summarize my findings. Facts
Assumptions
Consequences
Here is a docker image |
Thank you for the test image. Today I had a little time to try it out.
|
@MarcErl Thanks for checking. I've realized that I overlooked one important detail. In the Wireshark logs it's visible that Deye simplified the communication protocol. They removed their proprietary wrapper frame. I will call it So here is another beta image
Please try this new protocol with Modbus address 1 and 170. |
@kbialek
My firmware version is also: Container settings are:
Did someone succeed in a successful downgrade? Edit: Looks like that the response i got is the firmware version:
|
Tryied also
|
Just an update for everyone following this. I found https://github.com/dmaj/deye-controller which gave me the possibility to read data out of the inverter. It's using PvSolarman5 as library. I don't see if it is possible to add this to this project too. I didn't find any other project offering the data via mqtt using PvSolarman5 yet. Edit: I forked that project into https://github.com/videejay/deye-controller and added a script to perform reading of ac power and pushing it to mqtt. Really dirty but it works for now... |
I now had some time to test but get the same results. |
I probably automatically got a new firmware for my deye inverter two days ago or so..
Before that I had a working configuration with the AT protocol since ~ one year. It suddenly stopped working:-(
Deye has written something with security fix on their homepasge..
Does anyone have this combination still working or an idea how to fix?
My configuration:
Tried several configurations:
1. DEYE_LOGGER_PROTOCOL=at + default port --> connection timeouts
2. DEYE_LOGGER_PROTOCOL=tcp + default port --> recognizes an AT response
3. Combination of DEYE_LOGGER_PROTOCOL=at with port 8899 --> not working (like at and default port)
The text was updated successfully, but these errors were encountered: