---
title: "Shelly Plus Smoke"
description: "Allarme fumo fotoelettrico a batteria tramite MQTT. Rilevamento fumo con stato allarme, monitoraggio batteria e watchdog connettività. Template TapHome."
url: "https://taphome.com/it/compatibility/shelly-plus-smoke/"
language: it
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","battery-powered","smoke-detector","security"]
  questions: ["Come integrare Shelly Plus Smoke con TapHome tramite MQTT?","Cosa segnala il template Shelly Plus Smoke in TapHome?","Come rileva TapHome se un Shelly Plus Smoke è offline?","Perché il mio Shelly Plus Smoke non segnala eventi di allarme?","Shelly Plus Smoke riporta il livello batteria in TapHome?","Come funziona il watchdog di connettività per i dispositivi Shelly a batteria?"]
---

# Shelly Plus Smoke

Comunicazione: Packet Parser → MQTT

- [Pagina prodotto Shelly Plus Smoke](https://www.shelly.com/en/products/shop/shelly-plus-smoke)

> 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 Plus Smoke è un allarme fumo fotoelettrico Wi-Fi alimentato a batteria (CR123A), certificato DIN EN 14604. TapHome comunica con il dispositivo tramite MQTT utilizzando le notifiche RPC Gen2+ sul topic `events/rpc`. Il dispositivo trascorre la maggior parte del tempo in sonno profondo per risparmiare batteria e si sveglia periodicamente in base al `wakeup_period` configurato. Gli eventi di allarme fumo attivano un risveglio immediato e una notifica MQTT.

Il template crea un singolo dispositivo Allarme fumo (mappato su un Reed Contact) con due attributi di servizio Batteria (percentuale e tensione). Un watchdog di connettività monitora il conto alla rovescia del periodo di risveglio e genera avvisi o errori quando il dispositivo non ha comunicato per un periodo prolungato.

## Configurazione

### MQTT Client ID

Ogni Shelly Plus Smoke ha un MQTT Client ID univoco nel formato `shellyplussmoke-<MAC12>`, dove `<MAC12>` è l'indirizzo MAC completo a 12 caratteri in esadecimale maiuscolo (es. `shellyplussmoke-AABBCCDDEEFF`). Questo ID serve anche come prefisso predefinito dei topic MQTT.

Il Client ID si trova:

- Sull'etichetta del dispositivo (indirizzo MAC)
- Nell'interfaccia web Shelly: **Settings** → **MQTT** → **Client ID**
- Tramite API: `GET http://<device-ip>/rpc/Mqtt.GetConfig` → campo `client_id`

### Configurazione del template

Dopo l'importazione del template in TapHome:

1. Apri il modulo **Shelly Plus Smoke**
2. Imposta l'**MQTT Broker IP** sull'indirizzo del broker MQTT
3. Imposta la **Port** (predefinita `1883`)
4. Imposta il parametro di importazione **MQTT ID** sul Client ID del dispositivo (es. `shellyplussmoke-AABBCCDDEEFF`)

Il modulo si iscrive a `<device-id>/#` e lo script listener analizza gli eventi JSON-RPC `NotifyFullStatus` e `NotifyStatus` dal topic `events/rpc`.

> [!TIP]
> MQTT è disabilitato per impostazione predefinita sullo Shelly Plus Smoke. Abilitalo nelle impostazioni del dispositivo: **Settings** → **MQTT** → **Enable**. Assicurati che `rpc_ntf` (notifiche RPC) sia impostato su `true` (predefinito). Il template si basa sulle notifiche `events/rpc`, non sui singoli topic di stato.

### Comportamento di sonno e segnalazione

Lo Shelly Plus Smoke opera in modalità sonno profondo per massimizzare la durata della batteria:

- **Risveglio periodico** — il dispositivo si sveglia a intervalli definiti da `sys.wakeup_period` e pubblica un evento `NotifyFullStatus` contenente lo stato della batteria, lo stato dell'allarme fumo e il periodo di risveglio corrente
- **Evento allarme** — un evento di rilevamento fumo attiva un risveglio immediato e una notifica `NotifyStatus` con lo stato dell'allarme
- **Tra i cicli di risveglio** — il dispositivo non è raggiungibile via HTTP e MQTT

Il dispositivo è alimentato da una singola batteria CR123A con una durata prevista fino a 5 anni. Non utilizzare batterie ricaricabili — il produttore avverte esplicitamente contro questo.

> [!WARNING]
> Il dispositivo è alimentato a batteria e non è permanentemente connesso al broker MQTT. Tra i cicli di risveglio, nessuna comunicazione è possibile. Se la posizione del sensore ha un segnale Wi-Fi debole, frequenti tentativi di riconnessione al risveglio possono ridurre significativamente la durata della batteria.

## Capacità del dispositivo

### Allarme fumo

Il template mappa lo stato dell'allarme fumo su un dispositivo Reed Contact (DeviceType 1030). Lo script listener analizza gli eventi `NotifyStatus` sul topic `events/rpc` e legge `params['smoke:0'].alarm`:

- **ON** (allarme attivo) — fumo rilevato, il cicalino integrato del dispositivo suona a >85 dB
- **OFF** (allarme cancellato) — nessun fumo, funzionamento normale

Lo stato dell'allarme è in sola lettura e si aggiorna immediatamente al rilevamento del fumo. Il dispositivo attiva una notifica MQTT immediata per gli eventi di allarme indipendentemente dalla programmazione del sonno.

### Monitoraggio batteria

Il modulo espone due attributi di servizio Batteria che leggono dagli eventi `NotifyFullStatus`:

- **Batteria [%]** — percentuale di carica dalla `params['devicepower:0'].battery.percent`. Avviso di batteria scarica sotto il 30%
- **Batteria [V]** — tensione batteria in Volt da `params['devicepower:0'].battery.V`. Tensione nominale 3V per batteria CR123A

Entrambi i valori restituiscono NaN prima della ricezione della prima misurazione (ovvero quando il valore memorizzato è ancora 0). I dati della batteria si aggiornano ad ogni risveglio periodico.

### Watchdog di connettività

Il template monitora la connettività del dispositivo tramite un meccanismo basato su conto alla rovescia. Ad ogni evento `NotifyFullStatus`, lo script listener memorizza il valore `sys.wakeup_period` nella variabile personalizzata `wakeup_period`. Lo script di lettura decrementa questo contatore di 60 ad ogni ciclo di polling (intervallo di 60 secondi):

- **Contatore raggiunge 0** — il dispositivo non si è svegliato come previsto. Il contatore viene impostato a -1 e viene generato un **WARNING**: "Update not received"
- **Contatore raggiunge -86400** — il dispositivo è silenzioso da 48 ore. Viene generato un **ERROR**: "Update not received in last 48h"

Quando il dispositivo si sveglia e invia un nuovo `NotifyFullStatus`, il contatore viene ripristinato al valore `wakeup_period` aggiornato, cancellando tutti gli avvisi.

### Capacità aggiuntive

Lo Shelly Plus Smoke supporta anche una funzione di silenziamento (`Smoke.Mute` metodo RPC) per sopprimere il suono dell'allarme, eventi di test dell'allarme fumo attivati dal pulsante fisico e diagnostica della potenza del segnale WiFi (RSSI). Il dispositivo pubblica topic di stato individuali dei componenti quando `status_ntf` è abilitato. Queste capacità possono essere aggiunte in un futuro aggiornamento del template.

## Risoluzione dei problemi

### L'allarme fumo non segnala eventi

1. Verifica che lo Shelly Plus Smoke sia connesso al Wi-Fi e che MQTT sia abilitato nelle impostazioni del dispositivo (**Settings** → **MQTT** → **Enable**)
2. Controlla che `rpc_ntf` sia impostato su `true` (predefinito) — il template richiede notifiche RPC su `events/rpc`
3. Conferma che il parametro di importazione **MQTT ID** corrisponda esattamente al Client ID del dispositivo (es. `shellyplussmoke-AABBCCDDEEFF`)
4. Usa un client MQTT (es. MQTT Explorer) per iscriverti a `<device-id>/#` e verifica che il dispositivo pubblichi `NotifyFullStatus` al risveglio
5. Controlla la batteria del dispositivo — una batteria CR123A scarica impedisce al dispositivo di connettersi al Wi-Fi

### Il watchdog di connettività mostra falsi avvisi

1. Il watchdog confronta il conto alla rovescia con il periodo di risveglio previsto. Se l'orologio del TapHome Core è significativamente sfasato, possono apparire falsi avvisi
2. Con alimentazione a batteria, il dispositivo si sveglia solo all'intervallo `wakeup_period` configurato — intervalli tra le segnalazioni sono previsti
3. Se il sensore si trova in una posizione con Wi-Fi intermittente, potrebbe non riuscire a connettersi in alcuni cicli. Verifica la potenza del segnale Wi-Fi
4. Dopo la sostituzione della batteria, il dispositivo potrebbe necessitare di un ciclo di risveglio completo prima che il contatore del watchdog si inizializzi correttamente

### Il dispositivo appare come Reed Contact invece di allarme fumo

Il template TapHome utilizza il tipo dispositivo PacketParserReedContact (DeviceType 1030) per rappresentare l'allarme fumo. Questa è la mappatura corretta — lo stato ON significa "Allarme emergenza" (fumo rilevato) e lo stato OFF significa "OK" (nessun fumo). Il nome del dispositivo in TapHome è "Shelly Plus Smoke" per indicare chiaramente la sua funzione.

## 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 Plus Smoke Modulo

Variabili personalizzate

|                     |                                                                                                                                                   |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| `deviceid` (string) | ID dispositivo MQTT usato come prefisso topic — formato: shellyplussmoke-{MACADDRESS} (nell'interfaccia web Shelly → Settings → MQTT → Client ID) |

Allarme fumo Contatto reed Solo lettura

Stato allarme fumo fotoelettrico — ON = Allarme emergenza (fumo rilevato), OFF = OK (nessun fumo). L'allarme attiva notifica MQTT immediata con cicalino &gt;85 dB.

boolean JSON-RPC (NotifyStatus → params.smoke:0.alarm)

Attributi di servizio

|               |                                                                                                                     |
|---------------|---------------------------------------------------------------------------------------------------------------------|
| Batteria \[%] | Percentuale di carica della batteria — avviso batteria scarica sotto il 30%. Batteria CR123A, durata fino a 5 anni. |
| Batteria \[V] | Tensione batteria in Volt — nominale 3V per batteria CR123A                                                         |

Lettura (modulo)

```taphome
if wakeup_period = 0
	# after init
else
	wakeup_period := wakeup_period - 60;
	if wakeup_period = 0
		wakeup_period := -1;
	end
end

if wakeup_period < 0
	ADDWARNING("Update not received");
end

if wakeup_period < -86400
	ADDERROR("Update not received in last 48h");
end
```

Listener

```taphome
if RECEIVEDMSG.TOPIC = deviceid + "/events/rpc"
	var method := parsejson(RECEIVEDMSG.PAYLOAD, "method", true); 
	var params := parsejson(RECEIVEDMSG.PAYLOAD, "params", true);
	if method = "NotifyFullStatus"
		wakeup_period := parsejson(params, "sys.wakeup_period");
		battery_V := parsejson(params, "devicepower:0.battery.V");
		battery_percent := parsejson(params, "devicepower:0.battery.percent");
	end
	if method = "NotifyStatus" and !ISNULL(parsejson(params, "smoke:0", true))
		var alarm := parsejson(params, "smoke:0.alarm", true);
		if !ISNULL(alarm)
			Rc := alarm;
		end
	end
end

if battery_percent < 30
	ADDWARNING("Low battery");
end
```

Attributi di servizio

Battery \[%]

```taphome
if battery_percent != 0
	return(battery_percent);
else
	return(NaN);
end
```

Battery \[V]

```taphome
if battery_V != 0
	return(battery_V);
else
	return(NaN);
end
```

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

Possibili miglioramenti (4)

- Smoke Mute State — smoke:0.mute — true when alarm sound is suppressed via Smoke.Mute RPC. Could show muted status in TapHome.
- External Power Status — devicepower:0.external.present — always false for Plus Smoke (battery-only device), but available in API.
- WiFi RSSI — sys.wifi.rssi — signal strength in dBm. Could be used for placement diagnostics.
- Smoke Alarm Test Event — smoke.alarm\_test webhook event — triggered when user presses test button. Not captured by current template.

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app | Predefinito                    |
|--------------------|--------------------------------|
| Indirizzo IP       | `192.168.0.1`                  |
| ID                 | `shellyplussmoke-xxxxxxxxxxxx` |

## Fonti

- Shelly Gen2+ RPC API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/) 2026-03-27
- Shelly Gen2+ System (Sys) Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Sys/) 2026-03-27
- Shelly Gen2+ WiFi Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Wifi/) 2026-03-27
- Shelly Gen2+ MQTT Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/) 2026-03-27
- HA Shelly Integration (Gen2+)
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-27
- Smoke Component API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Smoke/) 2026-03-30
- DevicePower Component API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/DevicePower/) 2026-03-30
- Shelly Plus Smoke Device Profile
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/0.14/Devices/ShellyPlusSmoke/) 2026-03-30
- Shelly Plus Smoke KB — Specifications
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-plus-smoke) 2026-03-30

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

