TapHome

Shelly 1PM

Packet Parser → HTTP
Submitted by
Last updated: 03. 2026
Shelly 1PM

Lo Shelly 1PM è un relè Wi-Fi compatto con misurazione della potenza integrata. Si installa dietro un normale interruttore a parete e può controllare un circuito fino a 16 A (3500 W a 230 V). TapHome comunica con il dispositivo tramite HTTP sulla rete locale — non è richiesta alcuna connessione cloud.

Il template fornisce il controllo del relè e un contatore di energia che legge il consumo di potenza in tempo reale e l’energia cumulativa utilizzata.

Configurazione

Lo Shelly 1PM si connette tramite Wi-Fi. Durante l’importazione del template TapHome, inserire l’indirizzo IP del dispositivo (segnaposto predefinito 192.168.0.1).

Questo dispositivo supporta il rilevamento mDNS. È possibile utilizzare il nome host shelly1pm-{MAC}.local al posto dell’indirizzo IP durante la configurazione di TapHome. Sostituire {MAC} con l’indirizzo MAC del dispositivo (esadecimale maiuscolo, senza due punti). L’uso del nome host evita problemi di connettività quando l’indirizzo IP del dispositivo cambia.

Aprire l’app TapHome e usare lo IP Scanner (Impostazioni → Rete → Scansione). Lo scanner rileva i dispositivi sulla rete e mostra sia l’indirizzo IP che il nome host mDNS (ad es. shelly1pm-AABBCCDDEE.local). Usare il nome host al posto dell’indirizzo IP per una connessione più affidabile.

Capacità del dispositivo

Controllo relè

Il template espone il relè come dispositivo interruttore. Lo stato del relè viene letto dalla risposta /status (relays[0].ison) e controllato tramite l’endpoint /relay/0 con turn=on o turn=off.

Misurazione della potenza

Il contatore di energia integrato legge due valori dalla risposta /status:

  • Potenza in tempo realemeters[0].power riportata in watt, convertita in kW dal template
  • Consumo totalemeters[0].total riportato in watt-minuti, convertito in kWh dal template

Il contatore è di sola lettura — si aggiorna automaticamente a ogni ciclo di polling.

Diagnostica di servizio

Il template espone 13 attributi di servizio per il monitoraggio del dispositivo:

  • Informazioni dispositivo — nome host, indirizzo MAC, ora del dispositivo, uptime, utilizzo RAM
  • Protezione termica — temperatura interna (°C), stato temperatura (Normale / Alta / Molto Alta), flag di sovratemperatura
  • Connettività — cloud abilitato/connesso, MQTT connesso, aggiornamento firmware disponibile
  • Protezione di potenza — limite di potenza massima corrente (letto da /settings)
Azioni di servizio

Sono disponibili tre azioni di servizio:

  • Imposta protezione di potenza — imposta il limite di potenza massima (1–3500 W). Il relè si spegne automaticamente se il consumo supera questo valore.
  • Abilita cloud — abilita o disabilita la connettività Shelly Cloud
  • Riavvia — avvia il riavvio del dispositivo
Capacità aggiuntive

Lo Shelly 1PM espone anche la tensione di linea, la potenza reattiva, lo stato dell’ingresso fisico e la potenza del segnale Wi-Fi nella risposta /status. Un timer di spegnimento automatico è disponibile sull’endpoint del relè. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

Risoluzione dei problemi

Il dispositivo non risponde
  1. Verificare che lo Shelly sia connesso al Wi-Fi e abbia un indirizzo IP valido
  2. Provare a usare il nome host mDNS (shelly1pm-AABBCCDDEE.local) al posto dell’indirizzo IP — l’IP potrebbe essere cambiato dopo un rinnovo DHCP
  3. Aprire http://{device-ip}/shelly in un browser — se risponde, il dispositivo è raggiungibile
  4. Verificare che TapHome CCU e Shelly siano sulla stessa rete / VLAN
Le letture di potenza mostrano zero
  1. Verificare che il carico sia collegato attraverso il relè Shelly (non bypassato)
  2. Verificare che il relè sia acceso — il contatore legge solo quando la corrente scorre attraverso il relè
  3. Eseguire il polling manuale di /status e verificare che meters[0].power restituisca un valore diverso da zero
Avviso di sovratemperatura

Lo Shelly 1PM dispone di una protezione termica interna. Se la temperatura del dispositivo supera i limiti di sicurezza, temperature_status cambia in “High” o “Very High” e overtemperature diventa true. Assicurarsi una ventilazione adeguata attorno al dispositivo, specialmente quando si gestiscono carichi elevati.

I dispositivi Shelly Gen1 supportano solo 2 connessioni HTTP contemporanee. Se TapHome e un altro sistema (ad es. Home Assistant) eseguono il polling dello stesso dispositivo contemporaneamente, la comunicazione potrebbe diventare inaffidabile. Usare un intervallo di polling di 10–30 secondi.

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.1Internet & SecurityWi-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

Shelly 1PM Modulo
Attributi di servizio
Protezione potenza
Nome host
Indirizzo MAC
Ora del dispositivo
Tempo di attività
RAM
Temperatura interna dispositivo
Stato temperatura
Aggiornamento FW
Cloud abilitato
Cloud connesso
MQTT connesso
Surriscaldato
Azioni di servizio
Imposta protezione potenza
Abilita cloud
Riavvio

Shelly 1PM Module

Lettura (modulo)
VAR response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;
Attributi di servizio
Power protection
VAR response := SENDHTTPREQUEST("/settings", "GET");
SettingsJson := response.Content;

response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;

PARSEJSON(SettingsJson, "max_power") + "W";
Host name
PARSEJSON(SettingsJson, "device.hostname");
Mac address
PARSEJSON(StatusJson, "mac");
Device time
PARSEJSON(StatusJson, "time")
Uptime
VAR upTimeSeconds := PARSEJSON(StatusJson, "uptime");
VAR days := FLOOR(upTimeSeconds/86400, 1);
uptimeSeconds := MOD(upTimeSeconds, 86400);
var hours := FLOOR(upTimeSeconds/3600, 1);
uptimeSeconds := MOD(upTimeSeconds, 3600);
var minutes := FLOOR(upTimeSeconds/60, 1);
days + "day(s) " + hours + "h " + minutes + "m"
RAM
var ramTotal := PARSEJSON(StatusJson, "ram_total");
var ramFree := PARSEJSON(StatusJson, "ram_free");
ramFree + " bytes free of " + ramTotal
Internal device temperature
PARSEJSON(StatusJson, "temperature") + "°C"
Temperature status
PARSEJSON(StatusJson, "temperature_status");
FW update
PARSEJSON(StatusJson, "has_update");
Cloud enabled
PARSEJSON(StatusJson, "cloud.enabled");
Cloud connected
PARSEJSON(StatusJson, "cloud.connected");
MQTT connected
PARSEJSON(StatusJson, "mqtt.connected");
Overheated
PARSEJSON(StatusJson, "overtemperature");
Azioni di servizio
Set power protection
Parametri: Maximum power (1–3500 Watts)
VAR response := SENDHTTPREQUEST("settings?max_power=" + Watts);
VAR contentJson := response.Content;
VAR limitSet := PARSEJSON(contentJson, "max_power");

"Power limit set to " + limitSet + "W"
Enable cloud
Parametri: Enable (Enable / Disable)
VAR response := SENDHTTPREQUEST("/settings/cloud?enabled=" + enable);
VAR contentJson := response.Content;
VAR wasEnabled := PARSEJSON(contentJson, "enabled");

IF(wasEnabled, "Cloud enabled", "Cloud disabled");
Reboot
VAR response := SENDHTTPREQUEST("/reboot");
VAR contentJson := response.Content;
VAR wasRebooted := PARSEJSON(contentJson, "ok");

IF(wasRebooted, "Reboot successful", "Error");
Interruttore Interruttore
boolean

Interruttore

Lettura stato interruttore
VAR value := PARSEJSON(StatusJson, "relays[0].ison", 1);
IF(ISNULL(value), NaN, value);
Scrittura stato interruttore
VAR path := "relay/0?turn=" + SWITCH(St, 0, "off", 1, "on","off");
SENDHTTPREQUEST(path);
Contatore elettrico Contatore elettrico Solo lettura

Misurazione consumo energetico — potenza istantanea (kW) ed energia cumulativa (kWh)

numeric Unità: W / kWh

Contatore elettrico

Lettura consumo totale
VAR total := PARSEJSON(StatusJson, "meters[0].total", 1);
IF(ISNULL(total), NaN, total / 60000.0);
Lettura domanda
VAR power := PARSEJSON(StatusJson, "meters[0].power", 1);
IF(ISNULL(power), NaN, power / 1000.0);
Connessione: Packet Parser → HTTP
Possibili miglioramenti (5)
  • Voltage — Line voltage in V, available in /status response
  • Reactive Power — Reactive power in VAR, available in /status response
  • Input State — Physical input state (0/1), available in /status response
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Auto-off Timer — Auto-off timer in seconds, could be added as service action or switch parameter

Fonti