TapHome

Shelly RGBW2

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:

shellyrgbw2-{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 RGBW2

Shelly RGBW2 je Wi-Fi kontroler RGBW LED traka s četiri PWM izlaza (12/24 V DC). Podržava dva načina rada koji se međusobno isključuju, Color i White, a svaki zahtijeva vlastiti predložak TapHome. TapHome s uređajem komunicira preko HTTP-a u lokalnoj mreži, pa veza s oblakom nije potrebna.

U načinu Color četiri izlaza upravljaju RGBW LED trakom kao jednim svjetlom u boji s nijansom, zasićenošću, svjetlinom i neobaveznim bijelim (CCT) kanalom. U načinu White četiri izlaza rade kao neovisni dimeri, a svaki upravlja zasebnom bijelom LED trakom ili zonom.

Način rada morate odabrati u web-sučelju Shelly (ili preko API-ja) prije uvoza odgovarajućeg predloška. Svaki predložak pri svakom očitavanju provjerava trenutačni način rada i prikazuje pogrešku ako je uređaj postavljen na pogrešan način.

Konfiguracija

Oba se predloška spajaju preko Wi-Fi mreže. Pri uvozu predloška u TapHome unesite IP adresu uređaja (u predlošku je unaprijed upisan primjer 192.168.0.1) i neobavezno vrijeme prijelaza u milisekundama (zadano 300).

Parametar vremena prijelaza određuje koliko brzo svjetlo postupno prelazi između razina svjetline. Primjenjuje se na sve naredbe upisa (uključivanje/isključivanje, svjetlina, promjene boje) i utječe na razdoblje zaštite od odskakivanja (debounce): predložak nakon svakog upisa zanemaruje očitane vrijednosti tijekom transitionTime + 500 ms kako bi spriječio zastarjela očitanja tijekom prijelaza.

Predložak za način Color

Svjetlo u boji

Predložak RGBW traku prikazuje kao jedno HSB svjetlo u boji s dva podnačina:

  • RGB boja: nijansa i zasićenost određuju boju trake. Predložak pretvara RGB vrijednosti iz API-ja Shelly (crvena, zelena, plava 0–255) u model HSB sustava TapHome i obrnuto. Svjetlinom se upravlja parametrom gain (0–100).
  • Bijela (CCT): kada se postavi korelirana temperatura boje, predložak prelazi na upravljanje bijelim kanalom. Raspon CCT je 3000–6500 K. Svjetlinom se upravlja parametrom white (0–100).

Stanje svjetla čita se iz odgovora /status (lights[0]), a svjetlom se upravlja preko krajnje točke /light/0. Uključivanje šalje turn=on s trenutačnim vrijednostima boje ili bijelog kanala, a isključivanje šalje turn=off. Sve naredbe upisa sadrže parametar vremena prijelaza.

Mjerenje snage (Color)

Predložak Color sadrži jedno brojilo energije koje čita iz meters[0]:

  • Trenutačna snaga: meters[0].power u vatima, pretvara se u kW
  • Ukupna potrošnja: meters[0].total u vat-minutama, pretvara se u kWh

Ako je svjetlo uključeno, a snaga je nula, predložak prikazuje upozorenje s prijedlogom da se u postavkama aplikacije Shelly postavi model uređaja.

Predložak za način White

Četiri neovisna dimera

Predložak White daje četiri neovisna kanala dimera, po jedan za svaki PWM izlaz:

KanalIzlazKrajnja točkaInterval očitavanja
Ch1R (crvena)/light/02,5 s
Ch2G (zelena)/light/12,5 s
Ch3B (plava)/light/22,5 s
Ch4W (bijela)/light/32,5 s

Svaki dimer čita lights[N].ison i lights[N].brightness (0–100, normalizirano na 0–1) iz odgovora /status. Naredbe upisa koriste /light/N?turn=on|off&brightness=VALUE. Svi kanali koriste isto vrijeme prijelaza i istu logiku zaštite od odskakivanja.

Mjerenje snage (White)

Svaki kanal ima vlastito brojilo energije koje čita iz meters[0] do meters[3]. Prvi kanal očitava se svake 2,5 sekunde, a kanali 2–4 u intervalima od 15 sekundi. Svako brojilo daje trenutačnu snagu (W u kW) i ukupnu energiju (vat-minute u kWh).

Servisna dijagnostika

Oba predloška daju 10 servisnih atributa za praćenje uređaja:

  • Mreža: IP adresa, MAC adresa (s dvotočkama), 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 dana/sati/minuta), zauzeće RAM-a
  • Firmver: dostupno ažuriranje firmvera

Servisne radnje

Oba predloška imaju tri zajedničke servisne radnje:

  • Omogući oblak: omogućuje ili onemogućuje vezu sa Shelly Cloudom
  • Ponovno pokretanje: ponovno pokreće uređaj
  • Postavi način: predložak Color sadrži „Postavi način Color” (/settings?mode=color), a predložak White „Postavi način White” (/settings?mode=white). Te radnje preko API-ja mijenjaju način rada uređaja.
Dodatne mogućnosti

Shelly RGBW2 u svom API-ju daje i svjetlosne efekte (način Color, indeks efekta 0–3), stanje fizičkog ulaza, unutarnju temperaturu, oznaku pregrijavanja i postavke zaštite od prekoračenja snage. Te se mogućnosti mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Uređaj ne odgovara
  1. Provjerite je li Shelly spojen na Wi-Fi i ima li valjanu IP adresu
  2. Umjesto IP adrese pokušajte koristiti mDNS naziv hosta (shellyrgbw2-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 Shelly u istoj mreži / VLAN-u
Pogreška „Mode White/Color is not supported”

Ova pogreška znači da je uređaj postavljen na način rada koji ne odgovara uvezenom predlošku. Rješenje:

  1. Otvorite web-sučelje Shelly na http://{device-ip}
  2. Prebacite način rada tako da odgovara predlošku (Color ili White)
  3. Druga mogućnost: servisnom radnjom „Postavi način Color” ili „Postavi način White” iz drugog predloška promijenite način preko API-ja, a zatim ponovno uvezite ispravan predložak
Očitanje snage je nula
  1. Provjerite jesu li LED diode spojene na izlaze uređaja Shelly RGBW2
  2. Otvorite aplikaciju ili web-sučelje Shelly i provjerite je li model uređaja postavljen pod Settings -> Device Model
  3. Provjerite je li svjetlo uključeno: brojilo mjeri samo kada kroz izlaze teče struja
  4. Ručno pošaljite upit /status i provjerite vraća li meters[0].power vrijednost različitu od nule
Svjetlo u boji se ne mijenja
  1. Provjerite je li uređaj u načinu Color (u odgovoru /status polje mode treba biti "color")
  2. Prije promjene nijanse ili zasićenosti provjerite je li svjetlo uključeno
  3. Ako su i gain i white različiti od nule, predložak ih automatski vraća na nulu i isključuje svjetlo: tako se sprječava nedefinirano ponašanje u kojem se RGB i bijeli kanali međusobno nadmeću

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. Ako uređaj očitava i drugi sustav, produljite intervale očitavanja u predlošku (zadano 2,5 s za svjetlosne kanale) kako biste smanjili sukobe pri istodobnom uspostavljanju veza.

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 RGBW2 Color 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
Postavi način Color
Prilagođene varijable
transitionTime (numeric) = TransitionTimeTrajanje prijelaza svjetla u milisekundama (parametar uvoza, zadano 300 ms)

Shelly RGBW2 Color

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

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

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

IF response.IsSuccess
    jsonStatus := response.Content;
    
    if PARSEJSON(jsonStatus, "$.mode", 1) = "white"
    adderror("Mode White is not supported");
    end
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");
Set mode Color
VAR response := SENDHTTPREQUEST("/settings?mode=color");
IF(response.isSuccess, "Color mode is set", "Error");
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
Svjetlo u boji HSB svjetlo

RGBW svjetlo u boji s HSB upravljanjem — nijansa, zasićenost, svjetlina i neobavezni CCT bijeli kanal (3000–6500 K)

hsb

Svjetlo u boji

Čitanje (modul)
if PARSEJSON(jsonStatus, "$.lights[0].white", 1) > 0 and PARSEJSON(jsonStatus, "$.lights[0].gain", 1)
    SENDHTTPREQUEST("light/0?gain=0&white=0");
    SENDHTTPREQUEST("light/0?turn=off");
end
Čitanje svjetline
VAR now := NOW();

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

INT value;
IF !ISNAN(Ct)
    value := PARSEJSON(jsonStatus, "$.lights[0].white", 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
    IF !ISNAN(Ct)
    SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&gain=0&white=" + ROUND(Hb*100.0));
    ELSE
    SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&white=0&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 + "&white=0");


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 + "&white=0");


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);
IF PARSEJSON(jsonStatus, "$.lights[0].white", 1) = 0
    RETURN(NaN);
END
 
Ct
Zapis temperature boje
IF Ct = NaN
    RETURN(0);
END

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

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

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
Povezivanje: Packet Parser → HTTP • Naziv računala (hostname): shellyrgbw2-{MAC}.local
Moguća poboljšanja (7)
  • Light effect — Color mode: effect index (0=off, 1–3=predefined effects), settable via /light/0?effect=N
  • Input State — Physical input state (0/1), available in /status response
  • WiFi RSSI (numeric) — WiFi RSSI in dBm as numeric value — template reads it as string with 'db' suffix
  • Power protection — Max power setting in Watts, available in /settings; read + write possible via /settings?max_power=N
  • OTA firmware update — Trigger OTA firmware update via /ota?update=true
  • Internal device temperature — Internal temperature in C, available in /status response (Gen1 devices)
  • Overheated — Overtemperature flag, boolean, available in /status response

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