johanmeijer / grott

Growatt inverter monitor
https://github.com/johanmeijer/grott/wiki
395 stars 109 forks source link

epvtotal and epv1today value in beta 2.8.2 have a space in the end in the JSON #459

Open rabbadab opened 11 months ago

rabbadab commented 11 months ago

So I have the MOD 10KTL3-XH and I have the grott HA addon and when I use it I could see that it's breaking on the epvtotal and epv1today values because they have a space in the end. I tried to find it in the 2.8.2 beta code and make a PR but it was a bit hard for me with the code. Hope this issue is ok to make instead. I could verify that if I add the space in the HA grott addon py code to epv1today and epvtotal the values work and no error.

The JSON object: bold is the values with space. Below it you can see the error in HA.

{"device": "XXXX", "time": "2023-10-19T13:38:45", "buffered": "no", "values": {"pvserial": "XXXX", "pvstatus": 1, "pvpowerin": 13235, "pv1voltage": 5084, "pv1current": 13, "pv1watt": 6609, "pv2voltage": 5097, "pv2current": 13, "pv2watt": 6626, "pv3voltage": 0, "pv3current": 0, "pv3watt": 0, "pv4voltage": 0, "pv4current": 0, "pv4watt": 0, "pvpowerout": 15062, "pvfrequentie": 5000, "pvgridvoltage": 2293, "pvgridcurrent": 22, "pvgridpower": 5044, "pvgridvoltage2": 2318, "pvgridcurrent2": 22, "pvgridpower2": 5099, "pvgridvoltage3": 2282, "pvgridcurrent3": 22, "pvgridpower3": 5020, "vacrs": 3952, "vacst": 3952, "vactr": 3981, "ptousertotal": 0, "ptogridtotal": 657, "ptoloadtotal": 12968, "totworktime": 33733621, "pvenergytoday": 62, "pvenergytotal": 67901, "epvtotal ": 66720, "epv1today ": 31, "epv1total": 34152, "epv2today": 28, "epv2total": 32568, "epv3today": 0, "epv3total": 0, "etousertoday": 238, "etousertotal": 50251, "etogridtoday": 1, "etogridtotal": 13784, "eloadtoday": 290, "eloadtotal": 101127, "deratingmode": 0, "iso": 65530, "dcir": 202, "dcis": 407, "dcit": 1009, "gfci": 71669, "pvtemperature": 203, "pvipmtemperature": 378, "temp3": 194, "temp4": 0, "temp5": 242, "pbusvoltage": 3092, "nbusvoltage": 3039, "ipf": 20000, "realoppercent": 15, "opfullwatt": 100000, "standbyflag": 0, "faultcode": 0, "warningcode": 0, "systemfaultword0": 0, "systemfaultword1": 0, "systemfaultword2": 0, "systemfaultword3": 0, "systemfaultword4": 0, "systemfaultword5": 0, "systemfaultword6": 0, "systemfaultword7": 0, "invstartdelaytime": 180, "bdconoffstate": 1, "drycontactstate": 0, "edischrtoday": 10, "edischrtotal": 14883, "echrtoday": 16, "echrtotal": 16943, "eacchrtoday": 6, "eacchrtotal": 1247, "priority": 0, "epsfac": 0, "epsvac1": 0, "epsiac1": 0, "epspac1": 0, "epsvac2": 0, "epsiac2": 0, "epspac2": 0, "epsvac3": 0, "epsiac3": 0, "epspac3": 0, "epspac": 0, "loadpercent": 0, "pf": 10000, "dcv": 0, "bdc1_sysstatemode": 513, "bdc1_faultcode": 0, "bdc1_warncode": 701, "bdc1_vbat": 21265, "bdc1_ibat": 1, "bdc1_soc": 12, "bdc1_vbus1": 6136, "bdc1_vbus2": 2990, "bdc1_ibb": 2, "bdc1_illc": 2, "bdc1_tempa": 197, "bdc1_tempb": 0, "bdc1_pdischr": 400, "bdc1_pchr": 0, "bdc1_edischrtotal": 14883, "bdc1_echrtotal": 16943, "bdc1_flag": 1, "bdc2_sysstatemode": 41, "bdc2_faultcode": 48, "bdc2_warncode": 0, "bdc2_vbat": 111, "bdc2_ibat": 85, "bdc2_soc": 1, "bdc2_vbus1": 13, "bdc2_vbus2": 0, "bdc2_ibb": 0, "bdc2_illc": 1, "bdc2_tempa": 0, "bdc2_tempb": 46, "bdc2_pdischr": 3014656, "bdc2_pchr": 0, "bdc2_edischrtotal": 0, "bdc2_echrtotal": 0, "bdc2_flag": 0, "bms_status": 4, "bms_error": 0, "bms_warninfo": 0, "bms_soc": 12, "bms_batteryvolt": 21110, "bms_batterycurr": 65516, "bms_batterytemp": 293, "bms_maxcurr": 1500, "bms_deltavolt": 2500, "bms_cyclecnt": 0, "bms_soh": 100, "bms_constantvolt": 22720, "bms_bms_info": 18880, "bms_packinfo": 0, "bms_usingcap": 0, "bms_fw": 10471, "bms_mcuversion": 0, "bms_commtype": 0}}

Error in HA: "/config/custom_components/grott/sensor.py", line 73, in mqtt_message_received update_group.process_update(payload) File "/config/custom_components/grott/sensor.py", line 147, in process_update sensor.process_update(payload) File "/config/custom_components/grott/sensor.py", line 192, in process_update new_value = self._func(mqtt_data) ^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/grott/sensors/sensors_mqtt.py", line 370, in "func": lambda js: js['values']["epv1today"], ~~~~^^^^^^^^^^^^^ KeyError: 'epv1today'