---
title: "Shelly Plus 1PM"
description: "Shelly Plus 1PM in TapHome via broker MQTT: comanda il relè e misura potenza, energia, tensione, corrente e temperatura interna."
url: "https://taphome.com/it/compatibility/shelly-plus-1pm-mqtt/"
language: it
lastmod: 2026-03-31
generator: hugo
ai:
  topics: ["mqtt","electric-meter","wifi","relay","power-metering","gen2plus"]
  questions: ["Come integrare Shelly Plus 1PM con TapHome tramite MQTT?","Cosa misura il template Shelly Plus 1PM MQTT di TapHome?","Come trovare il MQTT Client ID dello Shelly Plus 1PM?","Perché il mio Shelly Plus 1PM MQTT non invia dati?","Quali diagnostiche sono disponibili per Shelly Plus 1PM via MQTT?","Come controllare il relè Shelly Plus 1PM via MQTT da TapHome?"]
---

# Shelly Plus 1PM

Comunicazione: Packet Parser → MQTT

- [Pagina prodotto Shelly Plus 1PM](https://www.shelly.com/en/products/shop/shelly-plus-1pm)
- [Documentazione Shelly Gen2+ MQTT API](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/)

> 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 1PM è un compatto relè Wi-Fi Gen2+ con misurazione della potenza integrata. Si inserisce dietro un interruttore a parete standard e può controllare un circuito fino a 16 A (3500 W a 230 V AC) o 10 A (30 V DC). Questa è la **variante MQTT** del template TapHome — il dispositivo comunica tramite un broker MQTT anziché tramite polling HTTP diretto, utile in ambienti con più controller o quando il dispositivo si trova in una VLAN diversa.

Il template espone due dispositivi: un **Contatore elettrico** per il monitoraggio di potenza ed energia e un **Interruttore** per il controllo del relè. Tre attributi di servizio a livello di modulo mostrano temperatura interna, tensione e corrente.

## Configurazione

### MQTT Client ID

Ogni Shelly Plus 1PM ha un MQTT Client ID univoco nel formato `shellyplus1pm-<DEVICEID>`, dove `<DEVICEID>` è l'indirizzo MAC esadecimale a 12 caratteri (es. `shellyplus1pm-AABBCCDDEE00`).

Il Client ID si trova:

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

> [!TIP]
> Questo dispositivo supporta il **discovery mDNS**. È possibile utilizzare l'hostname `shellyplus1pm-{MAC}.local` anziché un indirizzo IP per verificare la connettività. Sostituire `{MAC}` con l'indirizzo MAC completo del dispositivo in formato esadecimale minuscolo (es. `shellyplus1pm-aabbccddee00.local`).

### Abilitazione MQTT

1. Aprire l'interfaccia web Shelly: `http://<device-ip>/`
2. Navigare su **Settings** → **MQTT**
3. Abilitare **MQTT**
4. Impostare **Server**: `<broker-ip>:<port>` (es. `192.168.1.10:1883`)
5. Il **Client ID** è precompilato — lasciarlo invariato a meno che non ci sia un motivo specifico per modificarlo
6. Cliccare **Save** e riavviare il dispositivo

> [!TIP]
> Per verificare che MQTT funzioni, utilizzare un client MQTT (es. MQTT Explorer) e sottoscrivere `shellyplus1pm-<DEVICEID>/#`. Dovresti vedere i messaggi di stato dal dispositivo, incluso `shellyplus1pm-<DEVICEID>/status/switch:0`.

### Configurazione del template

Dopo aver importato il template in TapHome:

1. Aprire il **Shelly Plus 1PM MQTT Module**
2. Impostare l'**MQTT Broker IP** e la **Porta** (predefinita `1883`)
3. Impostare la variabile **plug1topic** sul MQTT Client ID dello Shelly Plus 1PM (es. `shellyplus1pm-AABBCCDDEE00`)

Il modulo si sottoscrive a `{plug1topic}/status/switch:0` e pubblica i comandi di controllo su `{plug1topic}/command/switch:0`.

## Funzionalità del dispositivo

### Misurazione della potenza

Il Contatore elettrico legge due valori dal messaggio di stato MQTT `{plug1topic}/status/switch:0`:

- **Potenza istantanea** — `apower` in watt, convertita in kW dal template (divisione per 1000)
- **Energia cumulativa** — `aenergy.total` in wattora, convertita in kWh dal template (divisione per 1000)

Il contatore è di sola lettura — si aggiorna automaticamente ogni volta che il dispositivo pubblica un messaggio di stato sul broker MQTT.

### Controllo relè

L'Interruttore controlla il relè:

- **Lettura stato** — si sottoscrive a `{plug1topic}/status/switch:0` e legge il campo booleano `output`
- **Scrittura stato** — pubblica `on` o `off` su `{plug1topic}/command/switch:0`

Il relè supporta carichi fino a 3500 W / 16 A a 230 V AC.

### Diagnostica

Tre attributi di servizio a livello di modulo vengono analizzati dallo stesso payload JSON `status/switch:0`:

| Attributo | Unità | Descrizione |
|-----------|-------|-------------|
| Temperatura interna | °C | Temperatura interna del dispositivo — monitora lo stato termico del relè e del PCB |
| Tensione | V | Tensione di alimentazione AC all'ingresso del relè |
| Corrente | A | Corrente di carico attraverso l'uscita del relè |

Tutti e tre gli attributi mostrano "Unknown" fino all'arrivo del primo messaggio di stato MQTT (valore iniziale `NaN`).

### Funzionalità aggiuntive

Lo Shelly Plus 1PM espone anche fattore di potenza, frequenza di rete, energia restituita (per misurazione bidirezionale), stato dell'ingresso fisico, comando toggle, timer di spegnimento automatico e un'azione di aggiornamento forzato dello stato tramite la sua API MQTT. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

## Risoluzione problemi

### I messaggi MQTT non arrivano

1. Verificare che MQTT sia abilitato nell'interfaccia web Shelly (**Settings** → **MQTT**)
2. Controllare che l'indirizzo del broker e la porta siano corretti sia nelle impostazioni del dispositivo Shelly che del modulo TapHome
3. Verificare che la variabile `plug1topic` corrisponda esattamente al MQTT Client ID dello Shelly (es. `shellyplus1pm-AABBCCDDEE00`)
4. Utilizzare un client MQTT (es. MQTT Explorer) e sottoscrivere `shellyplus1pm-#` per verificare che il dispositivo pubblichi messaggi

### La misurazione della potenza mostra zero

1. Verificare che il carico sia collegato attraverso il relè Shelly (non bypassato)
2. Controllare che il relè sia acceso — il contatore misura solo quando la corrente scorre attraverso il relè
3. Sottoscrivere `{plug1topic}/status/switch:0` con un client MQTT e verificare che `apower` restituisca un valore diverso da zero

### Il relè non risponde ai comandi

1. Verificare che TapHome possa raggiungere il broker MQTT (IP e porta corretti nelle impostazioni del modulo)
2. Controllare che il valore di `plug1topic` corrisponda al MQTT Client ID del dispositivo
3. Testare pubblicando `on` su `{plug1topic}/command/switch:0` tramite un client MQTT — il relè dovrebbe accendersi

### La diagnostica mostra "Unknown"

1. Tutti e tre gli attributi (temperatura, tensione, corrente) mostrano "Unknown" fino all'arrivo del primo messaggio di stato
2. Se i valori rimangono "Unknown" dopo l'avvio del dispositivo, verificare che la connessione MQTT sia attiva e che i messaggi di stato vengano pubblicati
3. Riavviare il dispositivo Shelly per forzare una nuova pubblicazione dello stato

> [!WARNING]
> I dispositivi Shelly Gen2+ supportano MQTT con TLS opzionale. Se TLS non è configurato, la comunicazione tra dispositivo e broker MQTT non è crittografata (MQTT in chiaro, porta 1883). Per la comunicazione crittografata, abilitare TLS nelle impostazioni MQTT dello Shelly e utilizzare la porta 8883.

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

Questi dispositivi compaiono in TapHome dopo l'importazione.

Shelly Plus 1PM MQTT Module Modulo

Attributi di servizio

|                     |                                                                                    |
|---------------------|------------------------------------------------------------------------------------|
| Temperatura interna | Temperatura interna del dispositivo — monitora lo stato termico del relè e del PCB |
| Tensione            | Tensione di alimentazione AC all'ingresso del relè                                 |
| Corrente            | Corrente di carico attraverso l'uscita del relè                                    |

Variabili personalizzate

|                       |                                                                                                                                                                      |
|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `plug1topic` (string) | MQTT Client ID dello Shelly Plus 1PM — formato 'shellyplus1pm-&lt;deviceid&gt;'. Si trova nell'interfaccia web del dispositivo: Settings → MQTT Settings → Client ID |

Listener

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    internalTemp := PARSEJSON(RECEIVEDMSG.PAYLOAD, "temperature.tC");
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD, "voltage");
    current := PARSEJSON(RECEIVEDMSG.PAYLOAD, "current");
    VAR errors := PARSEJSON(RECEIVEDMSG.PAYLOAD, "errors", TRUE);
    
    IF (!ISNULL(errors))
        VAR errCount := LENGTH(errors);
        VAR i := 0;
        VAR errorText := "";
        
        WHILE i < errCount
            IF LENGTH(errorText)
                errorText += ", ";
            END
            errorText := errorText + GETAT(errors, i);
            i += 1;
        LOOP
        
        IF LENGTH(errorText)
            ADDERROR(errorText);
        END
    END
END
```

Attributi di servizio

Internal temperature

```taphome
IF(ISNAN(internalTemp), "Unknown", internalTemp + "°C");
```

Voltage

```taphome
IF(ISNAN(voltage), "Unknown", voltage + "V");
```

Current

```taphome
IF(ISNAN(current), "Unknown", current + "A");
```

Contatore elettrico Contatore elettrico Solo lettura

Potenza istantanea (kW) ed energia cumulativa (kWh) dal payload di stato MQTT

numeric Unità: kW / kWh

Listener

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    Ed := PARSEJSON(RECEIVEDMSG.PAYLOAD, "apower") / 1000.0;
    To := PARSEJSON(RECEIVEDMSG.PAYLOAD, "aenergy.total") / 1000.0;
END
```

Interruttore Interruttore Lettura e scrittura

Controllo relè on/off tramite topic di comando MQTT

boolean

Valori / Stati: ON · OFF

Scrittura stato interruttore

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH(plug1topic + "/command/switch:0", value);
```

Listener

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    St := PARSEJSON(RECEIVEDMSG.PAYLOAD, "output");
END
```

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

Possibili miglioramenti (8)

- Power Factor — Power factor value, available in switch:0 status JSON for metered devices
- Network Frequency — AC network frequency in Hz, available in switch:0 status JSON
- Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
- Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline device.
- Toggle Command — Toggle relay state; template only supports on/off
- Auto-off Timer — Turn ON with auto-off timer in seconds via 'on,N' command
- Input State — Physical switch/button input state, available via Input.GetStatus RPC method over MQTT
- Force Status Update — Request device to publish current status on all component topics

## 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`                   |
| Shelly MQTT Client ID    | `shellyplus1pm-deviceId` |

## Fonti

- Shelly Gen2+/Gen3 RPC API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/) 2026-03-29
- Shelly Gen2+ Switch Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Switch/) 2026-03-29
- Shelly Gen2+ System (Sys) Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Sys/) 2026-03-29
- Shelly Gen2+ WiFi Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/WiFi/) 2026-03-29
- Shelly Gen2+ MQTT Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/) 2026-03-29
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-29
- Shelly Plus 1PM Knowledge Base — specs & wiring
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-plus-1pm) 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/)

