TapHome

Shelly Plus RGBW PM

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:

shellyplusrgbwpm-{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 Plus RGBW PM

Shelly Plus RGBW PM je Wi-Fi RGBW LED kontroler Gen2+ s ugrađenim mjerenjem snage na svakom izlaznom kanalu. Upravlja LED trakama ili pojedinačnim LED kanalima na 12/24 V DC, s do 4 A po kanalu (ukupno 10 A). Uređaj podržava tri profila koja se mogu mijenjati: light (4 neovisna dimera), rgb (3-kanalna boja) i rgbw (3-kanalna boja + bijela). Svaki profil u sustavu TapHome daje različite uređaje. TapHome s uređajem komunicira lokalno preko Wi-Fi mreže putem RPC API-ja Gen2+, pa veza s oblakom nije potrebna.

Predložak TapHome je HTTP predložak koji očitava RPC krajnje točke uređaja. Jedan predložak pokriva sva tri profila: TapHome tijekom rada prepoznaje aktivni profil i aktivira odgovarajuće uređaje.

Konfiguracija

Parametri uvoza

Predložak zahtijeva samo IP adresu uređaja (u predlošku je unaprijed upisan primjer 192.168.0.1). TapHome se spaja na port 80 i očitava više RPC krajnjih točaka za stanje sustava i podatke uređaja.

Na razini modula TapHome svake 3 sekunde očitava /rpc/Sys.GetStatus, /rpc/Sys.GetConfig, /rpc/WiFi.GetStatus i /rpc/PlusRGBWPM.GetConfig. Odgovor Sys.GetConfig daje trenutačni profil (device.profile), koji određuje koje su krajnje točke na razini uređaja aktivne.

Odabir profila

Shelly Plus RGBW PM u jednom trenutku radi u jednom od tri profila. Profil možete promijeniti izravno iz sustava TapHome servisnom radnjom Postavi profil na modulu ili u web-sučelju Shelly.

ProfilUređaji u sustavu TapHomePrimjena
light4 neovisna dimera (O1–O4)Jednobojne LED trake, 4 zasebne zone rasvjete
rgb1 RGB svjetloRGB LED trake (3-kanalno miješanje boja)
rgbw1 RGBW svjetloRGBW LED trake (RGB + zaseban bijeli kanal)

Nakon promjene profila uređaj se ponovno pokreće, a TapHome automatski prepoznaje novi profil. Uređaji koji pripadaju neaktivnom profilu javljaju pogrešku („Profile is not set to …”). To je očekivano i može se zanemariti.

Mogućnosti uređaja

RGB svjetlo (profil = rgb)

Kada je uređaj postavljen na profil rgb, TapHome daje jedan uređaj vrste „HSB svjetlo”. Predložak iz /rpc/RGB.GetStatus?id=0 čita stanje uključeno/isključeno, svjetlinu (0–100 %) i vrijednosti RGB boja, a svjetlom upravlja upisom preko /rpc/RGB.Set?id=0.

Bojom se upravlja u modelu HSB (nijansa, zasićenost, svjetlina):

  • Nijansa (0–360 stupnjeva) i zasićenost (0,0–1,0) interno se pretvaraju između HSB i RGB
  • Svjetlina (0,0–1,0) preslikava se na raspon 0–100 % uređaja Shelly
  • Postavljanje svjetline na 0 isključuje svjetlo, a svaka svjetlina različita od nule ga uključuje

RGB svjetlo daje pet servisnih atributa:

AtributJedinicaOpis
TemperaturaCUnutarnja temperatura uređaja
Potrošnja energijeWhUkupna energija za RGB izlaz
SnagaWTrenutačna potrošnja snage
NaponVEfektivni (RMS) napon
StrujaAStruja opterećenja
RGBW svjetlo (profil = rgbw)

Kada je postavljen profil rgbw, TapHome daje jedno HSB svjetlo s dodatnim bijelim kanalom. Predložak čita /rpc/RGBW.GetStatus?id=0 i upisuje preko /rpc/RGBW.Set?id=0.

Profil RGBW dodaje bijeli kanal (0–255) kojim se upravlja preko CCT (korelirane temperature boje) s fiksnom vrijednošću 4500 K:

  • Kada je bijeli kanal aktivan (white != 0), svjetlina se izvodi iz razine bijelog kanala (linearno 0–255 preslikano na 0,0–1,0)
  • Kada bijeli kanal nije aktivan, svjetlina se uzima iz standardnog polja svjetline (0–100 %)
  • Prebacivanje u način temperature boje u sustavu TapHome aktivira bijeli kanal, a prebacivanje u način RGB ga deaktivira

RGBW svjetlo daje istih pet servisnih atributa kao RGB svjetlo (temperatura, energija, snaga, napon, struja) i čita ih iz odgovora RGBW.GetStatus.

Prigušivi LED izlazi (profil = light)

Kada je postavljen profil light, TapHome daje 4 neovisna kanala dimera (O1–O4), a svaki upravlja jednim LED izlazom. Svaki kanal čita iz /rpc/Light.GetStatus?id={0-3} i upisuje preko /rpc/Light.Set?id={0-3}.

Svjetlina se preslikava iz raspona 0,0–1,0 u sustavu TapHome na raspon 0–100 % uređaja Shelly. Postavljanje razine na 0 isključuje izlaz, a svaka razina različita od nule ga uključuje i postavlja svjetlinu.

Svaki kanal dimera daje šest servisnih atributa:

AtributJedinicaOpis
TemperaturaCUnutarnja temperatura uređaja
Potrošnja energijeWhUkupna energija za ovaj kanal
SnagaWTrenutačna potrošnja snage
NaponVEfektivni (RMS) napon
StrujaAStruja opterećenja
Oznake—Unutarnje oznake stanja

Svaki kanal dimera daje i servisnu radnju Kalibracija, koja šalje /rpc/Light.Calibrate?id={N} i kalibrira izlaz za spojeno LED trošilo.

Dijagnostika i radnje modula

Modul daje pet servisnih atributa za dijagnostiku uređaja:

AtributOpis
Wi-FiNaziv spojene bežične mreže
IP adresaIP adresa uređaja
Jačina signala (dB)Wi-Fi RSSI
MACHardverska adresa uređaja
ProfilTrenutačno aktivni profil (light, rgb ili rgbw)

Na razini modula dostupne su tri servisne radnje:

RadnjaOpis
Ažuriraj firmverPokreće OTA ažuriranje firmvera sa stabilnog kanala
Ponovno pokretanjePonovno pokreće uređaj
Postavi profilPrebacuje između profila light, rgb i rgbw (uređaj se ponovno pokreće)

Skripta modula provjerava i dostupna ažuriranja firmvera te potrebu za ponovnim pokretanjem i prikazuje upozorenja u sustavu TapHome kada otkrije jedno ili drugo.

Dodatne mogućnosti

Shelly Plus RGBW PM u svom RPC API-ju daje i stanje fizičkog ulaza, postavke noćnog načina s ograničenjima svjetline i rasporedom, trajanje prijelaza pri promjeni boje i svjetline te najmanju svjetlinu pri uključivanju. 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 (shellyplusrgbwpm-AABBCCDDEE.local): IP adresa se možda promijenila nakon obnove DHCP zakupa
  3. U pregledniku otvorite http://{device-ip}/rpc/Shelly.GetDeviceInfo: ako odgovori u formatu JSON, uređaj je dostupan
  4. Provjerite jesu li centralna jedinica TapHome (CCU) i Shelly u istoj mreži / VLAN-u
  5. Provjerite je li HTTP Digest Authentication isključena u web-sučelju Shelly: TapHome ne podržava zahtjeve s autentifikacijom
Pogreška profila na uređajima

Ako uređaj prikazuje „Profile is not set to rgb/rgbw/light”, to je očekivano. Predložak sadrži uređaje za sva tri profila, ali rade samo uređaji koji odgovaraju trenutačno aktivnom profilu. Ostali uređaji javljaju ovu pogrešku i mogu se zanemariti.

Aktivni profil možete promijeniti servisnom radnjom Postavi profil na modulu ili u web-sučelju Shelly. Uređaj se ponovno pokreće, a TapHome prepoznaje novi profil unutar jednog ciklusa očitavanja.

Boje izgledaju pogrešno u načinu RGB/RGBW
  1. Provjerite odgovara li spajanje LED trake redoslijedu izlaznih stezaljki (R, G, B, W): zamijenjene žice daju pogrešne boje
  2. Predložak interno pretvara boje između prostora boja HSB i RGB. Ako boje izgledaju izblijedjelo, provjerite vrijednost zasićenosti: niska zasićenost daje pastelne tonove
  3. U načinu RGBW bijelim kanalom i RGB kanalima upravlja se neovisno. Pri prebacivanju s bijele na boju ili obrnuto TapHome šalje odgovarajuću naredbu koja drugi način postavlja na nulu
Izlazi dimera ne odgovaraju u načinu light
  1. Provjerite je li postavljen profil light: uređaji dimera rade samo u načinu light
  2. Provjerite je li na svaki kanal spojeno LED trošilo: kanali bez trošila možda ne javljaju ispravno stanje
  3. Pokušajte na kanalu pokrenuti radnju Kalibracija: ona optimizira krivulju prigušivanja za spojeno LED trošilo
  4. Uređaji Gen2+ podržavaju do 6 istodobnih HTTP veza: izbjegavajte istodobno očitavanje iz više sustava
Očitanje snage je nula
  1. Provjerite je li LED trošilo spojeno i je li kanal uključen
  2. Ručno očitajte odgovarajuću krajnju točku (/rpc/Light.GetStatus?id=0, /rpc/RGB.GetStatus?id=0 ili /rpc/RGBW.GetStatus?id=0) i provjerite vraća li apower vrijednost različitu od nule
  3. LED trošila vrlo male snage mogu zbog razlučivosti mjerenja javljati 0 W: to je normalno za male signalne LED diode

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 Plus RGBW PM Modul
Servisni atributi
Wi-Fi
IP adresa
Jačina signala
MAC
Profil
Servisne radnje
Ažuriraj firmver
Ponovno pokretanje
Postavi profil
Prilagođene varijable

Shelly Plus RGBW PM

Čitanje (modul)
VAR response := SENDHTTPREQUEST("/rpc/Sys.GetStatus");
IF response.IsSuccess
    Sys.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Sys.GetConfig");
IF response.IsSuccess
    Sys.GetConfig := response.Content;
END

response := SENDHTTPREQUEST("/rpc/WiFi.GetStatus");
IF response.IsSuccess
    WiFi.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/PlusRGBWPM.GetConfig");
IF response.IsSuccess
    PlusRGBWPM.GetConfig := response.Content;
END

if ! ISNULL(parsejson(Sys.GetStatus, "available_updates.stable", true))
    addwarning("New firmware update is available");
end

if parsejson(Sys.GetStatus, "restart_required", true)
    addwarning("Restart required");
end
Servisni atributi
Wifi
PARSEJSON(WiFi.GetStatus, "ssid")
${ipAddress}
PARSEJSON(WiFi.GetStatus, "sta_ip")
${xml_signal_strength} [dB]
PARSEJSON(WiFi.GetStatus, "rssi")
MAC
PARSEJSON(Sys.GetStatus, "mac")
Profile
PARSEJSON(Sys.GetConfig, "$.device.profile");
Servisne radnje
${xml_update_fw}
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Update?stage=\"stable\"");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END

${restart}
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Reboot");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Set Profile
Parametri: Profile
VAR response := SENDHTTPREQUEST("/rpc/Shelly.SetProfile?name=\"" + 
switch(prof,
0, "light",
1, "rgb",
2, "rgbw",
"")
+ "\"");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
RGB svjetlo HSB svjetlo

HSB svjetlo u boji (profil rgb) s upravljanjem svjetlinom, nijansom i zasićenošću te mjerenjem snage po kanalu

HSB
Servisni atributi
Temperatura
Potrošnja energije
Snaga
Napon
Struja

RGB svjetlo

Čitanje (modul)
if PARSEJSON(Sys.GetConfig, "$.device.profile") != "rgb"
	adderror("Profile is not set to rgb (" + PARSEJSON(Sys.GetConfig, "$.device.profile") + ")");
end

VAR response := SENDHTTPREQUEST("/rpc/RGB.GetStatus?id=" + ID);
IF response.IsSuccess
    RGB.GetStatus := response.Content;
	R := PARSEJSON(RGB.GetStatus, "$.rgb[0]", true);
	G := PARSEJSON(RGB.GetStatus, "$.rgb[1]", true);
	B := PARSEJSON(RGB.GetStatus, "$.rgb[2]", true);    
END

response := SENDHTTPREQUEST("/rpc/RGB.GetConfig?id=" + ID);
IF response.IsSuccess
    RGB.GetConfig := response.Content;
END

if ! ISNULL(parsejson(RGB.GetStatus, "errors", true))
    adderror("Error: " + parsejson(RGB.GetStatus, "errors"));
end
Čitanje svjetline
bool output := PARSEJSON(RGB.GetStatus, "$.output", true);
var brightness := PARSEJSON(RGB.GetStatus, "$.brightness", true);

if output
    return(brightness / 100);
else
    return(0);
end
Zapis svjetline
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Hb*100.0));
Čitanje nijanse
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Hue);
Zapis nijanse
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čitanje zasićenosti
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zapis zasićenosti
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Servisni atributi
${device_variable_realtemperature} [°C]
parsejson(RGB.GetStatus, "$.temperature.tC", true)
${device_variable_electricityconsumption} [Wh]
parsejson(RGB.GetStatus, "$.aenergy.total", true)
${device_variable_electricitydemand} [W]
parsejson(RGB.GetStatus, "$.apower", true)
${valueLogType_ElectricVoltage} [V]
parsejson(RGB.GetStatus, "$.voltage", true)
${valueLogType_ElectricCurrent} [A]
parsejson(RGB.GetStatus, "$.current", true)
RGBW svjetlo HSB svjetlo

HSB svjetlo u boji s dodatnim bijelim kanalom (profil rgbw, CCT pri 4500 K) i mjerenjem snage po kanalu

HSB
Servisni atributi
Temperatura
Potrošnja energije
Snaga
Napon
Struja

RGBW svjetlo

Čitanje (modul)
if PARSEJSON(Sys.GetConfig, "$.device.profile") != "rgbw"
	adderror("Profile is not set to rgbw (" + PARSEJSON(Sys.GetConfig, "$.device.profile") + ")");
end

VAR response := SENDHTTPREQUEST("/rpc/RGBW.GetStatus?id=" + ID);
IF response.IsSuccess
    RGBW.GetStatus := response.Content;
	R := PARSEJSON(RGBW.GetStatus, "$.rgb[0]", true);
	G := PARSEJSON(RGBW.GetStatus, "$.rgb[1]", true);
	B := PARSEJSON(RGBW.GetStatus, "$.rgb[2]", true);    
END

response := SENDHTTPREQUEST("/rpc/RGBW.GetConfig?id=" + ID);
IF response.IsSuccess
    RGBW.GetConfig := response.Content;
END

if ! ISNULL(parsejson(RGBW.GetStatus, "errors", true))
    adderror("Error: " + parsejson(RGBW.GetStatus, "errors"));
end
Čitanje svjetline
bool output := PARSEJSON(RGBW.GetStatus, "$.output", true);
var brightness := PARSEJSON(RGBW.GetStatus, "$.brightness", true);
var white := PARSEJSON(RGBW.GetStatus, "$.white", true);

if output
	if white != 0
		return(linear(white, 0, 0, 255, 1));
	else
    	return(brightness / 100);
    end
else
    return(0);
end
Zapis svjetline
if isnan(Ct)
	SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&white=0&brightness=" + round(Hb*100.0));
else
	SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=0&white=" + round(linear(Hb, 0, 0, 1, 255)));
end
Čitanje nijanse
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Hue);
Zapis nijanse
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čitanje zasićenosti
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zapis zasićenosti
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čitanje temperature boje
var white := PARSEJSON(RGBW.GetStatus, "$.white", true);
if white != 0 or !isnan(Ct)
	return(4500);
else
	return(NaN);
end
Zapis temperature boje
IF !isnan(Ct)
	SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=0&white=" + round(linear(Hb, 0, 0, 1, 255)));
end
Servisni atributi
${device_variable_realtemperature} [°C]
parsejson(RGBW.GetStatus, "$.temperature.tC", true)
${device_variable_electricityconsumption} [Wh]
parsejson(RGBW.GetStatus, "$.aenergy.total", true)
${device_variable_electricitydemand} [W]
parsejson(RGBW.GetStatus, "$.apower", true)
${valueLogType_ElectricVoltage} [V]
parsejson(RGBW.GetStatus, "$.voltage", true)
${valueLogType_ElectricCurrent} [A]
parsejson(RGBW.GetStatus, "$.current", true)
Prigušivi LED izlaz 2 Dimer

Neovisni kanal dimera 2 (profil light, id=1) s upravljanjem svjetlinom, kalibracijom i mjerenjem snage po kanalu

numeric
Servisni atributi
Temperatura
Potrošnja energije
Snaga
Napon
Struja
Oznake
Servisne radnje
Kalibracija

Prigušivi LED izlaz 2

Čitanje (modul)
if PARSEJSON(Sys.GetConfig, "$.device.profile") != "light"
	adderror("Profile is not set to light (" + PARSEJSON(Sys.GetConfig, "$.device.profile") + ")");
end

VAR response := SENDHTTPREQUEST("/rpc/Light.GetStatus?id=" + ID);
IF response.IsSuccess
    Light.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Light.GetConfig?id=" + ID);
IF response.IsSuccess
    Light.GetConfig := response.Content;
END

if ! ISNULL(parsejson(Light.GetStatus, "errors", true))
    adderror("Error: " + parsejson(Light.GetStatus, "errors"));
end
Čitanje razine
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zapis razine
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisni atributi
${device_variable_realtemperature} [°C]
parsejson(Light.GetStatus, "$.temperature.tC", true)
${device_variable_electricityconsumption} [Wh]
parsejson(Light.GetStatus, "$.aenergy.total", true)
${device_variable_electricitydemand} [W]
parsejson(Light.GetStatus, "$.apower", true)
${valueLogType_ElectricVoltage} [V]
parsejson(Light.GetStatus, "$.voltage", true)
${valueLogType_ElectricCurrent} [A]
parsejson(Light.GetStatus, "$.current", true)
Flags
parsejson(Light.GetStatus, "$.flags", true)
Servisne radnje
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Prigušivi LED izlaz 1 Dimer

Neovisni kanal dimera 1 (profil light, id=0) s upravljanjem svjetlinom, kalibracijom i mjerenjem snage po kanalu

numeric
Servisni atributi
Temperatura
Potrošnja energije
Snaga
Napon
Struja
Oznake
Servisne radnje
Kalibracija

Prigušivi LED izlaz 1

Čitanje (modul)
if PARSEJSON(Sys.GetConfig, "$.device.profile") != "light"
	adderror("Profile is not set to light (" + PARSEJSON(Sys.GetConfig, "$.device.profile") + ")");
end

VAR response := SENDHTTPREQUEST("/rpc/Light.GetStatus?id=" + ID);
IF response.IsSuccess
    Light.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Light.GetConfig?id=" + ID);
IF response.IsSuccess
    Light.GetConfig := response.Content;
END

if ! ISNULL(parsejson(Light.GetStatus, "errors", true))
    adderror("Error: " + parsejson(Light.GetStatus, "errors"));
end
Čitanje razine
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zapis razine
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisni atributi
${device_variable_realtemperature} [°C]
parsejson(Light.GetStatus, "$.temperature.tC", true)
${device_variable_electricityconsumption} [Wh]
parsejson(Light.GetStatus, "$.aenergy.total", true)
${device_variable_electricitydemand} [W]
parsejson(Light.GetStatus, "$.apower", true)
${valueLogType_ElectricVoltage} [V]
parsejson(Light.GetStatus, "$.voltage", true)
${valueLogType_ElectricCurrent} [A]
parsejson(Light.GetStatus, "$.current", true)
Flags
parsejson(Light.GetStatus, "$.flags", true)
Servisne radnje
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Prigušivi LED izlaz 3 Dimer

Neovisni kanal dimera 3 (profil light, id=2) s upravljanjem svjetlinom, kalibracijom i mjerenjem snage po kanalu

numeric
Servisni atributi
Temperatura
Potrošnja energije
Snaga
Napon
Struja
Oznake
Servisne radnje
Kalibracija

Prigušivi LED izlaz 3

Čitanje (modul)
if PARSEJSON(Sys.GetConfig, "$.device.profile") != "light"
	adderror("Profile is not set to light (" + PARSEJSON(Sys.GetConfig, "$.device.profile") + ")");
end

VAR response := SENDHTTPREQUEST("/rpc/Light.GetStatus?id=" + ID);
IF response.IsSuccess
    Light.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Light.GetConfig?id=" + ID);
IF response.IsSuccess
    Light.GetConfig := response.Content;
END

if ! ISNULL(parsejson(Light.GetStatus, "errors", true))
    adderror("Error: " + parsejson(Light.GetStatus, "errors"));
end
Čitanje razine
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zapis razine
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisni atributi
${device_variable_realtemperature} [°C]
parsejson(Light.GetStatus, "$.temperature.tC", true)
${device_variable_electricityconsumption} [Wh]
parsejson(Light.GetStatus, "$.aenergy.total", true)
${device_variable_electricitydemand} [W]
parsejson(Light.GetStatus, "$.apower", true)
${valueLogType_ElectricVoltage} [V]
parsejson(Light.GetStatus, "$.voltage", true)
${valueLogType_ElectricCurrent} [A]
parsejson(Light.GetStatus, "$.current", true)
Flags
parsejson(Light.GetStatus, "$.flags", true)
Servisne radnje
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Prigušivi LED izlaz 4 Dimer

Neovisni kanal dimera 4 (profil light, id=3) s upravljanjem svjetlinom, kalibracijom i mjerenjem snage po kanalu

numeric
Servisni atributi
Temperatura
Potrošnja energije
Snaga
Napon
Struja
Oznake
Servisne radnje
Kalibracija

Prigušivi LED izlaz 4

Čitanje (modul)
if PARSEJSON(Sys.GetConfig, "$.device.profile") != "light"
	adderror("Profile is not set to light (" + PARSEJSON(Sys.GetConfig, "$.device.profile") + ")");
end

VAR response := SENDHTTPREQUEST("/rpc/Light.GetStatus?id=" + ID);
IF response.IsSuccess
    Light.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Light.GetConfig?id=" + ID);
IF response.IsSuccess
    Light.GetConfig := response.Content;
END

if ! ISNULL(parsejson(Light.GetStatus, "errors", true))
    adderror("Error: " + parsejson(Light.GetStatus, "errors"));
end
Čitanje razine
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zapis razine
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisni atributi
${device_variable_realtemperature} [°C]
parsejson(Light.GetStatus, "$.temperature.tC", true)
${device_variable_electricityconsumption} [Wh]
parsejson(Light.GetStatus, "$.aenergy.total", true)
${device_variable_electricitydemand} [W]
parsejson(Light.GetStatus, "$.apower", true)
${valueLogType_ElectricVoltage} [V]
parsejson(Light.GetStatus, "$.voltage", true)
${valueLogType_ElectricCurrent} [A]
parsejson(Light.GetStatus, "$.current", true)
Flags
parsejson(Light.GetStatus, "$.flags", true)
Servisne radnje
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Povezivanje: Packet Parser → HTTP • Naziv računala (hostname): shellyplusrgbwpm-{MAC}.local
Moguća poboljšanja (13)
  • Input State — Physical switch/button input state, available via /rpc/Input.GetStatus?id=0
  • WiFi SSID — Already exposed as module-level service attribute, not as standalone device
  • WiFi Signal Strength — Already exposed as module-level service attribute, not as standalone device
  • IP Address — Already exposed as module-level service attribute, not as standalone device
  • MAC Address — Already exposed as module-level service attribute, not as standalone device
  • Uptime — Seconds since last reboot, available in Sys.GetStatus response
  • RAM Usage — Total and free RAM in bytes, available in Sys.GetStatus response
  • Device Time — Current device time in HH:MM format, available in Sys.GetStatus response
  • Firmware Update — Already implemented as module-level service action
  • Reboot — Already implemented as module-level service action
  • Night Mode — Night mode configuration with brightness limits and schedule, available in component GetConfig
  • Transition Duration — Color/brightness transition time in ms, available as parameter in RGB.Set and RGBW.Set
  • Minimum Brightness on Toggle — Minimum brightness percentage when toggling on, available in Light component config

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