Open bernhardschmidt opened 11 months ago
If I understand the code correctly the validator only checks values directly retrieved from the inverter
https://github.com/jedie/inverter-connect/blob/main/inverter/api.py#L113
while the PV1 Power/PV2 Power/Total Power values are computed afterwards.
https://github.com/jedie/inverter-connect/blob/main/inverter/api.py#L123 calls https://github.com/jedie/inverter-connect/blob/main/inverter/api.py#L29
So the current sanity limits on *Power are effectively a noop
One could limit the Voltage/Current with the validator, but since all other values are also occasionally give bogus data this might just be solved by aborting on bogus reads altogether (I haven't checked yet what the inverter really replies)
There are occasional wrong readings being returned from the inverter and being pushed into MQTT, i.e. here pv1current/pv1power/totalpower
Good:
Bad:
It's a Deye SUN-M80G3-EU-Q0. I thought those wrong reads for power would be guarded by the definitions in inverter/definitions/deye_2mppt_validations.yaml, but apparently they go through at least to MQTT. Unfortunately I have never observed these values with manual readouts, so I can't tell whether print-values would behave differently.
However, "PV1 Power/PV2 Power/Total Power" appear as "Computed". Can they actually be limited by deye_2mppt_validations.yaml?
These wrong reads happen for pretty much all values