TapHome

Shelly DUO RGBW

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

Ovaj uređaj podržava mDNS

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

shellycolorbulb-{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 RGBW

Shelly DUO RGBW je pametna Wi-Fi LED žarulja Gen1 u izvedbi GU10. Podržava pune RGB boje i podesivo bijelo svjetlo (CCT 3000–6500 K) s postupnim prijelazima. TapHome s uređajem komunicira preko lokalne mreže, pa veza s oblakom nije potrebna.

Dostupna su dva predloška TapHome: HTTP predložak za upravljanje jednom žaruljom preko REST API-ja i MQTT predložak koji preko zajedničkog MQTT brokera podržava do 5 žarulja. Oba predloška daju potpuno upravljanje svjetlom i mjerenje snage.

Konfiguracija

HTTP predložak

HTTP predložak zahtijeva IP adresu žarulje (u predlošku je unaprijed upisan primjer 192.168.0.1) i neobavezno vrijeme prijelaza u milisekundama (zadano 300 ms). TapHome svakih 2,5 sekunde očitava krajnju točku /status i čita stanje svjetla, vrijednosti boja i podatke o mjerenju energije.

Skripta za čitanje na razini modula sprema odgovor /status u korisničku varijablu jsonStatus, pa skripte pojedinih uređaja mogu raščlaniti podatke bez suvišnih HTTP poziva.

MQTT predložak

MQTT predložak zahtijeva podatke za vezu s brokerom i jedan ili više Device ID-eva, po jedan za svaku žarulju. Device ID svake žarulje postavlja se u korisničkoj varijabli bulbNtopic (oblik: shellycolorbulb-DEVICEID). Device ID možete pronaći u web-sučelju Shelly pod Settings > Device Info.

Predložak podržava do 5 žarulja istodobno. Konfigurirajte samo varijable bulbNtopic za žarulje koje stvarno imate, a neiskorištena mjesta mogu ostati na zadanim vrijednostima.

Nakon uključivanja MQTT-a na žarulji Shelly DUO RGBW (Internet & Security > Advanced — MQTT) TapHome se pretplaćuje na shellies/# i poruke prema prefiksu teme usmjerava odgovarajućoj žarulji.

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

Žarulja radi u dva načina koji se međusobno isključuju:

  • Način boje: puno RGB upravljanje preko crvenog, zelenog i plavog kanala (svaki 0–255) i pojačanja (gain, svjetlina 0–100 %). TapHome to prikazuje kao HSB svjetlo: nijansa (0–360), zasićenost (0,0–1,0) i svjetlina (0,0–1,0) pretvaraju se iz RGB-a funkcijom RGBTOHSV.
  • Bijeli način: podesivo bijelo svjetlo preko temperature boje (3000–6500 K) i svjetline (0–100 %). Postavljanje temperature boje u sustavu TapHome automatski prebacuje žarulju u bijeli način.

Način se mijenja automatski, ovisno o svojstvu koje postavite:

  • Postavljanje nijanse ili zasićenosti šalje naredbu /light/0?mode=color (HTTP) ili JSON poruku color/0/set s "mode":"color" (MQTT)
  • Postavljanje temperature boje šalje naredbu /light/0?mode=white (HTTP) ili poruku s "mode":"white" (MQTT)

Sve naredbe upisa sadrže postavljeni parametar transitionTime za postupan prijelaz između stanja. Mehanizam zaštite od odskakivanja (debounce) sprječava zastarjela očitanja tijekom prijelaza: predložak nakon svakog upisa kratko vrijeme zanemaruje odgovore /status.

U MQTT predlošku razdoblje zaštite od odskakivanja nakon svakog upisa traje vrijeme prijelaza plus 3 sekunde (dulje nego u HTTP predlošku) zbog kašnjenja u isporuci MQTT poruka.

Mjerenje snage

Oba predloška daju brojilo energije koje čita dvije vrijednosti:

  • Trenutačna snaga: javlja se u vatima, pretvara se u kW dijeljenjem s 1000
  • Ukupna potrošnja: javlja se u vat-minutama, pretvara se u kWh dijeljenjem sa 60 000

HTTP predložak čita meters[0].power i meters[0].total iz odgovora /status. MQTT predložak za svaku žarulju zasebno prati teme shellies/{id}/light/0/power i shellies/{id}/light/0/energy.

Za mjerenje snage u aplikaciji ili web-sučelju Shelly mora biti postavljen model uređaja pod Settings > Device Model. Ako model nije postavljen, a žarulja je uključena i snaga je nula, predložak prikazuje upozorenje.

Servisna dijagnostika (samo HTTP)

HTTP predložak daje 10 servisnih atributa za praćenje uređaja:

  • Podaci o mreži: IP adresa, MAC adresa, jačina Wi-Fi signala (dBm)
  • Povezivost: oblak omogućen / spojeno na oblak, spojeno na MQTT
  • Sustav: vrijeme uređaja, dostupno ažuriranje firmvera, vrijeme rada, zauzeće RAM-a
Servisne radnje (samo HTTP)

U HTTP predlošku 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 RGBW podržava i svjetlosne efekte (kiša meteora, postupna promjena, disanje, bljeskanje, postupno uključivanje i isključivanje, izmjena crvene i zelene), zaseban kanal bijele LED diode u načinu boje i stanje MQTT veze (LWT). Te se mogućnosti mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Žarulja ne odgovara (HTTP)
  1. Provjerite je li žarulja spojena na Wi-Fi i ima li valjanu IP adresu
  2. Umjesto IP adrese pokušajte koristiti mDNS naziv hosta (shellycolorbulb-AABBCCDDEE.local): IP adresa se možda promijenila nakon obnove DHCP zakupa
  3. U pregledniku otvorite http://{device-ip}/shelly: ako odgovori, uređaj je dostupan
  4. Provjerite jesu li centralna jedinica TapHome (CCU) i žarulja u istoj mreži / VLAN-u
Boje izgledaju pogrešno
  1. Provjerite je li žarulja u ispravnom načinu: RGB boje rade samo u načinu boje, a ne u bijelom načinu
  2. Kada boju postavljate iz sustava TapHome, zasićenost mora biti veća od nule: zasićenost 0 daje bijelo svjetlo bez obzira na nijansu
  3. Provjerite da pojačanje (gain, svjetlina u načinu boje) nije postavljeno na nulu
Očitanje snage je nula
  1. Provjerite je li u aplikaciji ili web-sučelju Shelly postavljen model uređaja (Settings > Device Model)
  2. Provjerite je li žarulja uključena: brojilo mjeri samo kada žarulja troši energiju
  3. Ručno pošaljite upit /status i provjerite vraća li meters[0].power vrijednost različitu od nule
MQTT žarulje ne odgovaraju
  1. Provjerite je li MQTT uključen u web-sučelju svake žarulje (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 svaka korisnička varijabla bulbNtopic točno Device ID-u žarulje (npr. shellycolorbulb-B929CC)
  4. MQTT klijentom (npr. MQTT Explorer) pretplatite se na shellies/# i provjerite objavljuje li svaka žarulja poruke

Uređaji Shelly Gen1 podržavaju samo 2 istodobne HTTP veze. Ako TapHome i drugi sustav (npr. Home Assistant) istodobno očitavaju istu žarulju, 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 RGBW 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) = TransitionTimeLight transition duration in milliseconds (import parameter, default 300 ms)

Shelly DUO RGBW 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");
RGBW svjetlo HSB svjetlo

Pune RGB boje + podesivo bijelo svjetlo (CCT 3000–6500 K) s postupnim prijelazima i upravljanjem svjetlinom ovisno o načinu

HSB

RGBW svjetlo

Čitanje svjetline
VAR now := NOW();

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

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

IF mode = "white"
    value := PARSEJSON(jsonStatus, "$.lights[0].brightness", 1);
ELSE
    value := PARSEJSON(jsonStatus, "$.lights[0].gain", 1);
END

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
    VAR mode := PARSEJSON(jsonStatus, "$.lights[0].mode", 1);
    
    IF mode = "white"
        SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Hb*100.0));
    ELSE
        SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&gain=" + ROUND(Hb*100.0));
    END
ELSE
    SENDHTTPREQUEST("light/0?turn=off&transition=" + transitionTime);
END

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

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

INT r := PARSEJSON(jsonStatus, "$.lights[0].red", 1);
INT g := PARSEJSON(jsonStatus, "$.lights[0].green", 1);
INT b := PARSEJSON(jsonStatus, "$.lights[0].blue", 1);
 
VAR HSVColor := RGBTOHSV(r, g, b);
ROUND(HSVColor.Hue);
Zapis nijanse
IF !ISNAN(Ct)
    RETURN(0);
END

VAR color := HSVTORGB(Hd, Sa, 1);

SENDHTTPREQUEST("light/0?mode=color&transition=" + transitionTime + "&gain=" + ROUND(Hb*100) + "&red=" + color.RED + "&green=" + color.GREEN + "&blue=" + color.BLUE);


VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
Čitanje zasićenosti
VAR now := NOW();

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

INT r := PARSEJSON(jsonStatus, "$.lights[0].red", 1);
INT g := PARSEJSON(jsonStatus, "$.lights[0].green", 1);
INT b := PARSEJSON(jsonStatus, "$.lights[0].blue", 1);
 
VAR HSVColor := RGBTOHSV(r, g, b);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zapis zasićenosti
IF !ISNAN(Ct)
    RETURN(0);
END

VAR color := HSVTORGB(Hd, Sa, 1);

SENDHTTPREQUEST("light/0?mode=color&transition=" + transitionTime + "&gain=" + ROUND(Hb*100) + "&red=" + color.RED + "&green=" + color.GREEN + "&blue=" + color.BLUE);


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

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

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

IF ISNULL(value) OR mode != "white"
    RETURN(NaN);
END
 
value
Zapis temperature boje
IF Ct = NaN
    RETURN(0);
END

VAR temp := MIN(Ct, 6500);
temp := MAX(temp, 3000);

SENDHTTPREQUEST("light/0?mode=white&transition=" + transitionTime + "&brightness=" + ROUND(Hb*100) + "&temp=" + temp);

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

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): shellycolorbulb-{MAC}.local
Moguća poboljšanja (4)
  • Light Effect — Effect index (0=Off, 1=Meteor Shower, 2=Gradual Change, 3=Breath, 4=Flash, 5=On/Off Gradual, 6=Red/Green Change). Available in both /light/0 and MQTT color/0/set.
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response (HTTP only; MQTT template reads it as service attribute already)
  • White Channel — Dedicated white LED channel (0–255) in color mode, separate from CCT. Available in /light/0?white=N.
  • Connection Status (MQTT) — 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