TapHome
Ufficiale · TapHome

Shelly TRV (valve)

Testa termostatica Wi-Fi a batteria con la posizione della valvola esposta come dispositivo separato per il controllo tramite smart rule via HTTP. La regolazione della temperatura propria del dispositivo è disattivata.

ShellyPacket Parser → HTTP3 dispositiviRevisione 1.0 Ultimo aggiornamento: 10 novembre 2026

Importa nell'app TapHomeHardware › Packet Parser › Aggiungi da modello

Scarica template
In questa pagina

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. 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.

TemplateEsponeCaso d’uso
Shelly TRV (principale)Batteria + termostato a ciclo chiusoControllo 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.

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.

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.

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.

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).

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:

StatoCondizione
Criticalbat.value 25 % o meno
Lowbat.value 26-50 %
Normalbat.value 51-75 %
Fullbat.value oltre il 75 %
Chargingcaricatore 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.

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.

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 (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

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

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

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

Shelly TRV

Lettura (modulo)
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
PARSEJSON(status, "$.wifi_sta.ssid")
${ipAddress}
PARSEJSON(status, "$.wifi_sta.ip")
MAC
PARSEJSON(status, "$.mac")
Received signal strength
PARSEJSON(status, "$.wifi_sta.rssi")
Calibrated
if(PARSEJSON(status, "$.calibrated"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Schedule
 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
PARSEJSON(settings, "$.display.brightness")
Display flipped
if(PARSEJSON(settings, "$.display.flipped"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Azioni di servizio
Disable schedule
var response := SENDHTTPREQUEST("/settings/thermostats/0?schedule=false");
if(response.IsSuccess, return("OK"), return(response.Content));
Reboot
VAR response := SENDHTTPREQUEST("/reboot");
if(response.IsSuccess, return("OK"), return(response.Content));
Calibrate
VAR response := SENDHTTPREQUEST("/calibrate");
if(response.IsSuccess, return("OK"), return(response.Content));
Update firmware
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)
var response := SENDHTTPREQUEST("/settings?display_brightness=" + Br);
if(response.IsSuccess, return("OK"), return(response.Content));
Flip display
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

Battery

Lettura stato interruttore
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 [%]
PARSEJSON(status, "$.bat.value");
Voltage [V]
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

${device_variable_valvestate}

Lettura (modulo)
if(PARSEJSON(status, "$.thermostats[0].target_t.enabled"), addwarning("Automatic valve control is on. It may conflict with smart rule opration."));
Lettura livello
var pos := PARSEJSON(status, "$.thermostats[0].pos");
if pos >= 0
    return(pos / 100);
else
    adderror("Device is not calibrated");
    return(NaN);
end
Scrittura livello
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
if(PARSEJSON(settings, "$.thermostats[0].force_close"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Extra pressure
if(PARSEJSON(settings, "$.thermostats[0].extra_pressure"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Automatic calibration correction
if(PARSEJSON(settings, "$.thermostats[0].calibration_correction"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Azioni di servizio
Toggle force close
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
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

${adddevice_thermostat}

Lettura temperatura
PARSEJSON(status, "$.thermostats[0].tmp.value")
Lettura (modulo)
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
PARSEJSON(status, "$.thermostats[0].target_t.value")
Scrittura temperatura desiderata
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]
PARSEJSON(settings, "$.thermostats[0].temperature_offset")
Azioni di servizio
Set temperature offset
Parametri: Offset (-20–20 C)
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'appPredefinito
Indirizzo IP192.168.0.1

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Modello · portale TapHome Shelly TRV (valve) Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo. Packet Parser → HTTP Vedi nel portale TapHome