The Shelly TRV (SHTRV-01) is a battery-powered Wi-Fi thermostatic radiator valve from Allterco Robotics. It mounts directly on a standard hot-water radiator valve body and changes the flow of hot water through the radiator by driving the valve pin with an internal motor. TapHome communicates with the device over HTTP on the local network — no bridge, no cloud, no MQTT broker required.
This template exposes the valve position as a separate Valve state device so that a TapHome Smart Rule can drive the valve directly. The device’s own temperature regulation is switched off: every setpoint written from TapHome is sent together with target_t_enabled=false, so the firmware no longer moves the valve by itself.
Shelly TRV is discontinued and has been succeeded by the Bluetooth-based Shelly BLU TRV. Existing units keep working and this template remains fully supported; for new projects consider the successor.
Two alternative templates are provided for the same physical device — choose one based on the intended control pattern.
| Template | Exposes | Use case |
|---|---|---|
| Shelly TRV (main) | Battery + closed-loop thermostat | End-user room temperature control via setpoint (5-30 °C). Firmware drives the valve internally. |
| Shelly TRV (valve) (this template) | Battery + valve dimmer + thermostat (setpoint variant) | Smart Rules that need direct valve control — valve position is exposed as a 0-100 % dimmer, automatic regulation is off. |
Do not import both templates for the same physical device. Both bind to the same endpoint and poll loops will collide — writes will conflict and valve behaviour becomes unpredictable.
Hardware installation
The Shelly TRV has no wiring — it is a mechanical radiator head with internal electronics, powered by a built-in rechargeable battery (Panasonic NCR18650BD, 3.6 V / 6500 mAh). It mounts on the radiator valve body via a metal retaining ring. The device is intended for indoor use only and must be protected from dirt, moisture and splashing water.
Compatible valve bodies
If the radiator already has a thermostatic valve head (typically a dial numbered 1 to 5), the valve body is most likely compatible. Radiators with small manual valves — common where a separate room or central thermostat is installed — are not compatible.
Native thread: M30 × 1.5. The following adapters are included in the retail box:
- Danfoss — RA, RAV, RAVL
- Caleffi
- Giacomini
- M28 × 1.5 — Sam, Slovarm, Comap, TA, Herz, MMA, Remagg
- Pont à Mousson
Third-party adapters (not included) extend compatibility to Gampper, Ista, Meges, Ondal, Oventrop, Rossweiner, Vaillant and others.
Mounting procedure
- Ensure the radiator is turned off and cooled down.
- Turn the existing valve head counter-clockwise until the valve is fully open, then unscrew the metal ring counter-clockwise to remove it.
- Fit the correct adapter if the valve thread is not native M30 × 1.5.
- Fasten the Shelly TRV to the valve body by turning the metal ring clockwise — do not fully tighten it yet.
- Rotate the display to the desired orientation, then fully tighten the metal ring.
Do not try to rotate the device once the metal ring is fully tightened — this can damage it.
Charging
The device charges over USB-C with a USB-C compliant charger of at least 1 A. Fully charge it for about 7 hours before first use. While charging, the battery level line on the display flashes and a dot next to the bottom line indicates a connected charger. Battery life is up to 2 years, depending on how often the valve moves and on Wi-Fi signal quality.
During charging the body of the device warms up and the internal temperature sensor reads incorrectly. Expect skewed room-temperature values while the charger is connected.
Calibration
Calibration teaches the motor the stroke of the particular valve body. Without it TapHome cannot read or write the valve position.
- Briefly press Reset (back of the device). The display shows
CLand the internal motor turns in both directions. - Successful calibration ends with
APon the display — the device is ready to be connected to Wi-Fi. E1means calibration failed: the ring is not tightened enough or the device is not properly seated. Tighten the ring or remount the device, then press and hold Up or Down for 3 seconds and press Down a couple of times to start a new calibration.
Once the device is in TapHome, a new calibration cycle can also be triggered with the Calibrate service action on the module.
Calibrate again after every remount on a different valve body. Until the device reports
calibrated=true, the Valve state device showsDevice is not calibratedand TapHome rejects both valve position and setpoint writes.
Network setup
The Shelly TRV uses 2.4 GHz Wi-Fi (802.11 b/g/n) with a range of up to 30 m, depending on building construction. After calibration it starts in Access Point mode (AP on the display).
If the device is not added to a Wi-Fi network within 3 minutes, it switches off. Briefly press Reset to start it again.
Connecting to Wi-Fi
The device can be connected through the Shelly Cloud mobile app or manually through its embedded web interface:
- Connect a phone or computer to the Wi-Fi network created by the device and open
http://192.168.33.1. - Click Internet & Security and select WIFI MODE - CLIENT.
- Check Connect the Shelly device to an existing WiFi Network, enter the network name and password, and press SAVE.
- Find the device IP address in the local network (router client list or the Shelly device finder tool for Windows or macOS).
Enabling Client mode disables Access Point mode. To return to Access Point mode, hold Reset for 5 seconds.
A DHCP reservation for the device in the router keeps the IP address used by TapHome stable.
Authentication
The template sends HTTP requests without credentials on port 80; HTTPS is not supported on Gen1 devices. If login protection has been enabled in the device web interface, disable it — otherwise TapHome cannot read or control the device.
Configuration
In TapHome, import the template and enter the device IP address as the only import parameter, then build a Smart Rule that drives the Valve state device.
Disable the weekly schedule
Shelly TRV has a built-in weekly scheduler (5 profiles, up to 20 temperature changes per profile). When a schedule is active, the firmware overrides any externally written setpoint at the next scheduled change.
The template reports this as a module error (Schedule is enabled). Before putting the device under TapHome control, either:
- trigger the Disable schedule service action on the module (sends
/settings/thermostats/0?schedule=false), or - select the Disable profile under Weekly schedule in the device web interface or in the Shelly Cloud app.
Automatic valve control
Both the Valve state and the Thermostat device show the warning Automatic valve control is on, because it may conflict with Smart Rule operation, whenever the device reports its own temperature regulation as active. Writing a setpoint from the Thermostat device switches it off again (target_t_enabled=false).
External room sensor (recommended)
Every radiator-mounted thermostat measures close to the radiator, so the built-in sensor deviates from the actual room temperature. Two correction paths are available:
- External sensor — a Shelly H&T or a compatible sensor in the room can send the ambient temperature to the TRV. Enable it in the device web interface → Sensor Settings → TEMPERATURE OFFSET → Enable external temperature corrections endpoint.
- Static offset — use the Set temperature offset service action on the Thermostat device (range ±20 °C) to compensate for a constant bias.
Device capabilities
The template exposes the device as a battery indicator, a valve position dimmer and a thermostat. Module-level diagnostics and actions are the same as in the main template.
Valve state
The valve actuator is exposed as a dimmer (0-100 %). TapHome reads the position from thermostats[0].pos and writes it via /thermostats/0?pos={0-100}; the firmware moves the motor to the requested position. A negative position means the valve is not calibrated and the device shows Device is not calibrated.
Service attributes report Force close, Extra pressure and Automatic calibration correction. Service actions toggle force-close mode (valve stays fully closed) and extra-pressure mode (stronger actuation for stiff valves), so that Smart Rules can handle scenarios such as emergency close, pre-heating or boost sequences.
Thermostat
The thermostat reads the measured room temperature (thermostats[0].tmp.value) and the stored target (thermostats[0].target_t.value). A setpoint write sends both target_t and target_t_enabled=false to /settings/thermostats/0, so the firmware does not move the valve on its own — the setpoint serves as a reference value for the Smart Rule that drives the Valve state device.
The only service attribute is Temperature offset [°C], with the matching Set temperature offset action. The device adds a Temperature sensor error when the sensor reading is invalid.
Battery status
The battery is exposed as a multi-value switch derived from the reported charge level and charger state. The charger state takes precedence over the level:
| State | Condition |
|---|---|
| Critical | bat.value 25 % or less |
| Low | bat.value 26-50 % |
| Normal | bat.value 51-75 % |
| Full | bat.value above 75 % |
| Charging | charger connected |
Two service attributes report the raw battery charge (%) and voltage (V). The module raises Low battery below 50 % and Battery charge is criticaly low below 25 %.
Module diagnostics and actions
The module polls /status and /settings every 3 seconds and exposes device-wide diagnostics and actions:
- Diagnostics: Wi-Fi SSID, IP address, MAC, received signal strength, calibration state, schedule on/off, display brightness (1-7) and display flipped state. A warning appears when a firmware update is available.
- Actions: Disable schedule, Reboot, Calibrate (triggers
/calibrate), Update firmware (pullsSHTRV-01_build.gblfrom the official Shelly EU firmware server), Set display brightness and Flip display.
Troubleshooting
Device is not calibrated
Valve position and setpoint writes are rejected with Device is not calibrated until the TRV completes a successful calibration cycle.
- Make sure the device is firmly seated on the valve body — the ring must be tight enough for the motor to load against the valve pin.
- Trigger the Calibrate service action on the module, or start calibration on the device (hold Up or Down for 3 seconds, then press Down a couple of times). The display shows
CLwhile the motor moves in both directions. - On success the Calibrated attribute changes to
Yes;E1on the display usually indicates an incorrect mount.
Valve moves although no Smart Rule changed it
The device’s own regulation or the weekly schedule is active. Check the Automatic valve control is on warning and the Schedule module attribute — write a setpoint from the Thermostat device to switch automatic control off, and trigger Disable schedule if the schedule is on.
Room temperature reads too high
- Charger connected. Room-temperature readings are invalid while charging. Unplug USB-C and allow the device to cool down.
- Built-in sensor bias. The sensor sits close to the radiator. Enable the external temperature corrections endpoint and pair a Shelly H&T (or a compatible sensor) in the same room, or apply a static Set temperature offset.
Display shows E1 / E2
To check the status, press and hold Up and Down together for 5 seconds and scroll with Up or Down.
E1— calibration problem. Remount the device, tighten the ring carefully and start a new calibration cycle.E2— temperature sensor problem. The template adds aTemperature sensor erroron the Thermostat device. If the issue persists after a reboot, contact Shelly support.
Device unreachable
- Verify the TRV is connected to Wi-Fi — press and hold Up and Down for 5 seconds and scroll through the status parameters;
COindicates a connection to the Wi-Fi network,APmeans the device is still in Access Point mode. - Confirm the TapHome Core and the TRV are on the same network / VLAN.
- Try the mDNS hostname (
shellytrv-XXXXXX.local) instead of the IP address — the DHCP lease may have changed. - Open
http://{device-ip}/statusin a browser. If the JSON response arrives, the device is reachable and the problem is in the TapHome configuration.
Gen1 Shelly devices accept only 2 concurrent HTTP connections. If TapHome and another system poll the same device at the same time, communication becomes unreliable. Keep the poll interval at the template default (3 s) and avoid additional pollers.
Enabling MQTT on Gen1 Shelly devices disables the Shelly Cloud connection. TapHome uses HTTP only — leave MQTT off.