
Shelly DUO (model SHBDUO-1) este un bec LED inteligent Wi-Fi Gen1, disponibil în variantele E27 și GU10. Varianta de bază DUO emite doar lumină albă, cu temperatură de culoare și luminozitate reglabile — nu are canale RGB (varianta cu RGB este DUO RGBW / shellycolorbulb- și folosește un șablon separat). Aceasta este varianta MQTT a integrării TapHome; pentru instalațiile cu un singur bec este disponibilă și o variantă HTTP.
Șablonul acceptă până la 5 becuri DUO per modul, printr-un broker MQTT comun în rețeaua locală. Fiecare bec este identificat prin variabila de modul bulbNtopic, care indică ID-ul de dispozitiv MQTT al becului, și oferă un dispozitiv de lumină albă și un contor electric — în total 10 dispozitive.
Configurare
Brokerul MQTT
Șablonul are nevoie de un broker MQTT accesibil în rețeaua locală — funcționează orice broker standard (Mosquitto, EMQX sau brokerul integrat în Home Assistant). Brokerul rulează pe portul 1883 fără TLS (hardware-ul Shelly Gen1 nu acceptă MQTT prin TLS), de aceea păstrați-l într-un segment de rețea de încredere.
După importul șablonului, setați conexiunea la broker în parametrii de import ai modulului:
| Parametru | Implicit | Descriere |
|---|---|---|
MQTT Broker IP (IpAddress) | 192.168.0.1 | Adresa brokerului în rețeaua locală |
MQTT Broker port (Port) | 1883 | Portul MQTT standard (fără TLS) |
Transition time (TransitionTime) | 300 | Durata implicită a tranziției pentru fiecare bec, în milisecunde |
Activarea MQTT pe bec
Fiecare Shelly DUO trebuie configurat să se conecteze la broker înainte să publice date sau să accepte comenzi:
- Deschideți interfața web a becului la
http://<bulb-ip>(adresa IP o găsiți în tabelul DHCP al routerului sau în aplicația Shelly) - Accesați Internet & Security → Advanced — MQTT și activați MQTT
- Introduceți serverul brokerului (IP și port, de ex.
192.168.0.10:1883) și lăsați goale câmpurile username / password (șablonul TapHome nu oferă autentificare la broker) - Opțional, modificați MQTT prefix dacă nu doriți valoarea implicită
shellies/ShellyBulbDuo-<MAC6> - Salvați și reporniți becul — după reconectare începe să publice pe
shellies/ShellyBulbDuo-<id>/light/0/status
ID-ul dispozitivului (bulbNtopic)
Fiecare Shelly DUO are un ID de dispozitiv MQTT unic în formatul ShellyBulbDuo-<MAC6>, unde <MAC6> reprezintă ultimele 6 caractere hexazecimale ale adresei MAC (de ex. ShellyBulbDuo-B929CC). Aceeași valoare este și numele de gazdă mDNS al becului (ShellyBulbDuo-<MAC6>.local).
ID-ul dispozitivului se găsește:
- În interfața web Shelly: Settings → Device Info → câmpul
mqtt.id - Prin HTTP:
GET http://<bulb-ip>/settings→mqtt.id - Pe eticheta dispozitivului / pe ambalaj (ultimele 6 caractere ale adresei MAC, în hexazecimal cu litere mici)
- Ca nume de gazdă mDNS, de ex.
ShellyBulbDuo-b929cc.local
Deschideți modulul Shelly DUO MQTT în TapHome și completați variabilele de topic pentru fiecare bec pe care doriți să-l folosiți:
| Variabilă | Implicit | Descriere |
|---|---|---|
bulb1topic | ShellyBulbDuo-deviceid1 | ID-ul de dispozitiv MQTT al primului bec DUO |
bulb2topic | ShellyBulbDuo-deviceid2 | ID-ul de dispozitiv MQTT al celui de-al doilea bec DUO |
bulb3topic | ShellyBulbDuo-deviceid3 | ID-ul de dispozitiv MQTT al celui de-al treilea bec DUO |
bulb4topic | ShellyBulbDuo-deviceid4 | ID-ul de dispozitiv MQTT al celui de-al patrulea bec DUO |
bulb5topic | ShellyBulbDuo-deviceid5 | ID-ul de dispozitiv MQTT al celui de-al cincilea bec DUO |
Înlocuiți valoarea implicită cu ID-ul real al dispozitivului pentru fiecare bec pe care doriți să-l comandați (de ex. ShellyBulbDuo-B929CC). Modulul se abonează la shellies/#, iar scripturile de ascultare ale fiecărui bec filtrează mesajele după prefixul de topic. Sloturile care au rămas la valoarea implicită generează o eroare în TapHome până când sunt configurate sau eliminate din șablon.
Timpul de tranziție pentru fiecare bec
Fiecare dispozitiv de lumină oferă variabila personalizată transitionTime (în milisecunde, interval 0–5000 ms), care preia implicit valoarea parametrului de import TransitionTime de la nivelul modulului. Dacă doriți durate diferite ale tranziției, suprascrieți-o la becurile individuale — valoarea se trimite la fiecare modificare a luminozității sau a CCT, în câmpul transition din payloadul JSON /light/0/set.
Activarea MQTT pe un dispozitiv Shelly Gen1 dezactivează Shelly Cloud — cele două nu pot funcționa simultan. HTTP REST și CoIoT rămân disponibile, așa că becul rămâne accesibil din rețeaua locală.
Funcțiile dispozitivului
Șablonul oferă 10 dispozitive per modul — 5 lumini cu alb reglabil și 5 contoare electrice, câte o pereche pentru fiecare bec fizic. Toate cele 5 perechi sunt identice din punct de vedere funcțional și se deosebesc doar prin bulbNtopic pe care îl ascultă.
Comanda luminii
Fiecare dispozitiv de lumină este mapat în TapHome ca lumină albă cu două proprietăți comandabile:
- Luminozitate — citită din câmpul
$.brightness(0–100) al JSON-uluilight/0/status, scalată la intervalul TapHome 0,0–1,0; scrisă prinlight/0/setcu"turn":"on", "brightness":N, "transition":<ms> - Temperatura de culoare — citită din
$.temp(3000–6500 K), scrisă prinlight/0/setcu"temp":K, "transition":<ms>
Stingerea luminii folosește un topic separat, light/0/command, cu payloadul off, ceea ce este mai rapid decât construirea unui mesaj JSON set. Actualizările luminozității și ale CCT conțin întotdeauna câmpul transition, astfel încât becul trece gradual la noua valoare, nu brusc.
Măsurarea puterii
Fiecare dispozitiv de tip contor electric se abonează la două topicuri scalare, pe care becul le publică aproximativ o dată pe secundă:
| Valoare TapHome | Topic sursă | Unitate sursă | Conversie | Unitate afișată |
|---|---|---|---|---|
| Putere în timp real | shellies/ShellyBulbDuo-<id>/light/0/power | W | ÷ 1000 | kW |
| Consum total | shellies/ShellyBulbDuo-<id>/light/0/energy | wați-minut | ÷ 60000 | kWh |
Conversia din wați-minut în kWh este necesară deoarece firmware-ul Shelly Gen1 raportează energia cumulată în W·min, nu în W·h.
Monitorizarea puterii raportează zero, fără niciun avertisment, până când în aplicația Shelly sau în interfața web nu este configurat Settings → Device Model (E27 sau GU10). La prima citire, scriptul de ascultare TapHome afișează un mesaj informativ care vă reamintește acest lucru. După setarea modelului, becul începe imediat să raporteze valori
power/energydiferite de zero.
Rezolvarea problemelor
Becul nu răspunde
- Verificați dacă becul este conectat la Wi-Fi și accesibil în rețeaua locală — deschideți
http://<bulb-ip>/shelly. Un răspuns care conține"type":"SHBDUO-1"confirmă dispozitivul. - Încercați numele de gazdă mDNS (
ShellyBulbDuo-<MAC6>.local) în locul adresei IP — reînnoirea DHCP sau repornirea routerului pot schimba adresa IP. - Verificați dacă MQTT este activat în setările becului, la Internet & Security → Advanced — MQTT, și dacă adresa IP și portul brokerului corespund parametrilor de import din TapHome.
- Folosiți un client MQTT (de ex. MQTT Explorer sau
mosquitto_sub -h <broker> -t 'shellies/#' -v) pentru a verifica dacă becul publică peshellies/ShellyBulbDuo-<id>/....
Eroarea „Set correct ‘bulbNtopic’ value”
Scriptul de ascultare generează această eroare atunci când un bulbNtopic este încă setat la valoarea implicită (ShellyBulbDuo-deviceid). Completați ID-ul real al dispozitivului pentru slotul respectiv sau, dacă aveți doar câteva becuri, eliminați din șablon dispozitivele nefolosite.
Puterea și energia rămân la zero
- Deschideți aplicația Shelly (sau interfața web) → Settings → Device Model și selectați submodelul corespunzător (Shelly Bulb DUO E27 sau Shelly Bulb DUO GU10). Becul calculează
power/energydoar după ce modelul este cunoscut. - Verificați dacă becul este într-adevăr aprins — contorul se actualizează doar cât timp trece curent.
- Abonați-vă direct cu un client MQTT la
shellies/ShellyBulbDuo-<id>/light/0/powerși verificați dacă becul publică o valoare diferită de zero.
Cea mai caldă temperatură de culoare coboară doar până la 3000 K
XML-ul TapHome limitează CCT la 3000–6500 K, pentru a corespunde intervalului declarat comercial pentru E27. Hardware-ul în sine acceptă 2700–6500 K la submodelul GU10 și prin API-ul direct /light/0/set, așa că intervalul 2700–3000 K al variantei GU10 nu este accesibil prin șablonul TapHome.
Tranzițiile luminii par sacadate
Măriți variabila personalizată transitionTime a becului (sau valoarea implicită TransitionTime de la nivelul modulului). 300 ms sunt suficiente pentru pași mici de reglare a luminozității, dar la schimbări mari ale luminozității sau ale CCT tranziția poate părea în trepte — încercați 800–1500 ms pentru o tranziție mai lină.
Dispozitivele Shelly Gen1 folosesc MQTT simplu pe portul 1883 — nu există suport TLS. Nici șablonul TapHome nu oferă
username/passwordpentru broker, așa că folosiți un broker fără autentificare într-o rețea locală sau VLAN de încredere.