Thanks for your response!
I might have found the root cause. I was using r44 (hot water start temp) to trigger hot water heating mode on during cheapest hours, maximum couple of hours before usual shower time. Then after the hot water mode starts, I return r44 back to my default 40.
But apparently, this r44 = 40 went SOMEWHERE to r34 register, not in my program, but in MQTT, or in ThermIQ or in the pump. But only sometimes. When when r34 got that ”40”, everything in the MQTT write became unresponsive. Nothing could be written, or I couldn’t use fallback write back to 23 curve, but read from ThermIQ worked fine. This backs up your theory that the pump cpu or firmware might have been the real root cause. So, I removed all r44 related from my program, and now all works well with r34. I have logging active in mosquitto broker and it logs also everything going to ThermIQ interface. Looks like I’m all good.
So r34 is the only thing I’m writing to MQTT, and that is enough for me. It’s sad that I had discard my hot water heating optimization, but well, you don’t always get everything you want.
And, I’m having the original FW in my Diplomat, so… I haven’t able to find a newer one and this one works (I have found only one bug from it, +5 and -5 C curve offset changes the curve drawing opposite way).
But yeah, I have a nice setup going on with my house heating optimization. Works really nicely. I have to say the logic and the controller were not that simple to make.