Skip to content
View in the app

A better way to browse. Learn more.

Power Forum - Renewable Energy Discussion

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Intermitent W04 meter_Comm_fail - Deye + Eastron630

Featured Replies

Not sure when this started but I noticed my inverter comes continuously with a Warning - W04 meter_Comm_Fail.
I think warning is there for a few seconds or so as i get no alarm , just warning and inverter runs normally.
As an insurance measure i also have CT coils installed and left on each phase.

image.png.4c1ea4bcaf2520e65495c54a6ce5e9c9.png

Since I noticed the error i changed the cable between Meter and Inverter and used 2 pairs for A and B from a CAT6 cable.- No change
Then I added 120Ohm resistor as termination on both Eastron and Deye ... same thing , no change.

Inverter is connected to batteries via CAN ... so no interference here I hope.
I also monitor everything with Solar Assistant that is connected to Deye by RS485 on BMS Port ... could this be the problem ?

Any idea welcome.

 

Does the meter have a Modbus number that is within range of 16. It must not share the same number as the inverter. Check the Settings on the Meter of its Modbus number. Make sure you also set the Deye to the Easton meter in its settings. Instead of CT use Easton meter as a setting.

  • Author

It worked fine for 8 months or so ... problem appeared 2-3 months back ?
As I said meter talks with inverter fine 99.9% of the time and only throws a warning for 1 second or so.
Tried with pins 1-2 and also 7-8 on meter port.

  • 1 month later...
  • Author

No , not solved yet... I think is a firmware issue and combination with Solar Assistant RS485 connection. Did not had time to debug more yet.

  • 3 months later...

I have the same issue (with just a Deye SUN-12K-SG04LP3 inverter and Eastron SDM630 meter, no further connections). I have tried different slave addresses at the Deye and at the Eastron- the error remains. I think I will add an (Arduino-based, DIY - http://jheyman.github.io/blog/pages/RS485Sniffer/ ) modbus sniffer to debug the problem (maybe there is some CRC transmission error from time to time that the inverter is not tolerating) ...

Edited by Alexander Grau

I have replaced the cable now (now it's a shielded twisted pair cable, before it was just a twisted pair cable). And this time, I have connected pins 1,8 and pins 2,7 and pins 3,6 at the Eastron meter side too (each pair connected together). Last time I just connected pins 1,2,3 however this could be the problem (because those unconnected pins are connected at the Deye side, and then you have 'open wires' in the cable - basically those act likes antennas and then may receive noise signals...)

image.thumb.png.8842fc253161e94639137f35f113ddf1.png

 

Addendum: The error just appeared again (also with replaced cable)... 🤣

 

Edited by Alexander Grau

Maybe the Deye inverter is sending some message packets with incorrect checksum (CRC) to the Eastron... I'll further debug this using my DIY RS485 Modbus RTU sniffer  (Arduino code attached)...

 

Screenshotfrom2024-02-0318-02-22.thumb.png.a5bbb082e6a60239852bf3978fa14192.png

 

 

Edited by Alexander Grau

  • Author

For me the problem appeared (if I remember correctly) after I upgraded the FW on the inverter or after I switched batteries from RS485 communication to CAN...
I did so many changes and forgot to make a "changelog" so I can not be sure of anything anymore.

For me the error comes as a warning and inverter keeps working ... maybe because I also have the CT's still connected.

I did not tried to sniff the communication but something changed in FW for sure.

I have improved my sniffer tool, and the CRCs seem to be always correct. I noticed some messages are answered with a delay (up to 500ms or maybe sometimes longer) by the Eastron meter. It could be that the Deye is not tolerant enough for this long delay... (e.g. if it exceeds 500ms)

Screenshotfrom2024-02-0511-30-26.thumb.png.df0472644f5bd8d3c467b96b895882bf.png

 

 

 

The error appeared again at 11:49 (the previous errors are due to restarting the sniffer) and I have the full sniffing log available. Nothing special there (no delays above 500ms, no CRC errors)... I think the Deye firmware is complaining without a good reason...

 

log.txt

Screenshotfrom2024-02-0512-09-38.png.12ed054e2d91b2c37f5bb27f1b34801b.png

Edited by Alexander Grau

  • Author

I tried to explain this to Deye tech team ... it seems they are aware of the issue but still blame Eastron and cable and anything else than the inverter :)

I poked them again and reminded them of the issue , let's say maybe they will require come more logs. Will let you know and thanks for sharing.

 

Edited by Jaxone

My sniffer can now decode the data (first shown values are: importWh, exportWh, phase1Power, phase2Power, phase3Power). It looks like there might be an issue at the Deye side with interpretation of this data (maybe with the sign). The error seem to happen here only when the PV panels are starting (or stopping) generating power... I'll further monitor this...

 

Screenshotfrom2024-02-0517-39-08.thumb.png.decb38086d7dee75946a9889a57c3514.png

 

Edited by Alexander Grau

  • Author

Well , past few days there was VERY little sun here and I still have the error also during the night when there is no sun for sure :)

image.thumb.png.68699fbdd12e666e5fa7621aff972f62.png

OK, here's another log file. The warnings appeared at 15:12 and 15:42. And at those times, there is no issue in the log file (no CRC error, no timeouts, no wrong decoded data, everything is fine). The alarm is fully random.

log_6_2_2024.txt

 

Screenshotfrom2024-02-0615-51-47.png.58f387119005d543246d4d686f8f28c9.png

Edited by Alexander Grau

I'm sorry, I have to correct myself - I see something strange at the alarm times (15:12 and 15:42):

15:10:28.345 -> 2923,2578,104,164,415        Ans: dt=31    (2079)    err=14 f=04 pkt:01 04 0C 42 CF 9F C6 43 23 C1 42 43 CF 80 5C 96 CB     104,164,415,
15:10:28.677 -> 2923,2578,104,164,415        Req: dt=340    (2079)    err=14 f=10 pkt:AB 10 01 1E 00 02 04 01 F7 00 00 ED 6B                 
15:10:28.744 -> 2923,2578,104,164,415        Req: dt=65    (2079)    err=14 f=04 pkt:01 04 00 48 00 04 71 DF                                addr=72,cnt=4
15:10:28.777 -> 2907,2578,104,164,415        Ans: dt=29    (2079)    err=14 f=04 pkt:01 04 08 45 35 B5 02 45 20 F3 37 F7 44                 2907,2578,
15:10:29.175 -> 2907,2578,104,164,415        Req: dt=405    (2079)    err=14 f=04 pkt:01 04 00 0C 00 06 B0 0B                                addr=12,cnt=6
15:10:29.208 -> 2907,2578,140,153,3809        Ans: dt=41    (2079)    err=14 f=04 pkt:01 04 0C 43 0B E4 79 43 19 22 A8 45 6D A3 70 A9 C2     140,153,3809,
15:10:29.574 -> 2907,2578,140,153,3809        Req: dt=340    (2079)    err=14 f=10 pkt:AB 10 01 1E 00 02 04 01 F7 00 00 ED 6B                 

..........

15:42:21.057 -> 2923,2579,168,189,4218        Req: dt=337    (2079)    err=16 f=10 pkt:AB 10 01 1E 00 02 04 02 59 00 00 8C CE                 
15:42:21.123 -> 2923,2579,168,189,4218        Req: dt=65    (2079)    err=16 f=04 pkt:01 04 00 48 00 04 71 DF                                addr=72,cnt=4
15:42:21.157 -> 2924,2579,168,189,4218        Ans: dt=29    (2079)    err=16 f=04 pkt:01 04 08 45 35 D3 F0 45 20 F3 4C 87 74                 2924,2579,
15:42:21.555 -> 2924,2579,168,189,4218        Req: dt=417    (2079)    err=16 f=04 pkt:01 04 00 0C 00 06 B0 0B                                addr=12,cnt=6
15:42:21.588 -> 2924,2579,159,193,4724        Ans: dt=32    (2079)    err=16 f=04 pkt:01 04 0C 43 1F 8A 26 43 41 CD 17 45 92 AC FB 98 AC     159,193,4724,
15:42:21.721 -> 2924,2579,159,193,4724        Req: dt=128    (2079)    err=16 f=10 pkt:AB 10 01 1E 00 02 04 02 59 00 00 8C CE                 
15:42:21.787 -> 2924,2579,159,193,4724        Req: dt=65    (2079)    err=16 f=04 pkt:01 04 00 48 00 04 71 DF                                addr=72,cnt=4
15:42:21.821 -> 2924,2579,159,193,4724        Ans: dt=29    (2079)    err=16 f=04 pkt:01 04 08 45 35 D3 F4 45 20 F3 4C 76 B4                 2924,2579,
15:42:22.120 -> 2924,2579,159,193,4724        Req: dt=305    (2079)    err=16 f=04 pkt:01 04 00 0C 00 06 B0 0B                                addr=12,cnt=6
15:42:22.153 -> 2924,2579,121,187,935        Ans: dt=32    (2079)    err=16 f=04 pkt:01 04 0C 42 F1 BE C4 43 3A FE 20 44 69 A8 52 1E 79     121,187,935,
15:42:22.551 -> 2924,2579,121,187,935        Req: dt=383    (2079)    err=16 f=10 pkt:AB 10 01 1E 00 02 04 02 11 00 00 0C D8                 
15:42:22.618 -> 2924,2579,121,187,935        Req: dt=64    (2079)    err=16 f=04 pkt:01 04 00 48 00 04 71 DF                                addr=72,cnt=4
15:42:22.651 -> 2924,2579,121,187,935        Ans: dt=29    (2079)    err=16 f=04 pkt:01 04 08 45 35 D3 F8 45 20 F3 4C 66 B5                 2924,2579,
15:42:23.083 -> 2924,2579,121,187,935        Req: dt=451    (2079)    err=16 f=04 pkt:01 04 00 0C 00 06 B0 0B                                addr=12,cnt=6
15:42:23.116 -> 2924,2579,154,188,4055        Ans: dt=32    (2079)    err=16 f=04 pkt:01 04 0C 43 19 74 A2 43 3B C8 B5 45 7D 2E 4B C3 BE     154,188,4055,
15:42:23.514 -> 2924,2579,154,188,4055        Req: dt=383    (2079)    err=16 f=10 pkt:AB 10 01 1E 00 02 04 02 11 00 00 0C D8                 
15:42:23.581 -> 2924,2579,154,188,4055        Req: dt=65    (2079)    err=16 f=04 pkt:01 04 00 48 00 04 71 DF                                addr=72,cnt=4
15:42:23.581 -> 2924,2579,154,188,4055        Ans: dt=29    (2079)    err=16 f=04 pkt:01 04 08 45 35 D3 FC 45 20 F3 4C 97 75                 2924,2579,
15:42:23.913 -> 2924,2579,154,188,4055        Req: dt=312    (2079)    err=16 f=04 pkt:01 04 00 0C 00 06 B0 0B                                addr=12,cnt=6
15:42:23.946 -> 2924,2579,167,191,4560        Ans: dt=32    (2079)    err=16 f=04 pkt:01 04 0C 43 27 63 88 43 3F 25 C7 45 8D 8F F6 8C 1C     167,191,4560,
15:42:24.278 -> 2924,2579,167,191,4560        Req: dt=337    (2079)    err=16 f=10 pkt:AB 10 01 1E 00 02 04 02 57 00 00 ED 0D                 
15:42:24.344 -> 2924,2579,167,191,4560        Req: dt=65    (2079)    err=16 f=04 pkt:01 04 00 48 00 04 71 DF                                addr=72,cnt=4
15:42:24.377 -> 2909,2579,167,191,4560        Ans: dt=29    (2079)    err=16 f=04 pkt:01 04 08 45 35 D4 04 45 20 F3 4C 37 16                 2909,2579,
15:42:24.776 -> 2909,2579,167,191,4560        Req: dt=408    (2079)    err=16 f=04 pkt:01 04 00 0C 00 06 B0 0B                                addr=12,cnt=6

 

 

=> The Eastron meter seem to be counting (importWh, first number) backwards at the alarm times 🙂  - That should not happen

Edited by Alexander Grau

Having a closer look shows: I did the IEEE 754 binary-to-float decode calculation wrong (will correct it) - and I'm 99% sure the Deye firmware does it wrong too (because the alarm is exactly at the times where my wrong calculation counts backwards  ;-)...

(if decoded correctly, there is no counting backwards anymore)

4535B502   -> should be decoded as:  2907.31298828125    ( verify here: https://cs.lmu.edu/~ray/demos/ieee754.html )
...
4535D3F0   -> should be decoded as:  2909.24609375
4535D3F4   -> should be decoded as:  2909.2470703125
4535D3FC   -> should be decoded as:  2909.2490234375
4535D404   -> should be decoded as:  2909.2509765625

 

Edited by Alexander Grau

...and this looks odd to me (more than 12 KW peak power?? )  - This shows that the Deye inverter is definitively decoding the Watt-hours-in-out meter  data incorrectly (like I did before)...

image.thumb.png.cff4fb445eddbf0eec72cc2f2331d887.png

Edited by Alexander Grau

If you tap on the grid symbol and then on 'energy' at the display, you should see something like above. And probably your charts looks odd too. This clearly shows this is not a cable or data transmission issue (because not transmitted or wrong transmitted data would be simply ignored and skipped). This is an IEEE 754 binary-to-float decoding issue at the Deye side (incorrect data interpretation).

Edited by Alexander Grau

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.