Why does Venus OS buffer or delay power measurements? Causes ESS swinging

Good news! My ESS is now running for three days without any swinging so the problem seems to be solved and the D-Bus Round-trip time is a good indicator for it.

On last weekend i could start testing again. While ESS was swinging i tried the suggested command on ssh.

  • top: CPU was a little bit more busy. CPU 40-50% instead of 10-20%.
  • vmstat: not available on venus os
  • netstat: Recv-Q = 0

D-Bus Round-trip was very high during that time. See Screenshot.

Then i exchanged my script with a newer version (with the recommended change in registering to VeDbusService) but that did not help.

Then i changed my update interval (it triggers reading from serial device and updating values on D-Bus afterwards) from 500 to 1000ms and that solved my problem. D-Bus Round-trip droped immediately from 2500ms to an average arround 8ms and swinging disapeared. I use “time.sleep(0.2)” in my script and assume that this is pausing my own script only. Am i right or does it block everything else as well?

Publishing around 70 values every 500ms apparently generates a significant load on my system but it is still able to handle it until the ESS function starts publishing setpoint for the inverter with high frequency.

Now i just wonder whats happening on D-Bus every 12 minutes…

Thanks a lot to both of you!