Goodwe integration: after HA update to 2025.11 some sensors only update every 20 seconds instead of 10

I have updated HA to 2025.11 a few days ago (I’m not sure what the previous version was; I think I last updated some time in spring). Since then I have a weird problem with the Goodwe Inverter integration.
The default update rate for the sensors is 10 seconds, which works for some of the sensors like one called “sensor.active_power_total” for example.
But others like “sensor.active_power” or “sensor.back_up_l1_power” only get a new value every 20 seconds. The latter sensor is especially important to me, because I cross check it with other sensors from an esphome device that reports every 10 seconds. This desync in interval breaks one of my scripts.

Does anyone know where that doubling of the interval is coming from?

To add, although I doubt that it is related: I replaced the inverter’s WiFi dongle pretty much at the same time. It was a “WI-FI KIT” before and is a “WI-FI/LAN KIT 2.0” now. Is there a configuration option of the Goodwe integration that is dependent on the connection hardware?

The weirdness continues (TLDR: it changed back to how it was before without me actively changing any config setting except for disabling and enabling the integration’s automatic polling).

Previously (meaning just a few hours ago) the integration used TCP (port 502) to talk to the inverter. I saw with netstat three connections were opened every 10 seconds. I took a deep into the Goodwe integration source and the Goodwe Python library. The three connections should correspond to three queries for batches of modbus registers (the batches being “__all_sensors”, “__all_sensors_meter” and “__all_sensors_mppt” in the Goodwe Python library’s et.py file). All fine with that. The responses (it’s the contents of all modbus registers in one long string) were coming in every 10 seconds as expected. With the integration’s debug logging enabled the reponses to these requests are logged (in hex). When I checked the responses at the position of the “Back-up L1 Power” register (one of those that didn’t get updated), I saw that the value did indeed change only every second time (i. e. every 20 seconds). But the data were definitely new, because the register with the timestamp value changed every time (i. e. every 10 seconds). So the inverter wasn’t sending any new data apparently.

After I found that out, I switched off the automatic polling of the integration and created an automation, where I could set the update interval, like this:

alias: Goodwe read data trigger
description: ""
triggers:
  - trigger: time_pattern
    seconds: /10
conditions: []
actions:
  - action: homeassistant.update_entity
    metadata: {}
    data:
      entity_id:
        - sensor.active_power_total
mode: single

I wanted to find out, if the value only updating every second time is based on time or number of updates. First thing I found is that a trigger smaller than 10 seconds doesn’t even work. The automation triggers of course, but the integration will not query any faster than every 10 seconds.

And here the weird thing happened: somehow the integration switched over to using UDP (port 8899) to talk to the inverter (which I only found out, because the UDP data are apparently different from the TCP data and I couldn’d find the register in the debug log string anymore)! Shorter than 10 second intervals didn’t work as I said, but the register values were now updating every time even on a 10 second interval. I experimented a little just to check how things work, but eventually I switched off my custom automation and reenabled the automatic polling of the integration. And it is still using UDP now!

Someone please? How? Why? There isn’t even any option to set for the integration that selects the integration’s network protocol. Why did it change on its own? (ignoring the fact for now that the inverter doesn’t seem to send the same things back depending on the protocol you use, which isn’t HA’s fault).