TRV Zigbee - Temperature measure not working

Hi Sonoff team,
I decided recently to switch from Netatmo to your TRVZB, but unfortunately only after that I start to use them (10xTRV) I found that when it turn on it is doing a totally wrong calculation of the temperature.

I will try to explain it better:
Let assume that in the room there are 18°C and the TRV was off from long time, the measure of the temperature by the TRV in that case is correct, it is showing 18°C as it is.

The TRV is configured to turn ON when the room reach the 18°C and to turn OFF when it reach the 21°C

Now in my current scenario, it will turn ON because in the room there are 18°C, and this is ok, but the problem is that after few minutes (2–5 min) the temperature close to the TRV will reach maybe 22°C or even more and the TRV will think that it is time to turn itself to OFF.
And this is absolutely wrong, in the room there are still 18°C and before that the TRV will reach again the 18°C in the room we will have already 17°C.

I think that the software of the TRV should take the measure of the temperature in a different way from when it is ON and when it is OFF.

For example :

TRV Meausre = The measure of the TRV sensor
User-Calibration = The “Calibration” configured in eWelink by the final user
Core-Calibration = A coefficient that you will study to approximate the temperature when the TRV is ON from more than 10 min - My suggestion can be to take dynamically the temperature of the room when it was OFF from more than 10min (measure A), wait for 10min meanwhile it is ON, and take a new measure now of the room (measure B), then after 10min your Core-Calibration will be = B-A, and it will stay like this till the TRV stay OFF again for more than 10 min, after this time the Core-Calibration can be calculated again.

  • If it is OFF from more than 10min - TRV Meausre + User-Calibration

  • If it is OFF from less than 10min - TRV Meausre + User-Calibration + Core-Calibration

  • If it is ON from less than 10min - TRV Meausre + User-Calibration

  • If it is ON from more than 10min - TRV Meausre + User-Calibration + Core-Calibration

Let me know if you like my idea :wink:


What you are explaining is an “intrinsic” problem of every Thermostatic Valve mounted in a Heating Radiator: It is measuring the temperature on the point (in space) where its temperature sensor is, about 15 cm. away from the mounting point of the Valve itself.
The Thermostatic Valve is a closed control loop by itself, that means, it measures and reacts (open/close the water flow by itself). It would be nice to be able to “break this control loop” into just a sensor and an actuator, then you could create your own control loop with another temperature sensor sitting in another “more relevant” spot of your room.

From what you say, I imagine that you already have another temperature sensor in that “more relevant” position in the room and, therefore, you assume as that measure is the “temperature of the room”. Therefore you say that “the room is still at 18°, but on the TRV it is 22°”. Actually the whole room has different temperatures, if you measure in the “straight line” between the TRV and the other sensor, you would get values in between.

So, the first thing that you would need is more air flow to equalize the temperatures. In a “Perfect world with perfect airflow” you would have the same temperature both in the TRV measurement and the other sensor. In a normal “not perfect” world, the TRV will usually be measuring a higher temperature, even when it is off, since the radiator will not cool itself all the way into the rooms temperature (it will still have hot water inside, even if it is not flowing).

You mention that you configure the TRV to turn on at 18° and turn off at 21°. I am not sure how are you doing this, at least in the eWelink app I cannot replicate that setup, if the set point is 18°, i will turn on “a little” below (at about 17.5°) and off “a little” above (at about 18.5°). I can see that on the temperature graph of the app itself. I imagine those values (+/- 0.5°) can be changed with other applications (I am still trying to get my Node-red setup to work, there I can read the configured range and in theory I should be able to change it but so far I haven’t managed to do it) but I don’t think it would be a good idea to do it. You would be changing the “hysteresis” (reaction delay) of the control loop of the thermostatic valve, but that doesn’t really fix the main problem (that the temperature changes take too much time to cover the whole room). You would have longer on/off reaction cycles on the valve, but the rest of the room would stay like it is now.