TapHome

Shelly Pro 3

Packet Parser → HTTP
Inviato da
Ultimo aggiornamento: 03. 2026
Shelly Pro 3

Lo Shelly Pro 3 è un modulo relè a 3 canali per montaggio su guida DIN con contatti liberi da potenziale. Ciascuna delle tre uscite indipendenti può commutare fino a 16 A (48 A totali su tutti i canali), rendendolo adatto per controllare circuiti di illuminazione, elementi riscaldanti o carichi trifase dove ogni fase viene commutata separatamente. TapHome comunica con il dispositivo via HTTP utilizzando l’API Gen2 JSON-RPC 2.0 sulla rete locale — non è richiesta alcuna connessione cloud.

A differenza dello Shelly Pro 3EM, che è un contatore di energia (solo monitoraggio), il Pro 3 è un dispositivo di commutazione a relè puro senza capacità di misurazione della potenza. Il dispositivo si connette tramite WiFi, Ethernet (RJ45) o Bluetooth ed è progettato per l’installazione professionale in quadri elettrici.

Configurazione

Lo Shelly Pro 3 si connette tramite WiFi o Ethernet. Durante l’importazione del template in TapHome, inserisci l’indirizzo IP del dispositivo (placeholder predefinito 192.168.0.1).

L’autenticazione deve essere disattivata sul dispositivo Shelly per l’integrazione con TapHome. TapHome non supporta l’HTTP Digest Auth utilizzata dai dispositivi Gen2. Apri l’interfaccia web Shelly (http://{device-ip}) → Settings → Authentication e assicurati che sia disattivata.

Il cavo LAN deve essere collegato o scollegato solo quando il dispositivo è spento. L’hot-plugging del cavo Ethernet può causare problemi.

Se la modalità ECO è attivata sul dispositivo Shelly, può causare timeout di comunicazione a causa degli intervalli di polling rapidi del template (2,5–3 secondi). Disattiva la modalità ECO nell’interfaccia web Shelly se riscontri problemi di connettività intermittente.

Funzionalità del dispositivo

Controllo relè

Il template espone tre dispositivi interruttore indipendenti, uno per ogni canale relè. Lo stato di ogni relè viene letto dalla risposta di /rpc/Switch.GetStatus?id=N (campo output, boolean) e controllato tramite /rpc/Switch.Set?id=N&on=true o on=false, dove N è 0, 1 o 2.

Tutti e tre i canali operano indipendentemente — possono essere su circuiti diversi, fasi AC diverse, o anche carichi misti AC/DC. I contatti relè sono liberi da potenziale (contatti puliti), quindi ogni uscita può commutare un circuito completamente separato dall’alimentazione del dispositivo stesso.

Diagnostica di servizio

Il template espone attributi di servizio a livello modulo per il monitoraggio del dispositivo:

  • WiFi — nome della rete SSID connessa
  • Indirizzo IP — IP attuale della stazione
  • Potenza del segnale — WiFi RSSI in dB
  • MAC — indirizzo MAC del dispositivo

Lo script di lettura del modulo verifica anche la disponibilità di aggiornamenti firmware e requisiti di riavvio in sospeso, mostrandoli come avvisi nell’interfaccia TapHome.

Azioni di servizio

Due azioni di servizio sono disponibili a livello modulo:

  • Aggiornamento firmware — avvia l’aggiornamento firmware all’ultima versione stabile tramite /rpc/Shelly.Update
  • Riavvio — avvia il riavvio del dispositivo tramite /rpc/Shelly.Reboot
Funzionalità aggiuntive

Lo Shelly Pro 3 espone anche gli stati degli ingressi fisici interruttore/pulsante (S1, S2, S3) tramite il componente Input, la temperatura interna del dispositivo, l’uptime, l’utilizzo RAM, l’ora del dispositivo e lo stato Ethernet tramite l’API RPC. Un timer auto-off è disponibile tramite il parametro toggle_after del comando Switch.Set. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

Risoluzione dei problemi

Il dispositivo non risponde
  1. Verifica che lo Shelly sia connesso al WiFi o Ethernet e abbia un indirizzo IP valido
  2. Prova a usare l’hostname mDNS (ShellyPro3-AABBCCDDEE.local) invece dell’indirizzo IP — l’IP potrebbe essere cambiato dopo un rinnovo DHCP
  3. Apri http://{device-ip}/rpc/Shelly.GetDeviceInfo nel browser — se risponde con JSON, il dispositivo è raggiungibile
  4. Verifica che TapHome Core e Shelly siano nella stessa rete / VLAN
  5. Conferma che l’autenticazione è disattivata sul dispositivo Shelly
Solo alcuni canali rispondono
  1. Verifica che ogni canale sia correttamente indirizzato (id=0 per l’Uscita 1, id=1 per l’Uscita 2, id=2 per l’Uscita 3)
  2. Controlla gli indicatori LED dei relè sul pannello frontale del dispositivo — LED rosso significa che il relè corrispondente è chiuso (ON)
  3. Testa il canale non rispondente manualmente tramite browser: http://{device-ip}/rpc/Switch.Set?id=N&on=true
Problemi con carico induttivo

Per carichi induttivi (ventilatori, trasformatori, driver LED), si raccomanda un circuito RC (0,1 uF / 100 Ohm / 1/2 W / 600 VAC) sull’uscita del relè per proteggere da picchi di tensione e prolungare la vita del relè.

I dispositivi Shelly Gen2 supportano fino a 6 connessioni HTTP simultanee. Evita il polling da troppi sistemi contemporaneamente (TapHome, Home Assistant, script personalizzati) per prevenire l’esaurimento delle connessioni.

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 Pro 3 Modulo
Attributi di servizio
WiFi
Indirizzo IP
Potenza del segnale
MAC
Azioni di servizio
Aggiornamento firmware
Riavvio
Variabili personalizzate

Shelly Pro 3

Lettura (modulo)
VAR response := SENDHTTPREQUEST("/rpc/Sys.GetStatus");
IF response.IsSuccess
    Sys.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Sys.GetConfig");
IF response.IsSuccess
    Sys.GetConfig := response.Content;
END

response := SENDHTTPREQUEST("/rpc/WiFi.GetStatus");
IF response.IsSuccess
    WiFi.GetStatus := response.Content;
END

if ! ISNULL(parsejson(Sys.GetStatus, "available_updates.stable", true))
    addwarning("New firmware update is available");
end

if parsejson(Sys.GetStatus, "restart_required", true)
    addwarning("Restart required");
end
Attributi di servizio
Wifi
PARSEJSON(WiFi.GetStatus, "ssid")
${ipAddress}
PARSEJSON(WiFi.GetStatus, "sta_ip")
${xml_signal_strength} [dB]
PARSEJSON(WiFi.GetStatus, "rssi")
MAC
PARSEJSON(Sys.GetStatus, "mac")
Azioni di servizio
${xml_update_fw}
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Update?stage=\"stable\"");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END

Reboot
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Reboot");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Interruttore 1 Interruttore
boolean
Valori / Stati: ON · OFF

Interruttore 1

Lettura stato interruttore
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=" + id);
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
return(parsejson(Switch.GetStatus, "output"));
Scrittura stato interruttore
VAR path := "/rpc/Switch.Set?id=" + id + "&on=" + SWITCH(St, 1, "true", "false");
SENDHTTPREQUEST(path);
Interruttore 2 Interruttore
boolean
Valori / Stati: ON · OFF

Interruttore 2

Lettura stato interruttore
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=" + id);
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
return(parsejson(Switch.GetStatus, "output"));
Scrittura stato interruttore
VAR path := "/rpc/Switch.Set?id=" + id + "&on=" + SWITCH(St, 1, "true", "false");
SENDHTTPREQUEST(path);
Interruttore 3 Interruttore
boolean
Valori / Stati: ON · OFF

Interruttore 3

Lettura stato interruttore
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=" + id);
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
return(parsejson(Switch.GetStatus, "output"));
Scrittura stato interruttore
VAR path := "/rpc/Switch.Set?id=" + id + "&on=" + SWITCH(St, 1, "true", "false");
SENDHTTPREQUEST(path);
Connessione: Packet Parser → HTTP
Possibili miglioramenti (9)
  • Input 1 State — Physical switch/button input S1 state, available via /rpc/Input.GetStatus?id=0
  • Input 2 State — Physical switch/button input S2 state, available via /rpc/Input.GetStatus?id=1
  • Input 3 State — Physical switch/button input S3 state, available via /rpc/Input.GetStatus?id=2
  • Device Temperature — Internal temperature in °C, available in Switch.GetStatus response (non-metered devices may still report temperature)
  • Uptime — Seconds since last reboot, available in Sys.GetStatus response
  • RAM Usage — Total and free RAM in bytes, available in Sys.GetStatus response
  • Device Time — Current device time in HH:MM format, available in Sys.GetStatus response
  • Auto-off Timer — Auto-reset timer in seconds via toggle_after parameter, could be added as switch parameter for all 3 channels
  • Ethernet Status — Pro 3 has RJ45 LAN port; Ethernet status (IP, link) available via /rpc/Ethernet.GetStatus

Fonti