-
Notifications
You must be signed in to change notification settings - Fork 144
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
Worked fine for months, stopped with QPIRI reply too short (97 bytes) #120
Comments
I've commented out line that returns after failed CRC check. As far as I can tell it runs fine. If anyone has any idea how the response suddenly went from 98 bytes to 97 and CRC started failing I'd love to figure out what to do to be able to verify that CRC again. After commenting out I now have this output: As far as i can tell everything looks fine. I can't tell any difference in values. |
I added some debug output that prints what CRC we are expecting and what we're getting as well as the buffer itself in hex. This is the result: 28 32 33 30 2E 30 20 33 30 2E 34 20 32 33 30 2E 30 20 35 30 2E 30 20 33 30 2E 34 20 37 30 30 30 20 36 32 30 30 20 34 38 2E 30 20 34 34 2E 30 20 34 32 2E 30 20 35 36 2E 34 20 35 33 2E Indeed we are getting 31 6E. No idea why it worked before and now it fails to calculate proper CRC. |
Anyway the workaround that is working for me is here: https://github.com/lukolszewski/docker-voltronic-homeassistant if anyone else needs it. The CRC check is disabled for QPIRI so you may get garbage data if you have connectivity issues. For me it works fine for the time being. I have no idea why my inverter sends a wrong CRC for this particular response. |
My 5kW EASUN SMH-ii-7K worked fine for months with the fix in inverter.cpp shown below:
(essentially my inverrter is adding extra LF on the end).
Now it stopped working after nothing has changed with the inverter with:
Mon Sep 16 23:03:03 2024 INVERTER: Debug set
Mon Sep 16 23:03:03 2024 INVERTER: Current CRC: 49 C1
Mon Sep 16 23:03:03 2024 INVERTER: QMOD reply size (5 bytes)
Mon Sep 16 23:03:03 2024 INVERTER: QMOD: 5 bytes read: (B
Mon Sep 16 23:03:03 2024 INVERTER: QMOD query finished
Mon Sep 16 23:03:03 2024 INVERTER: Current CRC: B7 A9
Mon Sep 16 23:03:04 2024 INVERTER: QPIGS reply size (110 bytes)
Mon Sep 16 23:03:04 2024 INVERTER: QPIGS: 110 bytes read: (244.4 50.0 229.9 50.0 0436 0252 006 394 52.80 000 100 0031 0000 000.0 00.00 00005 00010000 00 00 00000 010
Mon Sep 16 23:03:04 2024 INVERTER: QPIGS query finished
Mon Sep 16 23:03:04 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:03:07 2024 INVERTER: QPIRI read timeout
Mon Sep 16 23:03:07 2024 INVERTER: QPIRI reply too short (97 bytes)
Mon Sep 16 23:03:07 2024 INVERTER: Current CRC: B4 DA
Mon Sep 16 23:03:07 2024 INVERTER: QPIWS reply size (36 bytes)
Mon Sep 16 23:03:07 2024 INVERTER: QPIWS: 36 bytes read: (00000000001000000000000000000000
Mon Sep 16 23:03:07 2024 INVERTER: QPIWS query finished
Mon Sep 16 23:03:12 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:03:15 2024 INVERTER: QPIRI read timeout
Mon Sep 16 23:03:15 2024 INVERTER: QPIRI reply too short (97 bytes)
Mon Sep 16 23:03:20 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:03:23 2024 INVERTER: QPIRI read timeout
Mon Sep 16 23:03:23 2024 INVERTER: QPIRI reply too short (97 bytes)
Mon Sep 16 23:03:28 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:03:31 2024 INVERTER: QPIRI read timeout
Mon Sep 16 23:03:31 2024 INVERTER: QPIRI reply too short (97 bytes)
It just goes in a loop afterwards. I tried increasing QPIRI buffer, but it made no difference.
I tried decreasing QPIRI buffer to 97 and this chnaged the message to CRC fail:
Mon Sep 16 23:10:07 2024 INVERTER: Debug set
Mon Sep 16 23:10:07 2024 INVERTER: Current CRC: 49 C1
Mon Sep 16 23:10:07 2024 INVERTER: QMOD reply size (5 bytes)
Mon Sep 16 23:10:07 2024 INVERTER: QMOD: 5 bytes read: (B
Mon Sep 16 23:10:07 2024 INVERTER: QMOD query finished
Mon Sep 16 23:10:07 2024 INVERTER: Current CRC: B7 A9
Mon Sep 16 23:10:07 2024 INVERTER: QPIGS reply size (110 bytes)
Mon Sep 16 23:10:07 2024 INVERTER: QPIGS: 110 bytes read: (244.5 50.0 230.2 50.0 0459 0297 006 394 52.90 000 100 0027 0000 000.0 00.00 00006 00010000 00 00 00000 010
Mon Sep 16 23:10:07 2024 INVERTER: QPIGS query finished
Mon Sep 16 23:10:07 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:10:08 2024 INVERTER: QPIRI reply size (97 bytes)
Mon Sep 16 23:10:08 2024 INVERTER: QPIRI: CRC Failed! Reply size: 97 Buffer: (230.0 30.4 230.0 50.0 30.4 7000 6200 48.0 44.0 42.0 56.4 53.5 2 30 110 0 2 3 2 01 0 0 53.0 0 1n
00000 010
Mon Sep 16 23:10:08 2024 INVERTER: Current CRC: B4 DA
Mon Sep 16 23:10:08 2024 INVERTER: QPIWS reply size (36 bytes)
Mon Sep 16 23:10:08 2024 INVERTER: QPIWS: 36 bytes read: (00000000000000000000000000000000
Mon Sep 16 23:10:08 2024 INVERTER: QPIWS query finished
Mon Sep 16 23:10:13 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:10:14 2024 INVERTER: QPIRI reply size (97 bytes)
Mon Sep 16 23:10:14 2024 INVERTER: QPIRI: CRC Failed! Reply size: 97 Buffer: (230.0 30.4 230.0 50.0 30.4 7000 6200 48.0 44.0 42.0 56.4 53.5 2 30 110 0 2 3 2 01 0 0 53.0 0 1n
00000 010
Mon Sep 16 23:10:19 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:10:19 2024 INVERTER: QPIRI reply size (97 bytes)
Mon Sep 16 23:10:19 2024 INVERTER: QPIRI: CRC Failed! Reply size: 97 Buffer: (230.0 30.4 230.0 50.0 30.4 7000 6200 48.0 44.0 42.0 56.4 53.5 2 30 110 0 2 3 2 01 0 0 53.0 0 1n
00000 010
Mon Sep 16 23:10:24 2024 INVERTER: Current CRC: F8 54
Mon Sep 16 23:10:25 2024 INVERTER: QPIRI reply size (97 bytes)
Mon Sep 16 23:10:25 2024 INVERTER: QPIRI: CRC Failed! Reply size: 97 Buffer: (230.0 30.4 230.0 50.0 30.4 7000 6200 48.0 44.0 42.0 56.4 53.5 2 30 110 0 2 3 2 01 0 0 53.0 0 1n
00000 010
The config that worked fine for months is:
qpiri=98
This allows you to modify the buffersize for the qpiws command
qpiws=36
This allows you to modify the buffersize for the qmod command
qmod=5
This allows you to modify the buffersize for the qpigs command
qpigs=110
No idea what is going on. Any tips?
The text was updated successfully, but these errors were encountered: