
La Shelly DUO (modello SHBDUO-1) è una lampadina LED smart Wi-Fi Gen1 disponibile in formato E27 e GU10. La DUO standard è solo bianca con temperatura colore regolabile e luminosità dimmerabile — non ha canali RGB (la versione RGB è la DUO RGBW / shellycolorbulb- e usa un template separato). Questa è la variante MQTT dell’integrazione TapHome; per installazioni a singola lampadina è disponibile anche una variante HTTP.
Il template supporta fino a 5 lampadine DUO per modulo tramite un broker MQTT condiviso sulla rete locale. Ogni lampadina è identificata da una variabile di modulo bulbNtopic che punta al Device ID MQTT della lampadina, ed espone sia un dispositivo di luce bianca che un misuratore elettrico — 10 dispositivi in totale.
Configurazione
Broker MQTT
Il template richiede un broker MQTT raggiungibile sulla rete locale — funziona qualsiasi broker standard (Mosquitto, EMQX o il broker integrato in Home Assistant). Il broker gira sulla porta 1883 senza TLS (l’hardware Gen1 Shelly non supporta MQTT su TLS), quindi mantienilo in un segmento attendibile.
Dopo aver importato il template, configura la connessione al broker nei parametri di import del modulo:
| Parametro | Predefinito | Descrizione |
|---|---|---|
MQTT Broker IP (IpAddress) | 192.168.0.1 | Indirizzo del broker sulla rete locale |
MQTT Broker port (Port) | 1883 | Porta MQTT standard (senza TLS) |
Transition time (TransitionTime) | 300 | Durata di transizione predefinita per lampadina in millisecondi |
Abilitazione MQTT sulla lampadina
Ogni Shelly DUO deve essere puntata al broker prima di pubblicare o accettare comandi:
- Apri l’interfaccia web della lampadina su
http://<bulb-ip>(trova l’IP nella tabella DHCP del router o nell’app Shelly) - Vai a Internet & Security → Advanced — MQTT e abilita MQTT
- Inserisci il server del broker (IP e porta, es.
192.168.0.10:1883) e lascia username / password vuoti (il template TapHome non espone l’autenticazione del broker) - Opzionalmente regola il MQTT prefix se non vuoi il predefinito
shellies/ShellyBulbDuo-<MAC6> - Salva e riavvia la lampadina — una volta riconnessa inizia a pubblicare su
shellies/ShellyBulbDuo-<id>/light/0/status
Device ID (bulbNtopic)
Ogni Shelly DUO ha un Device ID MQTT univoco nel formato ShellyBulbDuo-<MAC6>, dove <MAC6> sono gli ultimi 6 caratteri esadecimali del MAC address (es. ShellyBulbDuo-B929CC). Lo stesso valore è anche l’hostname mDNS della lampadina (ShellyBulbDuo-<MAC6>.local).
Il Device ID si trova:
- Nella web UI Shelly: Settings → Device Info → campo
mqtt.id - Via HTTP:
GET http://<bulb-ip>/settings→mqtt.id - Sull’etichetta del dispositivo / sulla confezione (ultimi 6 caratteri del MAC, esadecimale minuscolo)
- Come hostname mDNS, es.
ShellyBulbDuo-b929cc.local
Apri il modulo Shelly DUO MQTT in TapHome e compila le variabili topic per ogni lampadina che vuoi usare:
| Variabile | Predefinito | Descrizione |
|---|---|---|
bulb1topic | ShellyBulbDuo-deviceid1 | Device ID MQTT della prima lampadina DUO |
bulb2topic | ShellyBulbDuo-deviceid2 | Device ID MQTT della seconda lampadina DUO |
bulb3topic | ShellyBulbDuo-deviceid3 | Device ID MQTT della terza lampadina DUO |
bulb4topic | ShellyBulbDuo-deviceid4 | Device ID MQTT della quarta lampadina DUO |
bulb5topic | ShellyBulbDuo-deviceid5 | Device ID MQTT della quinta lampadina DUO |
Sostituisci il placeholder con il Device ID reale di ogni lampadina che vuoi controllare (es. ShellyBulbDuo-B929CC). Il modulo si sottoscrive a shellies/# e gli script listener per lampadina filtrano i messaggi per prefisso del topic. Gli slot lasciati al valore placeholder generano un errore in TapHome finché non vengono configurati o rimossi dal template.
Tempo di transizione per lampadina
Ogni dispositivo Light espone una variabile transitionTime (in millisecondi, intervallo 0-5000 ms) che per default eredita il parametro di import TransitionTime a livello di modulo. Sovrascrivila sulle singole lampadine se vuoi durate di transizione diverse — il valore viene inviato a ogni cambio di luminosità o CCT come campo transition nel payload JSON di /light/0/set.
L’attivazione di MQTT su un dispositivo Shelly Gen1 disabilita Shelly Cloud — i due non possono coesistere. HTTP REST e CoIoT rimangono disponibili, quindi la lampadina resta raggiungibile dalla rete locale.
Funzionalità del dispositivo
Il template espone 10 dispositivi per modulo — 5 luci bianche regolabili e 5 misuratori elettrici, una coppia per lampadina fisica. Tutte e 5 le coppie sono funzionalmente identiche, distinte solo dal bulbNtopic su cui ascoltano.
Controllo luce
Ogni dispositivo Light è mappato in TapHome come White Light con due proprietà di controllo:
- Luminosità — letta dal campo
$.brightness(0-100) del JSONlight/0/status, scalata sull’intervallo TapHome 0.0-1.0; scritta tramitelight/0/setcon"turn":"on", "brightness":N, "transition":<ms> - Temperatura colore — letta da
$.temp(3000-6500 K), scritta tramitelight/0/setcon"temp":K, "transition":<ms>
Lo spegnimento della luce usa un topic separato light/0/command con payload off, che è più veloce della costruzione di un messaggio JSON set. Gli aggiornamenti di luminosità e CCT includono sempre il campo transition, così la lampadina sfuma dolcemente invece di saltare.
Misurazione consumi
Ogni Electric Meter si sottoscrive a due topic scalari pubblicati dalla lampadina circa una volta al secondo:
| Valore TapHome | Topic sorgente | Unità sorgente | Conversione | Unità visualizzata |
|---|---|---|---|---|
| Potenza istantanea | shellies/ShellyBulbDuo-<id>/light/0/power | W | ÷ 1000 | kW |
| Consumo totale | shellies/ShellyBulbDuo-<id>/light/0/energy | watt-minuti | ÷ 60000 | kWh |
La conversione watt-minuti → kWh è necessaria perché il firmware Shelly Gen1 riporta l’energia cumulativa in W·min anziché in W·h.
La misurazione dei consumi resta silenziosamente a zero finché Settings → Device Model (E27 o GU10) non è configurato nell’app Shelly o nella web UI. Il listener TapHome alla prima lettura mostra un banner informativo che lo ricorda. Una volta impostato il modello, la lampadina inizia immediatamente a riportare valori
power/energynon nulli.
Risoluzione problemi
La lampadina non risponde
- Verifica che la lampadina sia connessa al Wi-Fi e raggiungibile sulla LAN — apri
http://<bulb-ip>/shelly. Una risposta contenente"type":"SHBDUO-1"conferma il dispositivo. - Prova l’hostname mDNS (
ShellyBulbDuo-<MAC6>.local) invece dell’indirizzo IP — i rinnovi DHCP o i riavvii del router possono cambiare l’IP. - Conferma che MQTT sia abilitato nelle impostazioni Internet & Security → Advanced — MQTT della lampadina e che IP/porta del broker corrispondano ai parametri di import TapHome.
- Usa un client MQTT (es. MQTT Explorer o
mosquitto_sub -h <broker> -t 'shellies/#' -v) per verificare che la lampadina pubblichi sushellies/ShellyBulbDuo-<id>/....
Errore “Set correct ‘bulbNtopic’ value”
Lo script listener genera questo errore quando un bulbNtopic è ancora impostato sul placeholder predefinito (ShellyBulbDuo-deviceid). Inserisci il Device ID reale per quello slot oppure rimuovi i dispositivi inutilizzati dal template se hai solo poche lampadine.
Potenza ed energia restano a zero
- Apri l’app Shelly (o la web UI) → Settings → Device Model e seleziona il sub-modello corrispondente (Shelly Bulb DUO E27 o Shelly Bulb DUO GU10). La lampadina calcola
power/energysolo dopo che il modello è noto. - Conferma che la lampadina sia effettivamente accesa — il misuratore si aggiorna solo mentre scorre corrente.
- Sottoscriviti direttamente a
shellies/ShellyBulbDuo-<id>/light/0/powercon un client MQTT per verificare che la lampadina pubblichi un valore non nullo.
La CCT più calda scende solo a 3000 K
L’XML TapHome limita la CCT a 3000-6500 K per allinearsi all’intervallo E27 commercializzato. L’hardware in sé supporta 2700-6500 K sul sub-modello GU10 e tramite l’API grezza /light/0/set, quindi i 300 K più caldi del GU10 non sono raggiungibili tramite il template TapHome.
Le transizioni della luce sembrano a scatti
Aumenta la variabile transitionTime sulla lampadina specifica (o il default di modulo TransitionTime). 300 ms vanno bene per piccoli passi di dimming, ma su grandi salti di luminosità o CCT possono apparire a gradini — prova 800-1500 ms per una sfumatura più morbida.
I dispositivi Shelly Gen1 usano MQTT in chiaro sulla porta 1883 — TLS non è supportato. Il template TapHome inoltre non espone
username/passworddel broker, quindi usa un broker non autenticato su una rete locale o VLAN attendibile.