TapHome

Shelly DUO

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 03. 2026

Ovaj uređaj podržava mDNS

Umjesto IP adrese uređaju možete pristupiti na adresi:

ShellyBulbDuo-{MAC}.local

Zamijenite {MAC} MAC adresom svog uređaja (velika slova, bez dvotočaka).

TapHome podržava mDNS. Naziv računala (hostname) pouzdaniji je od statične IP adrese.

Shelly DUO

Shelly DUO je Wi-Fi LED žarulja s grlom E27 koja podržava prigušivanje svjetla i podesivu temperaturu boje bijelog svjetla (CCT) u rasponu od 2700 K (toplo bijelo) do 6500 K (dnevno svjetlo). TapHome se sa žaruljom povezuje lokalno preko Wi-Fi mreže, putem HTTP REST API-ja ili MQTT-a. Veza s oblakom nije potrebna.

Dostupna su dva predloška TapHome: HTTP predložak za jednu žarulju i MQTT predložak koji preko jedne veze s MQTT brokerom podržava do 5 žarulja DUO. Oba predloška za svaku žarulju daju iste vrste uređaja: svjetlo s upravljanjem svjetlinom i temperaturom boje (CCT) te brojilo energije za praćenje snage.

Konfiguracija

HTTP predložak

HTTP predložak zahtijeva IP adresu žarulje (ili mDNS naziv hosta ShellyBulbDuo-{MAC}.local). TapHome svakih 2,5 sekunde očitava krajnju točku /status i JSON odgovor sprema u korisničku varijablu jsonStatus. Skripte pojedinih uređaja raščlanjuju spremljeni odgovor bez suvišnih HTTP poziva.

Predložak ima dva parametra uvoza:

  • IP Address: lokalna IP adresa žarulje (zadano 192.168.0.1)
  • Transition time: trajanje prijelaza svjetla u milisekundama (zadano 300 ms)
MQTT predložak

MQTT predložak zahtijeva IP adresu i port brokera te Device ID svake žarulje (oblik: ShellyBulbDuo-DEVICEID). Device ID možete pronaći u web-sučelju Shelly pod Settings > Device Info ili preko GET http://{bulb-ip}/settings u polju mqtt.id.

Predložak u jednom modulu podržava do 5 žarulja DUO. Svaka se žarulja prepoznaje po vlastitoj varijabli teme (bulb1topic do bulb5topic). Neiskorištena mjesta za žarulje mogu ostati na zadanoj vrijednosti.

Predložak ima tri parametra uvoza:

  • MQTT Broker IP: adresa brokera (zadano 192.168.0.1)
  • MQTT Broker port: port brokera (zadano 1883)
  • Transition time: trajanje prijelaza svjetla u milisekundama (zadano 300 ms)

Kod uređaja Shelly Gen1 uključivanje MQTT-a isključuje Shelly Cloud. MQTT i Shelly Cloud ne mogu raditi istodobno.

Mogućnosti uređaja

Upravljanje svjetlom

Predložak daje DUO kao uređaj vrste „Bijelo svjetlo” s dva parametra kojima se može upravljati:

  • Svjetlina: čita se iz lights[0].brightness (0–100, interno se pretvara u 0,0–1,0) i lights[0].ison; upravlja se preko /light/0?turn=on|off&brightness=N (HTTP) ili objavom JSON-a na temu light/0/set (MQTT)
  • Temperatura boje: čita se iz lights[0].temp (2700–6500 K); upravlja se preko /light/0?temp=K (HTTP) ili poljem temp u JSON poruci (MQTT)

Oba se parametra šalju zajedno u jednoj naredbi upisa. Parametar vremena prijelaza određuje trajanje postupnog prijelaza za sve promjene.

Kada se svjetlo isključi (svjetlina postavljena na 0), predložak šalje turn=off (HTTP) ili objavljuje off na temu light/0/command (MQTT).

Mehanizam zaštite od odskakivanja (debounce)

HTTP predložak ima zaštitu od odskakivanja koja sprječava zastarjela očitanja tijekom prijelaza svjetla. Nakon svake naredbe upisa predložak zanemaruje očitanja /status tijekom vremena prijelaza uvećanog za 500 ms. U tom razdoblju skripte za čitanje vraćaju zadnje poznate vrijednosti umjesto očitavanja uređaja. Tako korisničko sučelje ne prikazuje nakratko međustanja dok traje prijelaz svjetla.

MQTT predlošku zaštita od odskakivanja nije potrebna jer ažuriranja stanja prima izravno od žarulje čim se dogode.

Mjerenje snage

Ugrađeno brojilo energije čita dvije vrijednosti:

  • Trenutačna snaga: meters[0].power u vatima, pretvara se u kW (dijeli se s 1000)
  • Ukupna potrošnja: meters[0].total u vat-minutama, pretvara se u kWh (dijeli se sa 60 000)

Brojilo je samo za čitanje i automatski se osvježava pri svakom ciklusu očitavanja (HTTP) ili pri svakoj MQTT poruci.

Za praćenje snage u aplikaciji Shelly ili u web pregledniku mora biti postavljen model uređaja pod Settings > Device Model. Ako je žarulja uključena, a snaga je nula, predložak prikazuje upozorenje o tom koraku konfiguracije.

Servisna dijagnostika (HTTP predložak)

HTTP predložak daje 10 servisnih atributa:

  • Podaci o mreži: IP adresa, MAC adresa (s dvotočkama kao razdjelnicima), jačina Wi-Fi signala (dB)
  • Povezivost: oblak omogućen / spojeno na oblak, spojeno na MQTT
  • Podaci o uređaju: vrijeme uređaja, vrijeme rada (u obliku dani/sati/minute), zauzeće RAM-a
  • Firmver: dostupno ažuriranje firmvera
Servisne radnje (HTTP predložak)

Dostupne su dvije servisne radnje:

  • Omogući oblak: omogućuje ili onemogućuje vezu sa Shelly Cloudom
  • Ponovno pokretanje: ponovno pokreće uređaj
Dodatne mogućnosti

Shelly DUO daje i timer svjetla (oznaka aktivnosti i preostale sekunde), timer za automatsko isključivanje na krajnjoj točki svjetla, unutarnju temperaturu uređaja, jačinu Wi-Fi signala kao zaseban senzorski uređaj te MQTT temu LWT za stanje online/offline radi prepoznavanja stanja veze. Te se mogućnosti mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Žarulja ne odgovara (HTTP)
  1. Provjerite je li DUO spojen na Wi-Fi i ima li valjanu IP adresu
  2. Umjesto IP adrese pokušajte koristiti mDNS naziv hosta (ShellyBulbDuo-AABBCCDDEE.local): IP adresa se možda promijenila nakon obnove DHCP zakupa
  3. U pregledniku otvorite http://{bulb-ip}/shelly: ako odgovori JSON-om koji sadrži "type":"SHBDUO-1", žarulja je dostupna
  4. Provjerite jesu li centralna jedinica TapHome (CCU) i DUO u istoj mreži / VLAN-u
Očitanje snage je nula
  1. Provjerite je li u aplikaciji Shelly postavljen model uređaja (Settings > Device Model)
  2. Provjerite je li žarulja uključena: brojilo mjeri samo kada teče struja
  3. Ručno pošaljite upit /status i provjerite vraća li meters[0].power vrijednost različitu od nule
MQTT žarulja ne odgovara
  1. Provjerite je li MQTT uključen u web-sučelju Shelly (Internet & Security > Advanced — MQTT)
  2. Provjerite jesu li adresa i port brokera ispravni i u uređaju Shelly i u postavkama modula TapHome
  3. Provjerite odgovara li korisnička varijabla bulbNtopic točno Device ID-u žarulje (npr. ShellyBulbDuo-B929CC)
  4. MQTT klijentom (npr. MQTT Explorer) pretplatite se na shellies/# i provjerite objavljuje li žarulja poruke
Prijelazi svjetla nisu glatki
  1. Povećajte parametar vremena prijelaza: zadanih 300 ms može biti prekratko za velike promjene svjetline
  2. Ako koristite HTTP, provjerite da nijedan drugi sustav istodobno ne očitava žarulju: uređaji Gen1 podržavaju samo 2 istodobne veze

Uređaji Shelly Gen1 podržavaju samo 2 istodobne HTTP veze. Ako TapHome i drugi sustav (npr. Home Assistant) istodobno očitavaju isti uređaj, komunikacija može postati nepouzdana. U okruženjima s više sustava razmislite o prelasku na MQTT predložak.

Kako ga instalirati u TapHome

Preduvjeti

  • Uređaj Shelly ugrađen i uključen
  • Lokalna Wi-Fi mreža (2,4 GHz)
  • TapHome CCU u istoj mreži

Korak 1 — Spojite Shelly na Wi-Fi

Opcija A — aplikacija Shelly (preporučeno):

  1. Preuzmite aplikaciju Shelly (iOS / Android)
  2. Dodirnite + → Add Device i slijedite čarobnjak za uparivanje preko Bluetootha
  3. Kada se to zatraži, unesite podatke za prijavu na Wi-Fi

Opcija B — način rada AP (bez aplikacije):

  1. Pri prvom uključivanju uređaj stvara pristupnu točku: ShellyXXX-AABBCCDDEE
  2. Spojite telefon ili računalo na tu pristupnu točku
  3. Otvorite http://192.168.33.1 → Internet & Security → Wi-Fi Mode - Client
  4. Unesite SSID i lozinku → Save

Shelly podržava samo mreže od 2,4 GHz. Mreže od 5 GHz neće se prikazati pri skeniranju.

Korak 2 — Pronađite adresu uređaja

Uređaji Shelly Gen1 podržavaju mDNS (Zeroconf). Uređaju možete pristupiti preko naziva hosta umjesto IP adrese:

1
shelly<model>-<MAC>.local

Na primjer: shelly1pm-AABBCCDDEE.local (MAC adresa velikim slovima u heksadecimalnom zapisu, bez dvotočaka).

Preporučeno: koristite IP skener TapHome. Otvorite aplikaciju TapHome i pokrenite IP skener (Postavke → Mreža → Skeniranje). Skener pronalazi uređaje u vašoj mreži i prikazuje IP adresu i mDNS naziv hosta. Za pouzdaniju vezu koristite naziv hosta umjesto IP adrese, jer ostaje isti i kada se IP adresa uređaja promijeni nakon ponovnog pokretanja usmjerivača.

Drugi načini za pronalaženje IP adrese:

  • Aplikacija Shelly: detalji uređaja → Device info → IP adresa
  • Web-sučelje Shelly: spojite se na AP uređaja prije postavljanja Wi-Fi mreže — IP adresa prikazuje se nakon spremanja
  • DHCP tablica usmjerivača: potražite naziv hosta poput shelly1pm-AABBCCDDEE

Korak 3 — Konfiguracija u sustavu TapHome

  1. U sustavu TapHome dodajte novi modul Packet Parser (HTTP)
  2. Adresa: unesite mDNS naziv hosta (npr. shelly1pm-AABBCCDDEE.local) ili IP adresu iz koraka 2
  3. Port: 80 (zadano, nije potrebno mijenjati)
  4. Uvezite predložak — TapHome će čitati /status kako bi očitao stanje uređaja

HTTP autentifikacija na uređajima Shelly zadano je isključena. Ako ste uključili zaštitu prijavom, TapHome trenutačno ne podržava HTTP Basic Auth — za integraciju sa sustavom TapHome ostavite autentifikaciju isključenom.

Dostupni uređaji

Shelly DUO Modul
Servisni atributi
IP adresa
MAC adresa
Wi-Fi signal
Oblak omogućen
Spojeno na oblak
Spojeno na MQTT
Vrijeme uređaja
Dostupno ažuriranje firmvera
Vrijeme rada
RAM
Servisne radnje
Omogući oblak
Ponovno pokretanje
Prilagođene varijable
transitionTime (numeric) = TransitionTimeTrajanje prijelaza svjetla u milisekundama (parametar uvoza, zadano 300 ms)

Shelly DUO Module

Čitanje (modul)
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(0);
END

VAR response := SENDHTTPREQUEST("/status");

IF response.IsSuccess
    jsonStatus := response.Content;
ELSE
    jsonStatus := NULL;
END
Servisni atributi
IP Address
VAR response := SENDHTTPREQUEST("/status");

IF response.IsSuccess
    jsonStatus := response.Content;
ELSE
    jsonStatus := NULL;
END

VAR address := PARSEJSON(jsonStatus, "$.wifi_sta.ip", 1);
IF (ISNULL(address), "-", address)
MAC Address
VAR value := PARSEJSON(jsonStatus, "$.mac", 1);
IF ISNULL(value)
    RETURN("-");
END;

STRING mac;
INT i := 0;
INT len := LENGTH(value);

WHILE i < len
    mac += GETAT(value, i);
    i += 1;
    
    IF MOD(i, 2) = 0 AND i < len
        mac += ":";
    END
LOOP

mac
WIFI signal
VAR signal := PARSEJSON(jsonStatus, "$.wifi_sta.rssi", 1);
IF (ISNULL(signal), "-", signal + "db");
Cloud enabled
VAR value := PARSEJSON(jsonStatus, "$.cloud.enabled", 1);
IF (ISNULL(value), "-", value)
Cloud connected
VAR value := PARSEJSON(jsonStatus, "$.cloud.connected", 1);
IF (ISNULL(value), "-", value)
MQTT connected
VAR value := PARSEJSON(jsonStatus, "$.mqtt.connected", 1);
IF (ISNULL(value), "-", value)
Device time
VAR value := PARSEJSON(jsonStatus, "$.time", 1);
IF (ISNULL(value), "-", value)
FW update available
VAR value := PARSEJSON(jsonStatus, "$.has_update");
IF (ISNULL(value), "-", value)
Uptime
VAR value := PARSEJSON(jsonStatus, "$.uptime", 1);
IF ISNULL(value)
    RETURN("-");
END

VAR days := FLOOR(value/86400, 1);
value := MOD(value, 86400);
VAR hours := FLOOR(value/3600, 1);
value := MOD(value, 3600);
VAR minutes := FLOOR(value/60, 1);

days + "day(s) " + hours + "h " + minutes + "m"
RAM
VAR ramFree := PARSEJSON(jsonStatus, "$.ram_free", 1);
VAR ramTotal := PARSEJSON(jsonStatus, "$.ram_total", 1);

IF ISNULL(ramFree) OR ISNULL(ramTotal)
    RETURN("-");
END

ramFree + " bytes free of " + ramTotal
Servisne radnje
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");
Svjetlo Bijelo svjetlo

CCT bijelo svjetlo (2700–6500 K) — prigušivanje svjetla i upravljanje temperaturom boje

numeric Jedinica: %, K json_path

Svjetlo

Čitanje svjetline
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(Hb);
END

VAR value := PARSEJSON(jsonStatus, "$.lights[0].brightness", 1);

IF ISNULL(value)
    RETURN(NaN);
END

BOOL isOn := PARSEJSON(jsonStatus, "$.lights[0].ison", 1);

IF ISNULL(isOn)
    RETURN(NaN);
END

IF(isOn, value/100.0, 0);
Zapis svjetline
IF St > 0.5
    SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Hb*100.0));
ELSE
    SENDHTTPREQUEST("light/0?turn=off&transition=" + transitionTime);
END

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
Čitanje temperature boje
VAR now := NOW();

IF now.Ticks < debounceTimestamp
    RETURN(Ct);
END

VAR value := PARSEJSON(jsonStatus, "$.lights[0].temp", 1);

IF ISNULL(value)
    RETURN(NaN);
END
 
value
Zapis temperature boje
SENDHTTPREQUEST("light/0?transition=" + transitionTime + "&brightness=" + ROUND(Hb*100) + "&temp=" + Ct);

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
Brojilo energije Brojilo električne energije Samo za čitanje

Mjerenje potrošnje snage i energije — trenutačna snaga (kW) i ukupna energija (kWh)

numeric Jedinica: W / kWh json_path

Brojilo energije

Čitanje ukupne potrošnje
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[0].power");
VAR total := PARSEJSON(jsonStatus, "$.meters[0].total");
BOOL isOn := PARSEJSON(jsonStatus, "$.lights[0].ison");

IF ISNULL(power) OR ISNULL(total) OR (ison AND power=0)
	ADDWARNING("To enable power monitoring, open device settings in Shelly app or web browser and configure device model in Settings->Device Model");
	
    RETURN(NaN);
END

total / 60000.0
Čitanje zahtjeva
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[0].power", 1);

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
Povezivanje: Packet Parser → HTTP • Naziv računala (hostname): ShellyBulbDuo-{MAC}.local
Moguća poboljšanja (7)
  • Light Timer Active — Boolean — whether a countdown timer is currently active on the light output.
  • Timer Remaining — Seconds remaining on active timer. Available in /status response.
  • Auto-off Timer — Auto-off timer in seconds, could be added as service action or light parameter.
  • WiFi Signal Strength (as device) — WiFi RSSI in dBm. HTTP template exposes it as service attribute but not as a standalone sensor device.
  • Internal Device Temperature — Internal temperature in celsius. Available in /status for Gen1 devices. Not exposed in DUO template.
  • MQTT Real-time Power (as device attribute) — MQTT template reads power in electric meter device but does not expose it as a service attribute on the light device.
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline bulbs.

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu