TUYA TV02 TRV valve not closing completely

There is a heating stop feature on the device, but it still allows some water through when enabled. So, is this a matter of yet another Chinese company conning me, or is there a way to fix this problem without having to buy something else (if that even exists)?

Has anyone gotten their valves to close completely with this type of device? If you have another device, which one, and how certain are you that nothing is flowing anymore?

Hi,
I have the same problem… have you solved the issue?

Hi,
I have the same problem. The head seems to “close completly” only during the adaptation phase, then it never reaches closed position again.

During the adaptation phase, head will close until the motor draws about 100mA. And it never reaches this current draw again. Second cycle of adaptation it will stop right before that. My aim is to tell the MCU that motor is drawing less mA so it will squeeze the valve harder.

(of course it will create more stress on the gearbox, but … meh)

I have attached image of the electronics, with the interesting schematic part and scope measurement of the “adc” point.

During adaptation motor is powered for 3ms, and 1ms window is used to sense load on motor. The lower the signal during this time, the higher the load. Idea is to add ~470Mohm resistor that pulls the signal back up.

Ill keep you posted on this experiment :slight_smile:

(new users can embed only single media … here is the electronics)

I found this issue: Image for TuYa TV02 (2.0.4) not parseable · Issue #104 · Koenkk/zigbee-OTA · GitHub
The firmware it points to is actually MCU firmware of the actuator and not the zigbee firmware. After little digging there are some secrets:

  1. did you know the TV02 has 3 buttons ? (reset and 2 more).
  2. if you press the left one (when mounted on valve, encoder pointing at you), keep pressing and insert battery - there is test menu: Display test, temperature test, voltage test

Right button however is more interesting. Its for “current” calibration.

  1. Press right button, insert battery, wait few seconds and it will show time.
  2. use encoder to set time, how long you thing it will take to completly close the valve. In my case 35-37, 37was a bit too much.
  3. press the encoder, center pin will retract, place actuator on valve
  4. press encoder again and timer will start counting.
  5. wait
  6. you will be greeted with number at the end. New value is stored.
  7. remove battery.

At this point you have recalibrated actuator. Reinsert battery and do adaptation again and this time, it should close the valve (if your time was correct)

BE CAREFULL, too large time, and the gearbox will suffer. I think you can actually kill it this way.

I think you will need few iterations. Good luck :slight_smile:

BTW: The number displayed after recalibration is this value in ADC counts.
(3.0V / 4096 * value = voltage of the dip)

t

2 Likes

Well done on that research! This is some very valuable information for anyone installing these. Thank you so much!

My only issue: I can’t seem to find the other two buttons… I probably just don’t know where to look.

Can you maybe share an image of where these buttons are located?

Here you go:

Switches are flaps next to reset.

1 Like

The “adaptation” process is programmed like this:

Motor position is calculated as run time in milliseconds.

  1. retract pin completely (set position to 0xffffffff)
  2. wait for user to press button
  3. move pin to position 0 or hit current limit … it will hit the current limit as starting position was 4*10^9)
  4. reset position to 0.
  5. retract pin to position 18180 (that is 18.18seconds, but in reality closer to 16seconds)
  6. move pin to position 1 (move for 18.179seconds), when reached store current of the motor.
  7. retract pin completely,
  8. save motor position . (max run time of motor, range of movement)
  9. move pin to position 0 using current limit stored in 6.

For states 3. and 6. current limit from calibration is used. After adaptation is done current limit stored in 6. is used for all positioning. If not correct, valve will never close.

Problem here is the non linearity of the positioning. When retracting for 16seconds and pushing for 16 seconds it will not reach the same position. Maybe it will work on new valves but the one i have is 15years old as it needs harder push at the very end to close fully.

My workaround for now is:

  1. calibrate current to your liking (using manual above)
  2. unscrew the tightening screw by 1/2 - 1 rotation.
  3. reconnect batteries
  4. during adaptation, when the pin starts moving back after first full forward run (point 5. in adaptation) quickly fully tighten the screw.
  5. let it finish - done.

Idea behind this is to make the distance for 6.point in adaptation shorter and making it reach the state of fully closed valve.

2 Likes

Thank you, that helped a lot!

Altough after observing my radiator some more, it seems like the valve shuts completely in my case.

I guess it depends on how stiff the valve is or something.

Hi guys I am a beginner and I found this community searching for a solution to the problem I have with my valve controllers (Avatto ME167 pretty the same TRV you are chatting)

I tested a controller valve and I believe there is a problem with the software. I try to explain what happens

T-room = 19

Set 20 (app Tuya, auto mode, knob) → the controller opens the valve (correct)

After opening if I set 18 the controller has different actions depending on HOW I set the temperature, in fact:

  • app Tuya or auto mode or if the T-room reaches the setted Temperature → valve close only partially - like 2-3 seconds (not correct)
  • knob → the valve close totally (correct)

It seems that the controller take in consideration “what to do” depending on “who” give the order.

Congratulations for having studied the TV02 so precisely!

I didn’t understand one thing, how did you decide to set this number 35-37?
Do you know how much the default value is?

Just listen to the water flow. If it stops, its fully closed.

I saw that you set it to 35-37, do you happen to know what the default value is? If I enter this menu the cash starts from 11, but I don’t know if 11 is the factory set value.

Thank you for your great observations and your solution!

What I wonder about, however, is that the trv will stop heating if I set it to 5 degrees (Celsius, don’t know in Farenheit).

So why does it only reduce the valve position a bit when setting it to “heat stop (HS)”, but completely closes the valve when setting it to a very low temperature?

I don’t understand, I followed the entire procedure written here. The TRVs work for a few days but then at a certain point they no longer close completely and therefore even when I turn off the HA via the TRVs they remain slightly open.

Reading through this post cause i wanted to know more about my TRvs …

I do have a completely different problem with them.
They try to heat with 25% opening of the valves, which does not give any water flow and not heat … they are stupid enought to not realize this and room temps keep on falling.

How to get them to heat with 25% (which would be nice)

@robots01 seems to not be around any more … he is talking about “adaptation” and “calibration” and an “encoder” - did he used some kind of programming / Flashing device?

Adaptation is done out each time new batteries are inserted? True or False?
Calibration is done, when?

Adaptation is done each time you enter batteries.
Calibration is triggered by the button when inserting batteries. Its calibration of motor current.
Encoder is the large wheel that can turn left and right.

I really thought i wrote those steps very clearly what they do :slight_smile:

I dont have access to these heads anymore. The firmware is the “file” you have to remove from zigbee2mqtt for it to not mess up the OTA. Its directly flashed into the microcontroller. I have disassembled the firmware and poked around, The steps presented are translated to human readable text from code and what the code does.

1 Like