nathanmarlor / foxess_modbus

FoxESS inverter integration. Connect directly to your FoxESS inverter (no cloud!) for real-time status and control.
MIT License
105 stars 14 forks source link

ac_power_limit_down reports wrong value on H1 #606

Closed Ndrinta closed 2 months ago

Ndrinta commented 2 months ago

Screenshot_20240427-163740.png

Pretty self-explanatory when looking at the picture.

H1 Gen1 Series Inverter V1.11.1

canton7 commented 2 months ago

Presumably that's an old H1, not a H1 G2?

What's the capacity?

(I have a H1 and don't see this)

canton7 commented 2 months ago

What version were you on prior to upgrading to v1.11.0?

canton7 commented 2 months ago

We read the max value from the inverter itself (register 44008). I wonder whether your inverter's started reporting something odd on that address.

We switched which register we read here: https://github.com/nathanmarlor/foxess_modbus/pull/523 . It looks like ac_power_limit_down might not be responding with the right thing in all cases either... Maybe we just fall back to parsing the inverter capacity from the model name in all cases, and scrap that register.

Ndrinta commented 2 months ago

Hi Antony, yes its a Gen1 (H1-6.0-E).

I think I was in 1.11.0 when I first noticed it. I am now in 12.0b2 and it all seems fine, might have been the restart thought...

Ndrinta commented 2 months ago

Is there a way to back track the version of an integration (like an entity)?

iancg commented 2 months ago

I have previously had the same error, but very rarely (and given I control charge and discharge completely with force charge/discharge it must have been relatively very rare, and would correct itself shortly thereafter - when I'm charging/discharging the automation runs every 20 seconds to set the charge/discharge power). At the time I'd assumed it was because of the code that tries to reduce the maximum throughput so that solar production isn't stopped - I thought the version I was on at the time was still parsing the inverter name. When I saw it, the upper limit was just below the maximum 6.0 - I don't have the error but from memory it was something like 5.95 and I was trying to set 6.

My H1-G6 (gen 1) inverters were recently upgraded to Firmware versions Manager 1.71/Slave1.02/Master 1.64 and I also upgraded the integration from 1.10.0b8 to 1.11.0 (then 1.11.1). Since then I have not seen the problem again, but it has only been a few days and was rare before that I can't categorically say it has gone.

Is the value of register 44008 exposed as an sensor? If so I can potentially look back through the history of the values of mine. If not, it might be useful to do so, both for this, but I could also remove the hard coded limit numbers from my automations.

canton7 commented 2 months ago

Is there a way to back track the version of an integration (like an entity)?

HACS might keep track, I'm not sure. The integration itself doesn't know its own version.

canton7 commented 2 months ago

I've removed reliance on the ac_power_limit_down register to give the inverter capacity: it's now parsed straight from the inverter model name.

Ndrinta commented 2 months ago

As always, thanks a lot. You guys are great! Weekends are always productive! Haha