---
title: "Shelly H\u0026T"
description: "Sensore Shelly H\u0026T Gen1 a batteria (CR123A) in TapHome via MQTT: temperatura ambiente e umidità relativa a ogni risveglio del sensore."
url: "https://taphome.com/it/compatibility/shelly-hm/"
language: it
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","battery-powered","temperature","humidity"]
  questions: ["Come integrare lo Shelly H\u0026T con TapHome tramite MQTT?","Cosa misura il template Shelly H\u0026T in TapHome?","Come trovare l'MQTT Device ID dello Shelly H\u0026T?","Perché il mio Shelly H\u0026T non invia dati a TapHome?","Lo Shelly H\u0026T può misurare continuamente senza la modalità sleep della batteria?","Come gestisce TapHome la conversione del valore di umidità dello Shelly H\u0026T?"]
---

# Shelly H&T

Comunicazione: Packet Parser → MQTT

- [Pagina prodotto Shelly H&T](https://www.shelly.com/en/products/shop/shelly-humidity-temperature)

> Indirizzo di rete
> 
> Con il broker MQTT integrato in TapHome, inserisci `127.0.0.1` come indirizzo del broker in TapHome. Nel dispositivo inserisci l’indirizzo IP del TapHome Core e assegna al Core una prenotazione IP nel router.
> 
> [Preparazione della rete](https://taphome.com/it/docs/setup/network-preparation/)

## Guida all'integrazione

Lo Shelly H&T è un sensore Wi-Fi di temperatura e umidità a batteria (CR123A) della linea di prodotti Shelly Gen1. TapHome comunica con il dispositivo tramite MQTT — il protocollo consigliato per i sensori Shelly a batteria, poiché il dispositivo entra in sleep tra le misurazioni e pubblica i dati solo al risveglio.

Il template crea un singolo dispositivo Sensore di temperatura con un attributo di servizio Umidità, che monitora sia la temperatura ambiente che l'umidità relativa da un'unità Shelly H&T.

## Configurazione

### Device ID

Lo Shelly H&T utilizza un MQTT Device ID nel formato `shellyht-<MAC6>`, dove `<MAC6>` sono gli ultimi 6 caratteri dell'indirizzo MAC in formato esadecimale minuscolo (es. `shellyht-112233`).

Il Device ID si trova:

- Sull'etichetta del dispositivo (indirizzo MAC)
- Nell'interfaccia web Shelly: **Settings** → **Device Info**
- Tramite API: `GET http://<device-ip>/settings` → campo `mqtt.id`

### Configurazione del template

Dopo aver importato il template in TapHome:

1. Apri il modulo **Shelly H&T MQTT**
2. Imposta **MQTT Broker IP** e **Port** (predefinito `1883`)
3. Imposta la variabile `deviceId` solo sulla parte hex del Device ID (es. `112233` per `shellyht-112233` — gli ultimi 6 caratteri hex dell'indirizzo MAC)

Il modulo si iscrive a `shellies/#` e lo script listener filtra i messaggi in base al Device ID configurato.

> [!WARNING]
> Sui dispositivi Shelly Gen1, l'attivazione di MQTT disabilita Shelly Cloud — i due non possono coesistere. Attiva MQTT nell'interfaccia web Shelly in **Internet & Security** → **Advanced - Developer Settings**.

> [!TIP]
> Il periodo di sleep predefinito è di 60 secondi. Per aggiornamenti più frequenti è disponibile un adattatore USB opzionale — con alimentazione esterna la modalità sleep viene disattivata e il sensore misura continuamente.

## Funzionalità del dispositivo

### Monitoraggio di temperatura e umidità

Il template fornisce un singolo dispositivo **Sensore di temperatura** che legge la temperatura ambiente dal topic MQTT `shellies/shellyht-{deviceId}/sensor/temperature`. I valori vengono pubblicati come numero decimale in gradi Celsius.

Un attributo di servizio **Umidità** legge l'umidità relativa da `shellies/shellyht-{deviceId}/sensor/humidity`. Il payload MQTT viene pubblicato nell'intervallo 0–100%, ma il template lo converte internamente nell'intervallo 0–1 (es. il valore MQTT `45.2` viene memorizzato come `0.452` in TapHome).

Entrambe le letture si aggiornano ad ogni risveglio del sensore dalla modalità sleep — ogni 60 secondi per impostazione predefinita, o continuamente con alimentazione USB.

### Funzionalità aggiuntive

Lo Shelly H&T pubblica anche il livello della batteria (0–100%, CR123A), uno stato online/offline tramite MQTT Last Will and Testament e un messaggio di annuncio del dispositivo con modello, MAC, IP e versione firmware (firmware >=1.6.0). Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

## Risoluzione dei problemi

### Il sensore non invia dati

1. Verifica che lo Shelly H&T sia connesso al Wi-Fi e che MQTT sia attivato nelle impostazioni del dispositivo (**Internet & Security** → **Advanced - Developer Settings**)
2. Controlla che l'indirizzo e la porta del broker MQTT siano corretti sia nell'interfaccia web Shelly che nelle impostazioni del modulo TapHome
3. Conferma che la variabile `deviceId` corrisponda esattamente al Device ID (ultimi 6 caratteri hex del MAC, es. `112233`)
4. Usa un client MQTT (es. MQTT Explorer) per iscriverti a `shellies/#` e verificare che il sensore pubblichi messaggi sotto `shellies/shellyht-<deviceId>/` al risveglio

### Il valore di umidità sembra errato

Il template divide il valore di umidità MQTT per 100 — un'umidità del 45,2% viene memorizzata come 0,452 in TapHome. Questo è il comportamento atteso, poiché TapHome utilizza un intervallo 0–1 per i valori di umidità. L'interfaccia TapHome visualizza il valore correttamente come percentuale.

### La batteria si scarica rapidamente

1. Lo Shelly H&T è progettato per una durata della batteria fino a 18 mesi con il periodo di sleep predefinito di 60 secondi
2. Le frequenti riconnessioni Wi-Fi (segnale debole, cambio canale) aumentano significativamente il consumo energetico
3. Assicura un segnale Wi-Fi forte nella posizione del sensore — il dispositivo ha una portata di circa 30 m in ambienti interni

> [!WARNING]
> I dispositivi Shelly Gen1 **non supportano** MQTT su TLS. La comunicazione tra il sensore e il broker MQTT non è crittografata (plain MQTT, porta 1883). Assicurati che il broker MQTT si trovi su una rete locale affidabile.

## Come installare in TapHome

### Prerequisiti

- Dispositivo Shelly connesso al Wi-Fi (2,4 GHz), ad es. tramite l'app Shelly o l'access point del dispositivo stesso
- Broker MQTT attivo sulla rete locale (es. Mosquitto, Home Assistant o il broker integrato di TapHome)
- TapHome CCU sulla stessa rete del broker

> [!WARNING]
> Sui dispositivi **Gen1**, l'attivazione di MQTT **disabilita Shelly Cloud**. Entrambi non possono funzionare contemporaneamente. Sui dispositivi Gen2/Plus questa limitazione non si applica.

### Passaggio 1 — Abilitare MQTT sul dispositivo Shelly

#### Dispositivi Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Apri l'interfaccia web Shelly: `http://<device-ip>/`
2. Vai su **Internet & Security** → **Advanced — MQTT**
3. Abilita **MQTT**
4. Imposta **MQTT Server**: `<broker-ip>:<port>` (es. `192.168.1.10:1883`)
5. Opzionalmente imposta **MQTT User** e **MQTT Password** se il broker richiede l'autenticazione
6. Clicca su **Save** — il dispositivo si riavvierà e si connetterà al broker

#### Dispositivi Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Apri l'interfaccia web Shelly: `http://<device-ip>/`
2. Vai su **Settings** → **MQTT**
3. Abilita **MQTT**
4. Imposta **Server**: `<broker-ip>:<port>` (es. `192.168.1.10:1883`)
5. Il **Client ID** è precompilato con l'ID del dispositivo (es. `shellyplus1pm-AABBCCDDEE`) — lascialo così a meno che tu non abbia un motivo specifico per cambiarlo
6. Clicca su **Save** e riavvia il dispositivo

Con il broker integrato di TapHome, `<broker-ip>` è l'indirizzo IP del TapHome Core. Assegna al Core una prenotazione IP nel router, altrimenti il dispositivo perde il broker quando il router cambia l'indirizzo → [Preparazione della rete](https://taphome.com/it/docs/setup/network-preparation/).

> [!TIP]
> Per verificare che MQTT funzioni, usa un client MQTT (es. MQTT Explorer) e sottoscrivi `shellies/#` (Gen1) o `<device-id>/#` (Gen2). Dovresti vedere i messaggi di stato dal dispositivo.

### Passaggio 2 — Trovare il Device ID / MQTT Client ID

Alcuni template richiedono un parametro **Device ID** o **MQTT Client ID**. Questo è l'identificatore univoco utilizzato nei topic MQTT.

- **Gen1:** si trova sull'etichetta come indirizzo MAC (es. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, es. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** si trova nell'interfaccia web Shelly sotto **Settings** → **Device Info** → **Device ID**, oppure sull'etichetta del dispositivo

### Passaggio 3 — Configurazione in TapHome

1. In TapHome, aggiungi un nuovo modulo **Packet Parser (MQTT)**
2. **IP Address:** `127.0.0.1` per il broker integrato di TapHome (l'unità di controllo si connette a sé stessa, l'indirizzo non cambia mai); per un broker esterno il suo indirizzo IP (es. `192.168.1.10`)
3. **Port:** `1883` (predefinito; usa `8883` per TLS)
4. **Device ID / MQTT Client ID:** inserisci il valore dal passaggio 2 (se richiesto dal template)
5. Importa il template — TapHome si sottoscriverà automaticamente ai topic del dispositivo

## Dispositivi disponibili 1

Questi dispositivi compaiono in TapHome dopo l'importazione.

Shelly H&T MQTT Modulo

Variabili personalizzate

|                     |                                                                                          |
|---------------------|------------------------------------------------------------------------------------------|
| `deviceId` (string) | MQTT Device ID dello Shelly H&T — ultimi 6 caratteri hex dell'indirizzo MAC (es. 112233) |

Sensore di temperatura Sensore di temperatura Solo lettura

Temperatura ambiente e umidità — lettura °C da MQTT, umidità convertita da 0–100% a intervallo 0–1

float Unità: °C

Lettura umidità

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
Hu := listenHum;
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
```

Lettura temperatura

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
te := listenTemp;
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
```

Listener

```taphome
# Parse received bytes:
IF(RECEIVEDMSG.TOPIC = "shellies/shellyht-"+ deviceId +"/sensor/temperature")
 listenTemp := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
IF(RECEIVEDMSG.TOPIC = "shellies/shellyht-"+ deviceId +"/sensor/humidity")
 listenHum := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD))/100;
END
```

**Connessione:** Packet Parser → MQTT • Hostname: `shellyht-{MAC}.local`

Possibili miglioramenti (3)

- Battery Level — Battery percentage (0–100%, CR123A). Available via MQTT but not parsed in template listener script.
- Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline sensor.
- Device Announcement — JSON payload with device model, MAC, IP, firmware version. Published on connect (FW ≥1.6.0).

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app       | Predefinito    |
|--------------------------|----------------|
| Mqtt Broker Indirizzo IP | `192.168.0.1`  |
| Mqtt Broker port         | `1883`         |
| Device ID                | `yourDeviceId` |

## 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 H&T — Device-Specific API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-h-amp-t) 2026-03-31
- Shelly H&T — Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-h-t) 2026-03-31

## Documentazione correlata

- [MQTT Integration](https://taphome.com/it/compatibility/mqtt-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/)
- [Broker MQTT](https://taphome.com/it/docs/integration/packet-parser/mqtt-broker/)
- [Script listener](https://taphome.com/it/docs/script/listener-scripts/)

