-
Notifications
You must be signed in to change notification settings - Fork 36
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
"PV energy today" and "PV energy total" register missmatch #35
Comments
Hi Tom, I also have a MIC-TL-X and the code works just fine there. There is a naming convention in modbus that the input registers are always number from 3000 and the holding registers from 4000 (or the other way around, I can never remember). This is done so when you look at the number you can immediately tell if it is a holding or input register. But in all the modbus software I used and also in the arduino library, you provide the address from the base 3000 or 4000. So what is addres 3000 in the documentation, in the program that is zero. |
I have checked the mqtt-mosquitto log file. |
Hi Csongor,
I noticed this for some manufactures (i believe the Eastron SDM630/230) with 3000x (for holding) and 4000x (for input), but now after my review i know it has nothing to do with this. These in the documentation described 3000-registers are the right, real and only ones that worked correctly. You can't use register 0001 from a other device alternatively to the 3001 and so on. It is different address with different values in it, even if you get some values out of it and even many of them seems to be the right ones. The documentation (site no: 48) says it very clear: The input register for TL-X begins at 3000-3124, (3125... right after the heading information:
and this means do not start at site no: 33 with input register no: 0. of an different device. In many cases the register are kind identical, but a few are different and others do not even exists. If you use 0001 it will bemapped to 3001 or vice versa. I say it again: there are no input-register 0-124 for MIC-TL-X described in the documentation. One example (then i'm done here):
Here you want to get value of "energy PV1 of actual day", like it is described in input-register list no. 59, right? But instead it reads (with, or without the internal mapping function) the register 3059 | Epv2_today. There is no PV2 in a MIC-TL-X. And that is the reason why i am getting no value. I've found a few other mismatched addresses in your code. No question, it is a total mess what they have done in this documentation. |
OK, I see the problem. The issue is that it will be very difficult to make code changes without having the actual device and testing how it works. Also I am not really sure what is the best way of making the code work for the "old" devices and the MIC-TL-X as well. Maybe this new mapping is something they will roll out for all new models in the future? |
i have sent you an email. |
Hi Csongor,
at first i want to thank you very much, for your work here and also on Youtube. I'm one of your subscriber and have to say, i have learned a ton from what you do and explain... in an age of >55 ;-) Thank you man!
So now, i want to inform you there is a register mismatch and failure in the code For MIC-TL-X.
I do not get total- or today-energy values in mosquitto or influx. I've checked the register with the Growatt Inverter Modbus RTU Protocol V.1.2 and it says on the very first page:
So, there is no input register type range (04) 0 - 124 in the MIC TL-X devices, only 3000-3124 also not even the (04) 3125-3249 range like the manual says.
your code: growattinterface.cpp:
The Growatt RTU Protocol Description for MIC-TL-X input (04) registers says:
3053 | Epv_total H | PV energy total
3054 | Epv_total L | PV energy total
3055 | Epv1_today H | PV1 energy today
3056 | Epv1_today L | PV1 energy today
3057 | Epv1_total H | PV1 energy total
3058 | Epv1_total L | PV1 energy total
Please, could you maybe check and correct this?
Greetings from Karlsruhe/Germany
Tom
The text was updated successfully, but these errors were encountered: