---
title: "Shelly TRV"
description: "Controlla il setpoint ambiente (5-30 °C) o la posizione della valvola (0-100 %) del TRV Wi-Fi a batteria via HTTP. Template TapHome per Shelly TRV."
url: "https://taphome.com/it/compatibility/shelly-trv/"
language: it
lastmod: 2026-04-18
generator: hugo
ai:
  topics: ["http","thermostat","wifi","battery-powered","radiator-valve","mdns"]
  questions: ["Come integrare Shelly TRV con TapHome?","Qual è la differenza tra i template Shelly TRV thermostat e valve?","Come calibrare Shelly TRV dopo il montaggio sul radiatore?","Perché Shelly TRV rifiuta la scrittura del setpoint da TapHome?","Perché Shelly TRV legge una temperatura ambiente troppo alta?","Come disattivare il programma settimanale perché TapHome controlli il setpoint?"]
---

# Shelly TRV

Comunicazione: Packet Parser → HTTP

- [Knowledge Base Shelly TRV](https://kb.shelly.cloud/knowledge-base/shelly-trv)
- [Documentazione API Shelly Gen1](https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv)

> Indirizzo di rete
> 
> TapHome raggiunge il dispositivo all'indirizzo inserito durante l'importazione. Assegna al dispositivo un indirizzo fisso — una prenotazione IP nel router, oppure il suo nome mDNS se lo supporta —, altrimenti l'integrazione smette di funzionare quando il router cambia l'indirizzo.
> 
> [Preparazione della rete](https://taphome.com/it/docs/setup/network-preparation/)

## Guida all'integrazione

Lo Shelly TRV (SHTRV-01) è una testa termostatica Wi-Fi a batteria di Allterco Robotics. Si monta direttamente sul corpo valvola di un radiatore ad acqua calda e regola la temperatura ambiente muovendo lo spillo della valvola tramite un motore interno. TapHome comunica con il dispositivo via HTTP sulla rete locale — senza gateway, senza cloud, senza broker MQTT.

Shelly TRV è **fuori produzione** ed è stato sostituito dalla variante Bluetooth [Shelly BLU TRV](https://www.shelly.com/products/shelly-blu-trv). Le unità esistenti continuano a funzionare e il template rimane pienamente supportato; per i nuovi progetti è consigliabile il successore.

Per lo stesso dispositivo fisico sono disponibili due template alternativi — scegli in base alla modalità di controllo desiderata.

| Template | Espone | Caso d'uso |
|----------|--------|------------|
| **Shelly TRV** (main) | Batteria + termostato a ciclo chiuso | Controllo della temperatura ambiente da parte dell'utente finale tramite setpoint (5-30 °C). Il firmware pilota la valvola internamente. |
| **Shelly TRV (valve)** | Batteria + dimmer valvola + termostato (variante setpoint) | Smart rule che richiedono l'override diretto della valvola — posizione valvola esposta come dimmer 0.0-1.0. |

> [!WARNING]
> Non importare entrambi i template per lo stesso dispositivo fisico. Entrambi si legano allo stesso endpoint e i loop di polling entrano in conflitto — le scritture si contendono e il comportamento della valvola diventa imprevedibile.

## Installazione hardware

Shelly TRV **non richiede cablaggi** — è una testa meccanica per radiatore con elettronica interna, alimentata da una batteria Li-ion integrata (Panasonic NCR18650BD, 3,7 V / 6500 mAh). Si monta direttamente sul corpo valvola tramite una ghiera metallica di fissaggio.

### Corpi valvola compatibili

Filetto nativo: **M30 × 1,5**. Gli adattatori inclusi nella confezione sono:

- **Danfoss** — RA, RAV, RAVL
- **Caleffi**
- **Giacomini**
- **M28 × 1,5** — Sam, Slovarm, Comap, TA, Herz, MMA, Remagg
- **Pont à Mousson**

Gli adattatori di terze parti (non inclusi) estendono la compatibilità a Gampper, Ista, Meges, Ondal, Oventrop, Rossweiner, Vaillant e altri.

### Procedura di montaggio

1. Assicurati che il radiatore sia spento e raffreddato.
2. Ruota la manopola manuale esistente in senso antiorario fino a fine corsa (completamente aperta), svita poi la ghiera metallica e rimuovi la manopola.
3. Se il filetto della valvola non è M30 × 1,5, applica l'adattatore corretto.
4. Appoggia Shelly TRV sul corpo valvola e stringi la ghiera in senso orario — saldamente, ma senza forzare. Sia un serraggio troppo lento sia uno troppo stretto provocano un errore di calibrazione.
5. Orienta il display nella posizione desiderata prima di stringere definitivamente la ghiera.
6. Premi brevemente **Reset** (retro del dispositivo). Il display mostra `CL` (calibrazione in corso) e il motore interno si muove in entrambe le direzioni. Una calibrazione riuscita termina con `AP` sul display; in caso di errore compare `E1`.

> [!NOTE]
> La calibrazione deve essere eseguita dopo ogni rimontaggio su un corpo valvola diverso. Finché `calibrated=true` non è raggiunto, le scritture di setpoint e posizione da TapHome vengono rifiutate con `Device is not calibrated`.

### Ricarica

Il dispositivo si ricarica via **USB-C** (cavo in dotazione, alimentatore no). Un caricatore USB-C ≥1 A porta la batteria da scarica a piena in circa 5 ore. L'autonomia tipica è di ~2 anni (~5 mesi di stagione di riscaldamento continua con uso tipico).

> [!WARNING]
> Durante la ricarica il corpo del dispositivo si scalda e il sensore di temperatura interno legge in modo errato. Finché `charger` non è `disconnected`, aspettati valori di temperatura ambiente falsati.

## Configurazione

### Import in TapHome

Durante l'import del template TapHome chiede un singolo parametro:

| Parametro | Descrizione | Predefinito |
|-----------|-------------|-------------|
| `IpAddress` | Indirizzo IP locale o hostname mDNS del dispositivo | `192.168.0.1` |

La porta `80` è fissa. HTTPS non è supportato su Gen1. HTTP Basic Auth deve essere **disattivato** sul dispositivo — TapHome non si autentica verso i dispositivi Gen1 Shelly.

Quando possibile, usa l'hostname mDNS (`shellytrv-XXXXXX.local`) — è resistente ai cambi di lease DHCP. L'**IP Scanner** di TapHome (Impostazioni → Rete → Scansione) individua sia l'IP sia l'hostname mDNS.

### Disattivare il programma settimanale

Shelly TRV ha uno scheduler settimanale integrato (5 profili, fino a 18 variazioni programmate alla settimana per profilo). Se il programma è attivo, il firmware sovrascrive qualsiasi setpoint scritto dall'esterno al successivo evento programmato — i setpoint di TapHome vengono riportati in silenzio.

Il template segnala questa condizione con un avviso (`Schedule is enabled`). Prima di affidare il controllo a TapHome, puoi:

- eseguire l'azione di servizio **Disable schedule** sul modulo (invia `/settings/thermostats/0?schedule=false`), oppure
- selezionare il profilo **Disable** nell'app Shelly Cloud o nell'interfaccia web del dispositivo.

### Sensore ambiente esterno (consigliato)

Il sensore di temperatura integrato è fisicamente vicino al tubo caldo del radiatore e legge tipicamente **1-3 °C in più rispetto alla reale temperatura ambiente**. Sono disponibili due percorsi di correzione:

- **Sensore esterno** — abbina un termometro Wi-Fi separato (ad esempio **Shelly H&T**) tramite l'interfaccia web del dispositivo → **Sensor Settings** → **Enable external temperature corrections endpoint**. Il sensore esterno invia poi la temperatura ambiente al TRV tramite POST.
- **Offset statico** — usa l'azione di servizio **Set temperature offset** sul dispositivo Thermostat (intervallo ±20 °C) per compensare un bias costante.

Per il miglior comfort termico combina un sensore esterno affidabile con un piccolo offset statico come riserva.

## Funzionalità del dispositivo

Il template principale espone il dispositivo come indicatore di batteria più termostato a ciclo chiuso. Il template valve mantiene lo stesso modulo e la stessa batteria, ma espone la posizione della valvola come dimmer e usa una variante di setpoint che, in scrittura, disabilita la regolazione PID automatica. Le diagnosi e le azioni a livello di modulo sono identiche nei due template.

### Stato batteria

La batteria è esposta come **interruttore a più valori** derivato dal livello di carica riportato e dallo stato del caricatore USB-C. Lo stato del caricatore ha la precedenza sul livello:

| Stato | Condizione |
|-------|-----------|
| Critical | `bat.value < 25` |
| Low | `bat.value 25-50` |
| Normal | `bat.value 50-75` |
| Full | `bat.value > 75` |
| Charging | `charger != disconnected` |

Due attributi di servizio aggiuntivi riportano il livello di carica grezzo (`%`) e la tensione di cella (V, nominale ~3,7 V, intervallo tipico 2,6-4,2 V). Il template genera `Low battery` sotto il 50 % e `Battery charge is critically low` sotto il 25 %.

### Termostato (template principale)

Termostato ambiente a ciclo chiuso: TapHome scrive il setpoint target e il firmware TRV pilota internamente la posizione della valvola sulla base del sensore di temperatura integrato (o esterno).

- **Lettura:** temperatura ambiente misurata (`thermostats[0].tmp.value`) e target attivo (`thermostats[0].target_t.value`)
- **Scrittura:** setpoint 5-30 °C tramite `/settings/thermostats/0?target_t={Se}`

Attributi supplementari del termostato includono **Temperature offset [°C]**, **Valve position [%]** (sola lettura, per visibilità dell'uscita PID), **Force close**, **Extra pressure** e **Automatic calibration correction**. Le corrispondenti azioni di servizio consentono a TapHome di impostare l'offset, attivare/disattivare la modalità force-close (la valvola resta completamente chiusa indipendentemente dal setpoint) e la modalità extra pressione (aumenta l'attuazione per valvole dure).

Le scritture di setpoint falliscono con `Device is not calibrated` finché `calibrated=false`, e il template aggiunge un avviso quando il programma settimanale è attivo (poiché il firmware sovrascrive le scritture esterne al successivo evento programmato).

### Dimmer della valvola (template valve)

Un template alternativo espone l'attuatore della valvola direttamente come dispositivo dimmer (0.0-1.0 → 0-100 %). TapHome scrive la posizione tramite `/thermostats/0?pos={Le*100}` — il firmware porta il motore nella posizione richiesta e disabilita implicitamente il controllo automatico della temperatura.

Il template valve aggiunge gli attributi `Force close`, `Extra pressure` e `Automatic calibration correction` (più le corrispondenti azioni toggle) sul dispositivo valvola, così che gli autori di smart rule possano pilotare il motore direttamente per scenari come chiusura di emergenza, preriscaldo manuale o sequenze boost.

### Termostato (variante del template valve)

Il template valve espone ancora un dispositivo termostato, in modo che il setpoint possa essere scritto dallo stesso gruppo di dispositivi TapHome, ma il suo script di scrittura invia **sia** `target_t` sia `target_t_enabled=false`, così che il PID del firmware non si contenda la valvola guidata manualmente. Gli attributi di servizio sono ridotti a **Temperature offset [°C]** (gli attributi del corpo valvola come `force_close` e `valve_state` si spostano invece sul dispositivo valvola). Il template avvisa quando viene osservato `target_t.enabled=true` — indica un conflitto tra dimmer della valvola e controllo automatico.

### Diagnostica e azioni del modulo

Il modulo (head unit) interroga `/status` e `/settings` ogni 3 secondi ed espone diagnosi e azioni a livello di dispositivo:

- **Diagnostica:** SSID Wi-Fi, indirizzo IP, MAC, intensità del segnale ricevuto (RSSI in dBm), stato di calibrazione, programma on/off, luminosità display (1-7) e stato di display capovolto.
- **Azioni:** Disable schedule, Reboot, Calibrate (invia `/calibrate`), Update firmware (scarica `SHTRV-01_build.gbl` dal server firmware ufficiale Shelly EU), Set display brightness e Flip display.

### Funzionalità aggiuntive

Il dispositivo espone anche — ma i template attuali non le coprono ancora — diverse funzioni Gen1: rilevamento passivo di finestra aperta (`/window`), l'azione simmetrica **Force open**, temperatura ambiente di riserva (`auto_temp`), blocco bambini, ritardo di chiusura automatica in caso di finestra aperta, sensore del setpoint programmato (`schedule_t`), indice del profilo attivo, minuti di boost residui e l'azione **Trigger boost** (`/thermostats/0?boost_minutes=N`), lo stato termico dell'elettronica interna (`tmp_state`) e la disponibilità dell'aggiornamento firmware come sensore. Il push CoIoT e il trasporto MQTT sono supportati a livello di dispositivo ma non utilizzati — TapHome preleva invece `/status` ogni 3 s. Possono essere aggiunti in un futuro aggiornamento del template.

## Risoluzione dei problemi

### Device is not calibrated

Ogni scrittura di setpoint e posizione valvola restituisce `Device is not calibrated` finché il TRV non completa un ciclo di calibrazione riuscito.

1. Assicurati che il dispositivo sia saldamente seduto sul corpo valvola — la ghiera di fissaggio deve essere abbastanza stretta da permettere al motore di caricare contro lo spillo della valvola, ma non tanto da deformarla.
2. Esegui l'azione di servizio **Calibrate** sul modulo (invia `/calibrate`). Il display mostra brevemente `CL` mentre il motore si muove in entrambe le direzioni.
3. In caso di successo `calibrated` diventa `true` e le scritture vanno a buon fine; in caso di errore il display mostra `E1` — di solito indica un montaggio non corretto.

### Il setpoint viene ripristinato ogni poche ore

È il programma settimanale che sovrascrive le scritture esterne. Controlla l'attributo di servizio **Schedule** — se attivo, esegui l'azione **Disable schedule** sul modulo o disabilita il profilo attivo nell'app Shelly Cloud.

### La temperatura ambiente legge troppo alta

Due cause comuni:

- **Caricatore collegato.** Le letture di temperatura ambiente sono invalide finché `charger != disconnected`. Stacca l'USB-C e lascia raffreddare il dispositivo.
- **Bias del sensore integrato.** Il sensore è vicino ai tubi caldi e legge tipicamente 1-3 °C in più. Puoi abilitare l'endpoint di correzione della temperatura esterna e abbinare uno Shelly H&T (o termometro Wi-Fi compatibile) nella stessa stanza, oppure applicare un **Set temperature offset** statico (ad esempio `-1,5 °C`).

### Il display mostra E1 / E2

`E1` — problema di calibrazione. Rimonta il dispositivo, stringi con cura la ghiera e avvia un nuovo ciclo di calibrazione.

`E2` — problema del sensore di temperatura. `tmp.is_valid` diventa `false` in `/status` e il template aggiunge un errore `Temperature sensor error`. Se il problema persiste dopo un riavvio, il sensore è probabilmente guasto — contatta il supporto Shelly.

### Dispositivo non raggiungibile

1. Verifica che il TRV sia connesso al Wi-Fi — tieni premuto **Up + Down** per 5 s e scorri i parametri di stato; `CO` indica un client Wi-Fi connesso.
2. Conferma che la CCU TapHome e il TRV siano sulla stessa rete / VLAN — Shelly Gen1 non instrada tra subnet per impostazione predefinita.
3. Prova l'hostname mDNS (`shellytrv-XXXXXX.local`) al posto dell'IP — il lease DHCP potrebbe essere cambiato.
4. Apri `http://{device-ip}/status` nel browser. Se arriva la risposta JSON, il dispositivo è raggiungibile e il problema è nella configurazione TapHome.

> [!WARNING]
> I dispositivi Gen1 Shelly accettano solo **2 connessioni HTTP simultanee**. Se TapHome e un altro sistema (Home Assistant, Node-RED) interrogano lo stesso dispositivo contemporaneamente, la comunicazione diventa instabile. Mantieni l'intervallo di polling al valore predefinito del template (3 s) ed evita poller aggiuntivi.

> [!NOTE]
> Abilitare MQTT sui dispositivi Gen1 Shelly **disabilita in modo irreversibile Shelly Cloud**. TapHome usa solo HTTP — lascia MQTT disattivato salvo tu voglia esplicitamente migrare fuori da Shelly Cloud.

## Come installare in TapHome

### Prerequisiti

- Dispositivo Shelly installato e acceso
- Rete Wi-Fi locale (2,4 GHz)
- TapHome CCU sulla stessa rete

### Passaggio 1 — Collegare Shelly al Wi-Fi

**Opzione A — App Shelly (consigliata):**

1. Scarica l'[app Shelly](https://www.shelly.com/en/support/shelly-app) (iOS / Android)
2. Tocca **+** → **Add Device** e segui la procedura guidata di associazione Bluetooth
3. Inserisci le credenziali Wi-Fi quando richiesto

**Opzione B — Modalità AP (senza app):**

1. Al primo avvio il dispositivo crea un hotspot: `ShellyXXX-AABBCCDDEE`
2. Collega il tuo telefono/PC a questo hotspot
3. Apri `http://192.168.33.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Inserisci SSID e password → **Save**

> [!NOTE]
> Shelly supporta solo reti a **2,4 GHz**. Le reti a 5 GHz non appariranno nella scansione.

### Passaggio 2 — Trovare l'indirizzo IP

Dopo la connessione al Wi-Fi, trova l'indirizzo IP assegnato tramite uno di questi metodi:

- **App Shelly:** Dettaglio dispositivo → **Device info** → Indirizzo IP
- **Interfaccia web Shelly:** Connettiti all'AP del dispositivo prima della configurazione Wi-Fi — l'IP viene mostrato dopo il salvataggio
- **Tabella DHCP del router:** Cerca un hostname come `shelly1pm-AABBCCDDEE`
- **mDNS:** Esegui il ping di `shelly<model>-<mac>.local` (es. `shelly1pm-AABBCCDDEE.local`) dalla stessa rete

> [!TIP]
> Assegna un **IP statico** (prenotazione DHCP) nel tuo router per il dispositivo Shelly per evitare che l'indirizzo cambi dopo un riavvio del router.

### Passaggio 3 — Configurazione in TapHome

1. In TapHome, aggiungi un nuovo modulo **Packet Parser (HTTP)**
2. **IP Address:** inserisci l'IP dal passaggio 2 (es. `192.168.1.50`)
3. **Port:** `80` (predefinito, nessuna modifica necessaria)
4. Importa il template — TapHome interrogherà periodicamente `/status` per leggere lo stato del dispositivo

> [!NOTE]
> L'autenticazione HTTP è disabilitata per impostazione predefinita sui dispositivi Shelly. Se hai abilitato la protezione con accesso, TapHome attualmente non supporta HTTP Basic Auth — mantieni l'autenticazione disabilitata per l'integrazione con TapHome.

## Dispositivi disponibili 2

Questi dispositivi compaiono in TapHome dopo l'importazione.

Shelly TRV Modulo

Attributi di servizio

|                                |                                                                                                                                                  |
|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| SSID Wi-Fi                     |                                                                                                                                                  |
| Indirizzo IP                   |                                                                                                                                                  |
| Indirizzo MAC                  |                                                                                                                                                  |
| Intensità del segnale ricevuto | Intensità del segnale Wi-Fi in dBm — intervallo tipico buono da -55 a -70 dBm, sotto -80 dBm inaffidabile                                        |
| Calibrato                      | Se la calibrazione meccanica della valvola è completa — le scritture di setpoint e posizione vengono rifiutate finché la calibrazione non riesce |
| Programma                      | Programma settimanale on/off — se attivo, il firmware sovrascrive i setpoint esterni al prossimo evento programmato                              |
| Luminosità display             | Livello di luminosità del display LED (1 = debole, 7 = forte)                                                                                    |
| Display capovolto              | Se il display LED è ruotato di 180° per il montaggio capovolto                                                                                   |

Azioni di servizio

|                            |                                                                                                                             |
|----------------------------|-----------------------------------------------------------------------------------------------------------------------------|
| Disattiva programma        | Disattiva il programma settimanale in modo che i setpoint esterni non vengano ripristinati al successivo evento programmato |
| Riavvio                    |                                                                                                                             |
| Calibra                    | Avvia il ciclo di calibrazione meccanica della valvola — obbligatorio dopo ogni rimontaggio su un corpo valvola diverso     |
| Aggiorna firmware          | Avvia l'aggiornamento firmware OTA dal server firmware ufficiale Shelly EU                                                  |
| Imposta luminosità display | Imposta la luminosità del display LED (1 = debole, 7 = forte)                                                               |
| Capovolgi display          | Commuta la rotazione del display di 180° per valvole montate capovolte                                                      |

Variabili personalizzate

Lettura (modulo)

```taphome
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
    status := response.Content;
END

response := SENDHTTPREQUEST("/settings");
IF response.IsSuccess
    settings := response.Content;
END

if(PARSEJSON(status, "$.thermostats[0].schedule"), adderror("Schedule is enabled"));
if(PARSEJSON(status, "$.update.has_update"), addwarning("Firmware update is available"));

var bat := PARSEJSON(status, "$.bat.value");
if bat < 25
    addwarning("Battery charge is criticaly low");
elseif bat < 50
    addwarning("Low battery");
end
```

Attributi di servizio

Wifi

```taphome
PARSEJSON(status, "$.wifi_sta.ssid")
```

${ipAddress}

```taphome
PARSEJSON(status, "$.wifi_sta.ip")
```

MAC

```taphome
PARSEJSON(status, "$.mac")
```

Received signal strength

```taphome
PARSEJSON(status, "$.wifi_sta.rssi")
```

Calibrated

```taphome
if(PARSEJSON(status, "$.calibrated"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Schedule

```taphome
 VAR response := SENDHTTPREQUEST("/thermostats/0");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(SWITCH(PARSEJSON(content, "$.schedule"), true, "On", "Off"));
END
```

Display brightness

```taphome
PARSEJSON(settings, "$.display.brightness")
```

Display flipped

```taphome
if(PARSEJSON(settings, "$.display.flipped"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Azioni di servizio

Disable schedule

```taphome
var response := SENDHTTPREQUEST("/settings/thermostats/0?schedule=false");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Reboot

```taphome
VAR response := SENDHTTPREQUEST("/reboot");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Calibrate

```taphome
VAR response := SENDHTTPREQUEST("/calibrate");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Update firmware

```taphome
VAR response := SENDHTTPREQUEST("/ota?url=http://shelly-api-eu.shelly.cloud/firmware/SHTRV-01_build.gbl");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Set display brightness

Parametri: Brightness (1-7) (1–7 Br)

```taphome
var response := SENDHTTPREQUEST("/settings?display_brightness=" + Br);
if(response.IsSuccess, return("OK"), return(response.Content));
```

Flip display

```taphome
var response := SENDHTTPREQUEST("/settings?display_flipped=" + if(PARSEJSON(settings, "$.display.flipped"), "false", "true"));
if(response.IsSuccess, return("OK"), return(response.Content));
```

Batteria Interruttore multivalore Solo lettura

Livello di carica della batteria come interruttore a più valori — Critical (&lt;25 %), Low (25-50 %), Normal (50-75 %), Full (&gt;75 %), Charging (USB-C collegato). Lo stato di carica ha la precedenza sul livello

numeric Unità: % multi-value switch

Valori / Stati: Critical · Low · Normal · Full · Charging

Lettura stato interruttore

```taphome
if PARSEJSON(status, "$.charger")
    return(4);
end

var bat := PARSEJSON(status, "$.bat.value");
if bat > 75
    return(3);
elseif bat > 50
    return(2);
elseif bat > 25
    return(1);
else
    return(0);
end
```

Attributi di servizio

Value \[%]

```taphome
PARSEJSON(status, "$.bat.value");
```

Voltage \[V]

```taphome
PARSEJSON(status, "$.bat.voltage");
```

Termostato Termostato Lettura e scrittura

Termostato ambiente a ciclo chiuso — scrittura della temperatura target (5-30 °C), il firmware pilota la valvola internamente tramite il sensore integrato o esterno

numeric Unità: °C

Attributi di servizio

|                                          |                                                                                                                                          |
|------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| Offset temperatura \[°C]                 | Offset statico aggiunto alla temperatura ambiente misurata — utile quando il sensore integrato legge alto per la vicinanza ai tubi caldi |
| Posizione valvola \[%]                   | Apertura attuale della valvola in percentuale (0 = completamente chiusa, 100 = completamente aperta)                                     |
| Chiusura forzata                         | Se la valvola è forzata completamente chiusa indipendentemente dal setpoint                                                              |
| Pressione extra                          | Se la modalità pressione extra è attiva — applica forza meccanica aggiuntiva per azionare valvole dure                                   |
| Correzione automatica della calibrazione | Se viene applicata una correzione fine della calibrazione alla corsa meccanica                                                           |

Azioni di servizio

|                                   |                                                                                                                      |
|-----------------------------------|----------------------------------------------------------------------------------------------------------------------|
| Imposta offset temperatura        | Imposta l'offset di temperatura del sensore (da -20 a +20 °C) per compensare il bias del sensore integrato           |
| Attiva/disattiva chiusura forzata | Attiva/disattiva la modalità chiusura forzata — la valvola resta completamente chiusa indipendentemente dal setpoint |
| Attiva/disattiva pressione extra  | Attiva/disattiva la modalità pressione extra — potenzia l'attuazione per valvole dure                                |

Lettura temperatura

```taphome
PARSEJSON(status, "$.thermostats[0].tmp.value")
```

Lettura (modulo)

```taphome
if(! PARSEJSON(status, "$.thermostats[0].tmp.is_valid"), adderror("Temperature sensor error"));
```

Lettura temperatura desiderata

```taphome
PARSEJSON(status, "$.thermostats[0].target_t.value")
```

Scrittura temperatura desiderata

```taphome
if(status = "0", return(Se));

if !PARSEJSON(status, "$.calibrated")
    ADDERROR("Device is not calibrated");
    return(NaN);
end

VAR response := SENDHTTPREQUEST("/settings/thermostats/0?target_t=" + Se);
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
```

Attributi di servizio

Temperature offset \[°C]

```taphome
PARSEJSON(settings, "$.thermostats[0].temperature_offset")
```

${device\_variable\_valvestate} \[%]

```taphome
PARSEJSON(status, "$.thermostats[0].pos")
```

Force close

```taphome
if(PARSEJSON(settings, "$.thermostats[0].force_close"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Extra pressure

```taphome
if(PARSEJSON(settings, "$.thermostats[0].extra_pressure"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Automatic calibration correction

```taphome
if(PARSEJSON(settings, "$.thermostats[0].calibration_correction"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Azioni di servizio

Set temperature offset

Parametri: Offset (-20–20 C)

```taphome
VAR response := SENDHTTPREQUEST("/settings/thermostats/0?temperature_offset=" + C);
if(response.IsSuccess, return("OK"), return(response.Content));
```

Toggle force close

```taphome
var response := SENDHTTPREQUEST("/settings/thermostats/0?force_close=" + if(PARSEJSON(settings, "$.thermostats[0].force_close"), "false", "true"));
if(response.IsSuccess, return("OK"), return(response.Content));
```

Toggle extra pressure

```taphome
var response := SENDHTTPREQUEST("/settings/thermostats/0?extra_pressure=" + if(PARSEJSON(settings, "$.thermostats[0].extra_pressure"), "false", "true"));
if(response.IsSuccess, return("OK"), return(response.Content));
```

**Connessione:** Packet Parser → HTTP • Hostname: `shellytrv-{MAC}.local`

Possibili miglioramenti (14)

- Active schedule profile — Currently active profile index (0-4) when scheduling is enabled. Could be added as a multi-value indicator
- Scheduled setpoint — Setpoint that the firmware would apply on the next schedule event
- Boost remaining — Remaining boost time in minutes; pairs with /thermostats/0?boost\_minutes=N write
- Trigger boost — Temporary heating boost action — not currently exposed as service action
- Internal thermal state — Electronics thermal state (Normal / High / Very High); early warning for overheating
- Firmware update availability — Currently surfaced only as warning in module readscript — could be a service attribute
- Open window detection — Passive open-window detection based on temperature drop; publishes 'state: open|closed' and MQTT topic shellies/{id}/window
- Force open — Forces valve 100% open — symmetrical counterpart to force\_close which IS implemented
- Window-open auto-close delay — Delay (1-3600 s) before closing the valve after open-window detection
- Fallback ambient temperature — Fallback setpoint (0-27 °C, 0 = disabled) used when no active setpoint exists
- Child lock — Locks the physical Up/Down buttons on the device
- Schedule rules configuration — Up to 18 rules/profile, 5 named profiles. Complex config — usually managed via Shelly Cloud app
- CoIoT push updates — Optional multicast push (CoAP) — TapHome uses pull polling, not required
- MQTT control — Gen1 MQTT alternative transport — enabling MQTT irreversibly disables Shelly Cloud

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app | Predefinito   |
|--------------------|---------------|
| Indirizzo IP       | `192.168.0.1` |

## Fonti

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12
- Shelly TRV — HTTP API (TRV-specific endpoints)
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv) 2026-04-16
- Shelly TRV — Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-trv) 2026-04-16
- Shelly TRV — Multilingual User & Safety Guide
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-trv) 2026-04-16
  
  [PDF](https://taphome.com/compatibility/devices/shelly-trv/manufacturer/user-guide.pdf)
- Peyanski — Home Assistant and Shelly TRV
  
  [peyanski.com](https://peyanski.com/home-assistant-and-shelly-trv/) 2026-04-16

I documenti del produttore sono © dei rispettivi proprietari. Sono forniti così come pubblicati dal produttore, solo a titolo informativo.

## Documentazione correlata

- [Integrazione Packet Parser](https://taphome.com/it/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/it/docs/integration/packet-parser/)
- [Funzioni Packet parser](https://taphome.com/it/docs/script/packet-parser/)
- [Funzioni di parsing](https://taphome.com/it/docs/script/parsing-functions/)

