---
title: "SmartThings Interruttore/Presa con Misurazione di Potenza"
description: "SmartThings interruttore/presa con misurazione di potenza tramite SmartThings Cloud API."
url: "https://taphome.com/it/compatibility/smartthings-switch-plug/"
language: it
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["http","smart-plug","cloud-api","power-metering","smartthings"]
  questions: ["Come integrare un interruttore o presa SmartThings con TapHome?","Cosa misura il template SmartThings Switch/Plug di TapHome?","Come generare un SmartThings Personal Access Token per TapHome?","Perché l'integrazione SmartThings smette di funzionare dopo 24 ore?","Come trovare lo SmartThings Device ID per TapHome?","Si possono controllare più dispositivi SmartThings da TapHome?"]
---

# SmartThings Interruttore/Presa con Misurazione di Potenza

Comunicazione: Packet Parser → HTTP

- [Portale SmartThings Developer](https://developer.smartthings.com/)

## Guida all'integrazione

Questo template integra qualsiasi interruttore o presa compatibile con SmartThings con misurazione di potenza in TapHome. La comunicazione avviene tramite la SmartThings Cloud REST API v1 su `api.smartthings.com` via HTTPS — il template non comunica direttamente con il dispositivo fisico. Il dispositivo può essere ZigBee, Z-Wave o Matter — purché sia connesso a un account SmartThings e esponga le capacità switch, powerMeter ed energyMeter, il template funzionerà.

Il template è stato creato da Csongor Varga e dimostrato con una presa ZigBee BlitzWolf BW-SHP15, ma non è limitato a quel modello.

## Configurazione

Il template richiede due variabili configurate in TapHome dopo l'importazione:

- **Token** — un SmartThings Personal Access Token (PAT) utilizzato per l'autenticazione Bearer
- **DeviceId** — l'UUID del dispositivo di destinazione nella piattaforma SmartThings

### Generazione del Personal Access Token

1. Vai su [account.smartthings.com/tokens](https://account.smartthings.com/tokens) e accedi con un account Samsung
2. Clicca su **Generate new token** e assegna un nome (es. „TapHome Integration")
3. Seleziona il permesso **Devices** — è necessario per leggere lo stato e inviare comandi
4. Clicca su **Generate Token** e copia immediatamente il token — questa è l'unica opportunità per recuperare il valore

> [!WARNING]
> I Personal Access Token standard (creati dopo il 30 dicembre 2024) sono validi solo per **24 ore**. Il token deve essere rigenerato e aggiornato in TapHome prima della scadenza, altrimenti l'integrazione smetterà di funzionare. I token legacy creati prima di tale data possono avere periodi di validità più lunghi.

### Trovare il Device ID

1. Accedi a [my.smartthings.com](https://my.smartthings.com/)
2. Individua il dispositivo di destinazione nell'elenco dei dispositivi
3. Copia il **Device ID** dalla pagina dei dettagli del dispositivo — è una stringa UUID (es. `47eff6bf-83c9-4374-a367-b254759b486d`)

### Aggiungere più dispositivi

Ogni dispositivo SmartThings richiede la propria istanza del modulo. Per aggiungere un altro dispositivo, importa nuovamente il template e configura un nuovo DeviceId. Lo stesso Token può essere riutilizzato per tutti i moduli.

## Capacità del dispositivo

### Controllo interruttore

Il template espone il dispositivo come interruttore. Lo stato viene letto dalla risposta di stato SmartThings (`components.main.switch.switch.value` — `"on"` o `"off"`, mappati a 1/0). I comandi di commutazione vengono inviati tramite `POST /v1/devices/{DeviceId}/commands` con la capacità `switch`.

Dopo l'invio di un comando di commutazione, il template attende 500 ms e rilegge lo stato del dispositivo per evitare mescolamenti di stato tra il comando e il successivo ciclo di polling. L'interruttore viene interrogato ogni 2,5 secondi.

### Misurazione di potenza

Il contatore di energia integrato legge due valori dalla risposta di stato:

- **Potenza in tempo reale** — `components.main.powerMeter.power.value` riportata in watt, convertita in kW dal template (÷ 1000)
- **Consumo totale** — `components.main.energyMeter.energy.value` riportato direttamente in kWh

Il contatore è in sola lettura e viene interrogato ogni 15 secondi.

### Capacità aggiuntive

L'API SmartThings espone anche stringhe delle unità di potenza ed energia, stato di salute del dispositivo e una capacità di refresh per forzare un aggiornamento immediato dello stato. Queste possono essere aggiunte in un futuro aggiornamento del template.

## Risoluzione dei problemi

### L'integrazione smette di funzionare dopo 24 ore

I token PAT SmartThings standard scadono dopo 24 ore. Genera un nuovo token su [account.smartthings.com/tokens](https://account.smartthings.com/tokens) e aggiorna la variabile Token nel modulo TapHome. Se il rinnovo frequente del token non è pratico, verifica se è disponibile un token legacy con validità più lunga sull'account.

### Il dispositivo non risponde

1. Verifica che il dispositivo SmartThings sia online — controlla il suo stato nell'app SmartThings
2. Conferma che la variabile DeviceId corrisponda all'UUID corretto del dispositivo
3. Testa l'API manualmente: `GET https://api.smartthings.com/v1/devices/{DeviceId}/status` con l'header `Authorization: Bearer {Token}` — dovrebbe restituire una risposta JSON con lo stato del dispositivo
4. Assicurati che il Token abbia il permesso corretto (Devices — lettura ed esecuzione)

### Le letture di potenza mostrano zero

1. Conferma che il dispositivo stia effettivamente consumando energia — accendi un carico collegato
2. Verifica che il dispositivo SmartThings supporti le capacità `powerMeter` ed `energyMeter` — non tutti gli interruttori riportano la potenza
3. Interroga manualmente l'API di stato e verifica che `components.main.powerMeter.power.value` restituisca un valore diverso da zero

> [!NOTE]
> Questa è un'integrazione basata su cloud — richiede una connessione internet attiva sul TapHome CCU. Il template comunica con i server Samsung, non con il dispositivo fisico sulla rete locale.

## Dispositivi disponibili 2

Questi dispositivi compaiono in TapHome dopo l'importazione.

SmartThings Interruttore/Presa Modulo

Variabili personalizzate

|                                                            |                                                                                                       |
|------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
| `Token` (string) = 0ead2552-e331-4355-b483-81d3898eb5ba    | SmartThings Personal Access Token per l'autenticazione API (genera su account.smartthings.com/tokens) |
| `DeviceId` (string) = 47eff6bf-83c9-4374-a367-b254759b486d | SmartThings UUID dispositivo — identifica l'interruttore o la presa di destinazione                   |

Lettura (modulo)

```taphome
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization: Bearer "+Token);
IF response.IsSuccess
 StatusJson := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
```

Contatore elettrico Contatore elettrico Solo lettura

Misurazione consumo energetico — potenza istantanea (kW) ed energia cumulativa (kWh) tramite SmartThings Cloud API

numeric Unità: kW / kWh JSON

Variabile: `DeviceId`

Lettura consumo totale

```taphome
VAR value := PARSEJSON(StatusJson, "components.main.energyMeter.energy.value", 1);
IF(ISNULL(value), NaN, value);
```

Lettura domanda

```taphome
VAR value := PARSEJSON(StatusJson, "components.main.powerMeter.power.value", 1);
IF(ISNULL(value), NaN, value / 1000);
```

Interruttore Interruttore Lettura e scrittura

boolean JSON

Valori / Stati: ON · OFF

Lettura stato interruttore

```taphome
VAR value := PARSEJSON(StatusJson, "components.main.switch.switch.value", 1);
IF(ISNULL(value), NaN, if(value="on", 1, 0));
```

Scrittura stato interruttore

```taphome
# Set Http request method, body and headers
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", 
"POST", 
"{\"commands\": [ { \"component\": \"main\", \"capability\": \"switch\", \"command\": \""+IF(St=1, "on", "off")+"\", \"arguments\": [] } ] }",
"Authorization: Bearer "+Token);


# Wait a little an read the state again to prevent state shuffle
SLEEP(500);
response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization: Bearer "+Token);
IF response.IsSuccess
 StatusJson := response.Content;
 # ADDINFO("StatusJson refreshed");
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
```

**Connessione:** Packet Parser → HTTP

Possibili miglioramenti (4)

- Power Unit — Unit string for power reading (W), available in status response
- Energy Unit — Unit string for energy reading (kWh), available in status response
- Health Check — Device health/online status, available via SmartThings Health API
- Refresh — Force refresh device state via SmartThings refresh capability command

## Fonti

- TapHome Wiki — SmartThings Integration Guide
  
  [github.com](https://github.com/nygma2004/km/wiki/TapHome-Examples#integrating-smartthings-switch-or-plug-with-power-metering) 2026-03-28
- SmartThings API — Quick Start Guide
  
  [developer.smartthings.com](https://developer.smartthings.com/docs/getting-started/quickstart) 2026-03-28
- SmartThings Authorization and Permissions
  
  [developer.smartthings.com](https://developer.smartthings.com/docs/getting-started/authorization-and-permissions) 2026-03-28
- SmartThings Capabilities Reference (switch, powerMeter, energyMeter)
  
  [github.com](https://github.com/erikwilson/SmartThings-Documentation/blob/master/capabilities-reference.rst) 2026-03-28

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

