Actually, if it is a gas boiler, then a dry contact relay should close if heat is needed and open when the desired temperature is achieved. But you’ve explained the base logic behind.
Unfortunately this is not possible with the TRVZB, because you can’t create a scene, where the TRVZB heating status is taken in account. I’ve also created a post here about this missing functionality.
The only workaround for now is to have a temperature sensor, which can act as a trigger. Which is kind of dumb, because, you trigger heating on a predefined temperature in the scene, not based on what the TRV is requesting. For example if you have the predefined temperature at 22C, you have 22C in the room, but for some reason you need 25C, if you turn the knob of the TRV, nothing will happen. To achieve 25C, you need to change the predefined temperature from the scene, from 22C to 25C.