---
title: "Shelly TRV (valve)"
description: "Controlla la valvola Shelly TRV (0-100 %) dalle smart rule TapHome via HTTP locale, regolazione integrata off. Batteria, setpoint e diagnostica Wi-Fi."
url: "https://taphome.com/it/compatibility/shelly-trv-valve/"
language: it
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["http","thermostat","wifi","battery-powered","radiator-valve","valve-position-control","smart-rule","mdns"]
  questions: ["Come controllare direttamente la posizione della valvola Shelly TRV da una smart rule TapHome?","Qual è la differenza tra i template Shelly TRV thermostat e valve?","Perché il template Shelly TRV valve disattiva il controllo automatico della temperatura?","Come connettere Shelly TRV al Wi-Fi e calibrarlo dopo il montaggio sul radiatore?","Perché Shelly TRV rifiuta la scrittura della posizione della valvola con Device is not calibrated?","Come disattivare il programma settimanale di Shelly TRV perché non sovrascriva TapHome?"]
---

# Shelly TRV (valve)

Comunicazione: Packet Parser → HTTP

## 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 standard ad acqua calda e modifica il flusso di acqua calda nel radiatore 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.

Questo template espone la posizione della valvola come dispositivo separato **Valve state**, così che una smart rule di TapHome possa pilotare direttamente la valvola. La regolazione della temperatura propria del dispositivo è disattivata: ogni setpoint scritto da TapHome viene inviato insieme a `target_t_enabled=false`, quindi il firmware non muove più la valvola da solo.

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 questo template rimane pienamente supportato; per i nuovi progetti valuta 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**](https://taphome.com/it/compatibility/shelly-trv/) (principale) | 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)** (questo template) | Batteria + dimmer valvola + termostato (variante setpoint) | Smart rule che richiedono il controllo diretto della valvola — la posizione della valvola è esposta come dimmer 0-100 %, la regolazione automatica è disattivata. |

> [!WARNING]
> Non importare entrambi i template per lo stesso dispositivo fisico. Entrambi si collegano allo stesso endpoint e i cicli 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 ricaricabile integrata (Panasonic NCR18650BD, 3,6 V / 6500 mAh). Si monta sul corpo valvola tramite una ghiera metallica di fissaggio. Il dispositivo è destinato esclusivamente all'uso in interni e va protetto da sporco, umidità e spruzzi d'acqua.

### Corpi valvola compatibili

Se il radiatore ha già una testa termostatica (di solito una manopola numerata da 1 a 5), il corpo valvola è molto probabilmente compatibile. I radiatori con piccole valvole manuali — comuni dove è installato un termostato ambiente separato o centralizzato — **non** sono 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 testa esistente in senso antiorario finché la valvola è completamente aperta, poi svita la ghiera metallica in senso antiorario per rimuoverla.
3. Se il filetto della valvola non è M30 × 1,5 nativo, applica l'adattatore corretto.
4. Fissa Shelly TRV al corpo valvola ruotando la ghiera metallica in senso orario — non stringerla ancora a fondo.
5. Orienta il display nella posizione desiderata, poi stringi a fondo la ghiera metallica.

> [!WARNING]
> Non cercare di ruotare il dispositivo dopo aver stretto a fondo la ghiera metallica — potresti danneggiarlo.

### Ricarica

Il dispositivo si ricarica via **USB-C** con un caricatore conforme allo standard USB-C da almeno 1 A. Prima del primo utilizzo caricalo completamente per circa 7 ore. Durante la ricarica la linea del livello batteria sul display lampeggia e un punto accanto alla linea inferiore indica che il caricatore è collegato. L'autonomia della batteria arriva fino a 2 anni, a seconda della frequenza con cui la valvola si muove e della qualità del segnale Wi-Fi.

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

## Calibrazione

La calibrazione insegna al motore la corsa dello specifico corpo valvola. Senza di essa TapHome non può leggere né scrivere la posizione della valvola.

1. Premi brevemente **Reset** (retro del dispositivo). Il display mostra `CL` e il motore interno gira in entrambe le direzioni.
2. Una calibrazione riuscita termina con `AP` sul display — il dispositivo è pronto per essere connesso al Wi-Fi.
3. `E1` significa che la calibrazione non è riuscita: la ghiera non è abbastanza stretta oppure il dispositivo non è posizionato correttamente. Stringi la ghiera o rimonta il dispositivo, poi tieni premuto **Up** o **Down** per 3 secondi e premi **Down** un paio di volte per avviare una nuova calibrazione.

Quando il dispositivo è in TapHome, puoi avviare un nuovo ciclo di calibrazione anche con l'azione di servizio **Calibrate** sul modulo.

> [!NOTE]
> Ripeti la calibrazione dopo ogni rimontaggio su un corpo valvola diverso. Finché il dispositivo non riporta `calibrated=true`, il dispositivo Valve state mostra `Device is not calibrated` e TapHome rifiuta le scritture sia della posizione della valvola sia del setpoint.

## Configurazione di rete

Shelly TRV usa il Wi-Fi a 2,4 GHz (802.11 b/g/n) con una portata fino a 30 m, a seconda della struttura dell'edificio. Dopo la calibrazione si avvia in modalità Access Point (`AP` sul display).

> [!WARNING]
> Se il dispositivo non viene aggiunto a una rete Wi-Fi entro 3 minuti, si spegne. Premi brevemente **Reset** per riavviarlo.

### Connessione al Wi-Fi

Puoi connettere il dispositivo tramite l'app mobile Shelly Cloud oppure manualmente tramite la sua interfaccia web integrata:

1. Connetti uno smartphone o un computer alla rete Wi-Fi creata dal dispositivo e apri `http://192.168.33.1`.
2. Fai clic su **Internet & Security** e seleziona **WIFI MODE - CLIENT**.
3. Seleziona **Connect the Shelly device to an existing WiFi Network**, inserisci nome e password della rete e premi **SAVE**.
4. Trova l'indirizzo IP del dispositivo nella rete locale (elenco dei client del router oppure lo strumento Shelly device finder per Windows o macOS).

Attivando la modalità Client si disattiva la modalità Access Point. Per tornare alla modalità Access Point tieni premuto **Reset** per 5 secondi.

Una prenotazione DHCP per il dispositivo nel router mantiene stabile l'indirizzo IP usato da TapHome.

### Autenticazione

Il template invia le richieste HTTP senza credenziali sulla porta `80`; HTTPS non è supportato sui dispositivi Gen1. Se nell'interfaccia web del dispositivo è attiva la protezione con login, disattivala — altrimenti TapHome non può leggere né controllare il dispositivo.

## Configurazione

In TapHome importa il template e inserisci l'indirizzo IP del dispositivo come unico parametro di importazione, poi crea una smart rule che piloti il dispositivo **Valve state**.

### Disattivare il programma settimanale

Shelly TRV ha uno scheduler settimanale integrato (5 profili, fino a 20 variazioni di temperatura per profilo). Se un programma è attivo, il firmware sovrascrive qualsiasi setpoint scritto dall'esterno alla successiva variazione programmata.

Il template lo segnala come errore del modulo (`Schedule is enabled`). Prima di affidare il dispositivo al controllo di TapHome, puoi:

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

### Controllo automatico della valvola

Sia il dispositivo Valve state sia il dispositivo Thermostat mostrano l'avviso `Automatic valve control is on` ogni volta che il dispositivo riporta come attiva la propria regolazione della temperatura, perché può entrare in conflitto con il funzionamento della smart rule. Scrivere un setpoint dal dispositivo Thermostat la disattiva di nuovo (`target_t_enabled=false`).

### Sensore ambiente esterno (consigliato)

Ogni termostato montato sul radiatore misura vicino al radiatore, quindi il sensore integrato si discosta dalla reale temperatura ambiente. Sono disponibili due percorsi di correzione:

- **Sensore esterno** — uno Shelly H&T o un sensore compatibile nella stanza può inviare la temperatura ambiente al TRV. Attivalo nell'interfaccia web del dispositivo → **Sensor Settings** → **TEMPERATURE OFFSET** → **Enable external temperature corrections endpoint**.
- **Offset statico** — usa l'azione di servizio **Set temperature offset** sul dispositivo Thermostat (intervallo ±20 °C) per compensare uno scostamento costante.

## Funzionalità del dispositivo

Il template espone il dispositivo come indicatore di batteria, dimmer della posizione della valvola e termostato. Le diagnosi e le azioni a livello di modulo sono le stesse del template principale.

### Valve state

L'attuatore della valvola è esposto come dimmer (0-100 %). TapHome legge la posizione da `thermostats[0].pos` e la scrive tramite `/thermostats/0?pos={0-100}`; il firmware porta il motore nella posizione richiesta. Una posizione negativa significa che la valvola non è calibrata e il dispositivo mostra `Device is not calibrated`.

Gli attributi di servizio riportano **Force close**, **Extra pressure** e **Automatic calibration correction**. Le azioni di servizio attivano e disattivano la modalità force-close (la valvola resta completamente chiusa) e la modalità extra pressure (attuazione più forte per valvole dure), così che le smart rule possano gestire scenari come chiusura di emergenza, preriscaldamento o sequenze boost.

### Termostato

Il termostato legge la temperatura ambiente misurata (`thermostats[0].tmp.value`) e il target memorizzato (`thermostats[0].target_t.value`). La scrittura del setpoint invia **sia** `target_t` sia `target_t_enabled=false` a `/settings/thermostats/0`, così che il firmware non muova la valvola da solo — il setpoint serve come valore di riferimento per la smart rule che pilota il dispositivo Valve state.

L'unico attributo di servizio è **Temperature offset [°C]**, con la corrispondente azione **Set temperature offset**. Il dispositivo aggiunge un `Temperature sensor error` quando la lettura del sensore non è valida.

### Stato batteria

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

| Stato | Condizione |
|-------|-----------|
| Critical | `bat.value` 25 % o meno |
| Low | `bat.value` 26-50 % |
| Normal | `bat.value` 51-75 % |
| Full | `bat.value` oltre il 75 % |
| Charging | caricatore collegato |

Due attributi di servizio riportano la carica grezza della batteria (`%`) e la tensione (V). Il modulo genera `Low battery` sotto il 50 % e `Battery charge is criticaly low` sotto il 25 %.

### Diagnostica e azioni del modulo

Il modulo 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, stato di calibrazione, programma on/off, luminosità display (1-7) e stato di display capovolto. Quando è disponibile un aggiornamento firmware compare un avviso.
- **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.

## Risoluzione dei problemi

### Device is not calibrated

Le scritture della posizione della valvola e del setpoint vengono rifiutate con `Device is not calibrated` finché il TRV non completa un ciclo di calibrazione riuscito.

1. Assicurati che il dispositivo sia saldamente posizionato sul corpo valvola — la ghiera deve essere abbastanza stretta da permettere al motore di fare forza contro lo spillo della valvola.
2. Esegui l'azione di servizio **Calibrate** sul modulo, oppure avvia la calibrazione sul dispositivo (tieni premuto **Up** o **Down** per 3 secondi, poi premi **Down** un paio di volte). Il display mostra `CL` mentre il motore si muove in entrambe le direzioni.
3. In caso di successo l'attributo **Calibrated** passa a `Yes`; `E1` sul display indica di solito un montaggio non corretto.

### La valvola si muove anche se nessuna smart rule l'ha modificata

È attiva la regolazione propria del dispositivo o il programma settimanale. Controlla l'avviso `Automatic valve control is on` e l'attributo del modulo **Schedule** — scrivi un setpoint dal dispositivo Thermostat per disattivare il controllo automatico ed esegui **Disable schedule** se il programma è attivo.

### La temperatura ambiente risulta troppo alta

- **Caricatore collegato.** Le letture della temperatura ambiente non sono valide durante la ricarica. Stacca l'USB-C e lascia raffreddare il dispositivo.
- **Scostamento del sensore integrato.** Il sensore si trova vicino al radiatore. Attiva l'endpoint di correzione della temperatura esterna e abbina uno Shelly H&T (o un sensore compatibile) nella stessa stanza, oppure applica un **Set temperature offset** statico.

### Il display mostra E1 / E2

Per controllare lo stato, tieni premuti insieme **Up** e **Down** per 5 secondi e scorri con **Up** o **Down**.

- `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. Il template aggiunge un `Temperature sensor error` sul dispositivo Thermostat. Se il problema persiste dopo un riavvio, contatta il supporto Shelly.

### Dispositivo non raggiungibile

1. Verifica che il TRV sia connesso al Wi-Fi — tieni premuti **Up** e **Down** per 5 secondi e scorri i parametri di stato; `CO` indica la connessione alla rete Wi-Fi, `AP` significa che il dispositivo è ancora in modalità Access Point.
2. Verifica che l'unità di controllo Core e il TRV siano sulla stessa rete / VLAN.
3. Prova l'hostname mDNS (`shellytrv-XXXXXX.local`) al posto dell'indirizzo 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 Shelly Gen1 accettano solo **2 connessioni HTTP simultanee**. Se TapHome e un altro sistema 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 Shelly Gen1 disattiva la connessione a Shelly Cloud. TapHome usa solo HTTP — lascia MQTT disattivato.

## 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 3

Questi dispositivi compaiono in TapHome dopo l'importazione.

Shelly TRV Modulo

Attributi di servizio

|                          |
|--------------------------|
| Wifi                     |
| ${ipAddress}             |
| MAC                      |
| Received signal strength |
| Calibrated               |
| Schedule                 |
| Display brightness       |
| Display flipped          |

Azioni di servizio

|                        |
|------------------------|
| Disable schedule       |
| Reboot                 |
| Calibrate              |
| Update firmware        |
| Set display brightness |
| Flip display           |

Variabili personalizzate

|                         |
|-------------------------|
| `settings` (string) = 0 |
| `status` (string) = 0   |

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));
```

Battery Interruttore multivalore

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");
```

${device\_variable\_valvestate} Dimmer

Attributi di servizio

|                                  |
|----------------------------------|
| Force close                      |
| Extra pressure                   |
| Automatic calibration correction |

Azioni di servizio

|                       |
|-----------------------|
| Toggle force close    |
| Toggle extra pressure |

Lettura (modulo)

```taphome
if(PARSEJSON(status, "$.thermostats[0].target_t.enabled"), addwarning("Automatic valve control is on. It may conflict with smart rule opration."));
```

Lettura livello

```taphome
var pos := PARSEJSON(status, "$.thermostats[0].pos");
if pos >= 0
    return(pos / 100);
else
    adderror("Device is not calibrated");
    return(NaN);
end
```

Scrittura livello

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

if !PARSEJSON(status, "$.calibrated")
    ADDERROR("Device is not calibrated");
    return(NaN);
end
 
 VAR response := SENDHTTPREQUEST("/thermostats/0?pos=" + Le*100);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
```

Attributi di servizio

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

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));
```

${adddevice\_thermostat} Termostato

Attributi di servizio

|                          |
|--------------------------|
| Temperature offset \[°C] |

Azioni di servizio

|                        |
|------------------------|
| Set temperature offset |

Lettura temperatura

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

Lettura (modulo)

```taphome
if(! PARSEJSON(status, "$.thermostats[0].tmp.is_valid"), adderror("Temperature sensor error"));
if(PARSEJSON(status, "$.thermostats[0].target_t.enabled"), addwarning("Automatic valve control is on. It may conflict with smart rule opration."));
```

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 + "&target_t_enabled=false");
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
```

Attributi di servizio

Temperature offset \[°C]

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

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));
```

**Connessione:** Packet Parser → HTTP

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

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

## 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/)

