TapHome

Shelly Plus RGBW PM

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 03. 2026
Shelly Plus RGBW PM

Shelly Plus RGBW PM je Gen2+ Wi-Fi RGBW LED ovládač so vstavaným meraním spotreby na každom výstupnom kanáli. Poháňa LED pásy alebo jednotlivé LED kanály pri 12/24 VDC s maximálne 4 x 4,5 A na kanál (celkovo 18 A). Zariadenie podporuje tri prepínateľné profily — light (4 nezávislé stmievače), rgb (3-kanálová farba) a rgbw (3-kanálová farba + biela) — pričom každý exponuje rôzne zariadenia v TapHome. TapHome komunikuje so zariadením lokálne cez Wi-Fi pomocou Gen2+ RPC API — cloudové pripojenie nie je potrebné.

TapHome šablóna je HTTP šablóna, ktorá dotazuje RPC endpointy zariadenia. Jedna šablóna obsluhuje všetky tri profily; TapHome detekuje aktívny profil za behu a aktivuje príslušné zariadenia.

Konfigurácia

Importné parametre

Šablóna vyžaduje len IP adresu zariadenia (predvolený placeholder 192.168.0.1). TapHome sa pripája na port 80 a dotazuje viaceré RPC endpointy pre stav systému a dáta zariadenia.

Na úrovni modulu TapHome dotazuje /rpc/Sys.GetStatus, /rpc/Sys.GetConfig, /rpc/WiFi.GetStatus a /rpc/PlusRGBWPM.GetConfig v 3-sekundovom intervale. Odpoveď Sys.GetConfig poskytuje aktuálny profil (device.profile), ktorý určuje, ktoré endpointy na úrovni zariadenia sú aktívne.

Výber profilu

Shelly Plus RGBW PM pracuje vždy v jednom z troch profilov. Profil môžete prepnúť priamo z TapHome pomocou servisnej akcie Set Profile na module, alebo z webového rozhrania Shelly.

ProfilZariadenia v TapHomePoužitie
light4 nezávislé stmievače (O1–O4)Jednofarebné LED pásy, 4 samostatné svetelné zóny
rgb1 RGB svetloRGB LED pásy (3-kanálové miešanie farieb)
rgbw1 RGBW svetloRGBW LED pásy (RGB + dedikovaný biely kanál)

Po prepnutí profilu sa zariadenie reštartuje a TapHome automaticky detekuje nový profil. Zariadenia patriace neaktívnemu profilu budú hlásiť chybu (“Profile is not set to …”) — to je očakávané a možno to ignorovať.

Funkcie zariadenia

RGB svetlo (profil = rgb)

Keď je zariadenie nastavené na profil rgb, TapHome exponuje jedno HSB svetlo. Šablóna číta /rpc/RGB.GetStatus?id=0 pre stav zapnutia/vypnutia, jas (0–100 %) a RGB farebné hodnoty a zapisuje cez /rpc/RGB.Set?id=0 na ovládanie svetla.

Ovládanie farieb používa HSB (Hue-Saturation-Brightness):

  • Hue (0–360 stupňov) a Saturation (0,0–1,0) sa konvertujú medzi HSB a RGB interne
  • Brightness (0,0–1,0) sa mapuje na rozsah Shelly 0–100 %
  • Nastavenie jasu na 0 vypne svetlo; akýkoľvek nenulový jas svetlo zapne

RGB svetlo exponuje päť servisných atribútov:

AtribútJednotkaPopis
TeplotaCInterná teplota zariadenia
Spotreba energieWhKumulatívna energia pre RGB výstup
VýkonWOkamžitý príkon
NapätieVEfektívne napätie
PrúdAOdber prúdu
RGBW svetlo (profil = rgbw)

Keď je nastavený profil rgbw, TapHome exponuje jedno HSB svetlo s dodatočným bielym kanálom. Šablóna číta /rpc/RGBW.GetStatus?id=0 a zapisuje cez /rpc/RGBW.Set?id=0.

Profil RGBW pridáva biely kanál (0–255) ovládaný cez CCT (korelovaná teplota chromatickosti) na fixných 4500 K:

  • Keď je biely kanál aktívny (white != 0), jas sa odvodzuje z úrovne bielej (lineárne 0–255 mapované na 0,0–1,0)
  • Keď je biely kanál neaktívny, jas pochádza zo štandardného poľa brightness (0–100 %)
  • Prepnutie do režimu teploty chromatickosti v TapHome aktivuje biely kanál; prepnutie do RGB režimu ho deaktivuje

RGBW svetlo exponuje rovnakých päť servisných atribútov ako RGB svetlo (teplota, energia, výkon, napätie, prúd), čítaných z odpovede RGBW.GetStatus.

Stmievateľné LED výstupy (profil = light)

Keď je nastavený profil light, TapHome exponuje 4 nezávislé kanály stmievačov (O1–O4), z ktorých každý ovláda jeden LED výstup. Každý kanál číta z /rpc/Light.GetStatus?id={0-3} a zapisuje cez /rpc/Light.Set?id={0-3}.

Jas sa mapuje z rozsahu TapHome 0,0–1,0 na rozsah Shelly 0–100 %. Nastavenie úrovne na 0 vypne výstup; akákoľvek nenulová úroveň výstup zapne a nastaví jas.

Každý kanál stmievača exponuje šesť servisných atribútov:

AtribútJednotkaPopis
TeplotaCInterná teplota zariadenia
Spotreba energieWhKumulatívna energia pre tento kanál
VýkonWOkamžitý príkon
NapätieVEfektívne napätie
PrúdAOdber prúdu
PríznakyInterné stavové príznaky

Každý kanál stmievača tiež exponuje servisnú akciu Calibrate, ktorá odošle /rpc/Light.Calibrate?id={N} na kalibráciu výstupu pre pripojené LED záťaž.

Diagnostika modulu a akcie

Modul exponuje päť servisných atribútov pre diagnostiku zariadenia:

AtribútPopis
WiFi SSIDNázov pripojenej bezdrôtovej siete
IP adresaIP adresa zariadenia
Sila signálu (dB)WiFi RSSI
MAC adresaHardvérová adresa zariadenia
ProfilAktuálne aktívny profil (light, rgb alebo rgbw)

Na úrovni modulu sú dostupné tri servisné akcie:

AkciaPopis
Aktualizácia firmvéruSpustí OTA aktualizáciu na stabilný kanál firmvéru
ReštartReštartuje zariadenie
Nastaviť profilPrepína medzi profilmi light, rgb a rgbw (zariadenie sa reštartuje)

Skript modulu tiež kontroluje dostupné aktualizácie firmvéru a požiadavky na čakajúci reštart, pričom v TapHome zobrazuje varovania, keď je zistená niektorá z týchto podmienok.

Ďalšie funkcie

Shelly Plus RGBW PM tiež exponuje stav fyzického vstupu, konfiguráciu nočného režimu s limitmi jasu a plánom, trvanie prechodu pre zmeny farby/jasu a minimálny jas pri zapnutí cez svoje RPC API. Tieto funkcie môžu byť pridané v budúcej aktualizácii šablóny.

Riešenie problémov

Zariadenie neodpovedá
  1. Overte, že Shelly je pripojený k Wi-Fi a má platnú IP adresu
  2. Skúste použiť mDNS hostname (shellyplusrgbwpm-AABBCCDDEE.local) namiesto IP adresy — IP sa mohla zmeniť po obnovení DHCP
  3. Otvorte http://{device-ip}/rpc/Shelly.GetDeviceInfo v prehliadači — ak odpovedá JSON, zariadenie je dostupné
  4. Skontrolujte, že TapHome CCU a Shelly sú v rovnakej sieti / VLAN
  5. Uistite sa, že HTTP Digest Authentication je vypnuté vo webovom rozhraní Shelly — TapHome nepodporuje autentifikované požiadavky
Chyba profilu na zariadeniach

Ak zariadenie ukazuje “Profile is not set to rgb/rgbw/light” — to je očakávané. Šablóna obsahuje zariadenia pre všetky tri profily, ale fungovať budú len zariadenia zodpovedajúce aktuálne aktívnemu profilu. Ostatné zariadenia budú hlásiť túto chybu a možno ich ignorovať.

Na prepnutie aktívneho profilu použite servisnú akciu Set Profile na module alebo ho zmeňte vo webovom rozhraní Shelly. Zariadenie sa reštartuje a TapHome detekuje nový profil v rámci jedného cyklu dopytovania.

Farby sa zobrazujú nesprávne v režime RGB/RGBW
  1. Overte, že zapojenie LED pásu zodpovedá poradiu výstupných svoriek (R, G, B, W) — prehodené káble produkujú nesprávne farby
  2. Šablóna konvertuje medzi farebnými priestormi HSB a RGB interne. Ak farby pôsobia vyblednuté, skontrolujte hodnotu saturácie — nízka saturácia produkuje pastelové odtiene
  3. V režime RGBW sú biely kanál a RGB kanály ovládané nezávisle. Pri prepínaní z bielej na farbu alebo naopak TapHome odošle príslušný príkaz na vynulovanie druhého režimu
Výstupy stmievača nereagujú v režime light
  1. Potvrďte, že profil je nastavený na light — zariadenia stmievačov fungujú len v režime light
  2. Skontrolujte, že každý kanál má pripojenú LED záťaž — nezaťažené kanály nemusia hlásiť správny stav
  3. Skúste spustiť akciu Calibrate na kanáli — tým sa optimalizuje krivka stmievania pre pripojenú LED záťaž
  4. Zariadenia Gen2+ podporujú až 6 súčasných HTTP pripojení — vyhnite sa súčasnému dotazovaniu z viacerých systémov
Meranie výkonu ukazuje nulu
  1. Potvrďte, že LED záťaž je pripojená a kanál je zapnutý
  2. Dotazujte príslušný endpoint manuálne (/rpc/Light.GetStatus?id=0, /rpc/RGB.GetStatus?id=0 alebo /rpc/RGBW.GetStatus?id=0) a overte, že apower vracia nenulovú hodnotu
  3. LED záťaže s veľmi nízkym výkonom môžu hlásiť 0 W kvôli rozlíšeniu merania — to je normálne pre malé indikačné LED

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly nainštalované a zapnuté
  • Lokálna Wi-Fi sieť (2,4 GHz)
  • TapHome CCU v rovnakej sieti

Krok 1 — Pripojte Shelly k Wi-Fi

Možnosť A — Aplikácia Shelly (odporúčané):

  1. Stiahnite si aplikáciu Shelly (iOS / Android)
  2. Klepnite na +Add Device a postupujte podľa sprievodcu Bluetooth párovaním
  3. Po výzve zadajte svoje Wi-Fi prihlasovacie údaje

Možnosť B — AP režim (bez aplikácie):

  1. Pri prvom zapnutí zariadenie vytvorí hotspot: ShellyXXX-AABBCCDDEE
  2. Pripojte telefón/PC k tomuto hotspotu
  3. Otvorte http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadajte SSID a heslo → Save

Shelly podporuje iba 2,4 GHz siete. 5 GHz siete sa pri skenovaní nezobrazia.

Krok 2 — Zistite IP adresu

Po pripojení k Wi-Fi zistite priradenú IP adresu jedným z nasledujúcich spôsobov:

  • Aplikácia Shelly: Detail zariadenia → Device info → IP adresa
  • Webové rozhranie Shelly: Pripojte sa k AP zariadenia pred nastavením Wi-Fi — IP sa zobrazí po uložení
  • DHCP tabuľka routera: Hľadajte hostname ako shelly1pm-AABBCCDDEE
  • mDNS: Pingnite shelly<model>-<mac>.local (napr. shelly1pm-AABBCCDDEE.local) z rovnakej siete

Priraďte zariadeniu Shelly statickú IP (DHCP rezerváciu) vo vašom routeri, aby sa adresa nezmenila po reštarte routera.

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (HTTP)
  2. IP Address: zadajte IP z kroku 2 (napr. 192.168.1.50)
  3. Port: 80 (predvolený, nie je potrebné meniť)
  4. Importujte šablónu — TapHome bude pravidelne čítať /status pre zistenie stavu zariadenia

HTTP autentifikácia je na zariadeniach Shelly štandardne vypnutá. Ak ste povolili ochranu prihlásením, TapHome momentálne nepodporuje HTTP Basic Auth — pre integráciu s TapHome ponechajte autentifikáciu vypnutú.

Dostupné zariadenia

Shelly Plus RGBW PM Modul
Servisné atribúty
WiFi
IP adresa
Sila signálu
MAC
Profil
Servisné akcie
Aktualizácia firmvéru
Reštart
Nastaviť profil
Vlastné premenné

Shelly Plus RGBW PM

Čítanie (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
Servisné atribúty
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");
Servisné akcie
${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
Parametre: 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 svetlo HSB svetlo

HSB farebné svetlo (profil rgb) s ovládaním jasu, odtieňa, saturácie a meraním spotreby na kanál

HSB
Servisné atribúty
Teplota
Spotreba energie
Výkon
Napätie
Prúd

RGB svetlo

Čítanie (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
Čítanie jasu
bool output := PARSEJSON(RGB.GetStatus, "$.output", true);
var brightness := PARSEJSON(RGB.GetStatus, "$.brightness", true);

if output
    return(brightness / 100);
else
    return(0);
end
Zápis jasu
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Hb*100.0));
Čítanie odtieňa
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Hue);
Zápis odtieňa
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čítanie saturácie
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zápis saturácie
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Servisné atribúty
${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 svetlo HSB svetlo

HSB farebné+biele svetlo (profil rgbw) s RGB, bielym kanálom (CCT pri 4500K) a meraním spotreby na kanál

HSB
Servisné atribúty
Teplota
Spotreba energie
Výkon
Napätie
Prúd

RGBW svetlo

Čítanie (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
Čítanie jasu
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
Zápis jasu
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
Čítanie odtieňa
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Hue);
Zápis odtieňa
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čítanie saturácie
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zápis saturácie
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čítanie farebnej teploty
var white := PARSEJSON(RGBW.GetStatus, "$.white", true);
if white != 0 or !isnan(Ct)
	return(4500);
else
	return(NaN);
end
Zápis farebnej teploty
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
Servisné atribúty
${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)
Stmievateľný LED výstup 2 Stmievač

Nezávislý kanál stmievača 2 (profil light, id=1) s ovládaním jasu, kalibráciou a meraním spotreby na kanál

numeric
Servisné atribúty
Teplota
Spotreba energie
Výkon
Napätie
Prúd
Príznaky
Servisné akcie
Kalibrácia

Stmievateľný LED výstup 2

Čítanie (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
Čítanie úrovne
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovne
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisné atribúty
${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)
Servisné akcie
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Stmievateľný LED výstup 1 Stmievač

Nezávislý kanál stmievača 1 (profil light, id=0) s ovládaním jasu, kalibráciou a meraním spotreby na kanál

numeric
Servisné atribúty
Teplota
Spotreba energie
Výkon
Napätie
Prúd
Príznaky
Servisné akcie
Kalibrácia

Stmievateľný LED výstup 1

Čítanie (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
Čítanie úrovne
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovne
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisné atribúty
${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)
Servisné akcie
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Stmievateľný LED výstup 3 Stmievač

Nezávislý kanál stmievača 3 (profil light, id=2) s ovládaním jasu, kalibráciou a meraním spotreby na kanál

numeric
Servisné atribúty
Teplota
Spotreba energie
Výkon
Napätie
Prúd
Príznaky
Servisné akcie
Kalibrácia

Stmievateľný LED výstup 3

Čítanie (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
Čítanie úrovne
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovne
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisné atribúty
${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)
Servisné akcie
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Stmievateľný LED výstup 4 Stmievač

Nezávislý kanál stmievača 4 (profil light, id=3) s ovládaním jasu, kalibráciou a meraním spotreby na kanál

numeric
Servisné atribúty
Teplota
Spotreba energie
Výkon
Napätie
Prúd
Príznaky
Servisné akcie
Kalibrácia

Stmievateľný LED výstup 4

Čítanie (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
Čítanie úrovne
bool output := PARSEJSON(Light.GetStatus, "$.output");
var brightness := PARSEJSON(Light.GetStatus, "$.brightness");

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovne
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisné atribúty
${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)
Servisné akcie
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (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

Zdroje