TapHome

Shelly Plus RGBW PM

Packet Parser → HTTP
Přidal
Poslední aktualizace: 03. 2026
Shelly Plus RGBW PM

Shelly Plus RGBW PM je Gen2+ Wi-Fi RGBW LED ovladač s vestavěným měřením spotřeby na každém výstupním kanálu. Napájí LED pásky nebo jednotlivé LED kanály při 12/24 VDC s maximálně 4 x 4,5 A na kanál (celkem 18 A). Zařízení podporuje tři přepínatelné profily — light (4 nezávislé stmívače), rgb (3kanálová barva) a rgbw (3kanálová barva + bílá) — přičemž každý vystavuje různá zařízení v TapHome. TapHome komunikuje se zařízením lokálně přes Wi-Fi pomocí Gen2+ RPC API — cloudové připojení není potřeba.

TapHome šablona je HTTP šablona, která dotazuje RPC endpointy zařízení. Jedna šablona obsluhuje všechny tři profily; TapHome detekuje aktivní profil za běhu a aktivuje odpovídající zařízení.

Konfigurace

Importní parametry

Šablona vyžaduje pouze IP adresu zařízení (výchozí placeholder 192.168.0.1). TapHome se připojuje na port 80 a dotazuje více RPC endpointů pro stav systému a data zařízení.

Na úrovni modulu TapHome dotazuje /rpc/Sys.GetStatus, /rpc/Sys.GetConfig, /rpc/WiFi.GetStatus a /rpc/PlusRGBWPM.GetConfig v 3sekundovém intervalu. Odpověď Sys.GetConfig poskytuje aktuální profil (device.profile), který určuje, které endpointy na úrovni zařízení jsou aktivní.

Výběr profilu

Shelly Plus RGBW PM pracuje vždy v jednom ze tří profilů. Profil můžete přepnout přímo z TapHome pomocí servisní akce Set Profile na modulu, nebo z webového rozhraní Shelly.

ProfilZařízení v TapHomePoužití
light4 nezávislé stmívače (O1–O4)Jednobarevné LED pásky, 4 samostatné světelné zóny
rgb1 RGB světloRGB LED pásky (3kanálové míchání barev)
rgbw1 RGBW světloRGBW LED pásky (RGB + dedikovaný bílý kanál)

Po přepnutí profilu se zařízení restartuje a TapHome automaticky detekuje nový profil. Zařízení patřící neaktivnímu profilu budou hlásit chybu (“Profile is not set to …”) — to je očekávané a lze to ignorovat.

Funkce zařízení

RGB světlo (profil = rgb)

Když je zařízení nastaveno na profil rgb, TapHome vystavuje jedno HSB světlo. Šablona čte /rpc/RGB.GetStatus?id=0 pro stav zapnutí/vypnutí, jas (0–100 %) a RGB barevné hodnoty a zapisuje přes /rpc/RGB.Set?id=0 pro ovládání světla.

Ovládání barev používá HSB (Hue-Saturation-Brightness):

  • Hue (0–360 stupňů) a Saturation (0,0–1,0) se konvertují mezi HSB a RGB interně
  • Brightness (0,0–1,0) se mapuje na rozsah Shelly 0–100 %
  • Nastavení jasu na 0 vypne světlo; jakýkoliv nenulový jas světlo zapne

RGB světlo vystavuje pět servisních atributů:

AtributJednotkaPopis
TeplotaCInterní teplota zařízení
Spotřeba energieWhKumulativní energie pro RGB výstup
VýkonWOkamžitý příkon
NapětíVEfektivní napětí
ProudAOdběr proudu
RGBW světlo (profil = rgbw)

Když je nastaven profil rgbw, TapHome vystavuje jedno HSB světlo s dalším bílým kanálem. Šablona čte /rpc/RGBW.GetStatus?id=0 a zapisuje přes /rpc/RGBW.Set?id=0.

Profil RGBW přidává bílý kanál (0–255) ovládaný přes CCT (korelovaná teplota chromatičnosti) na fixních 4500 K:

  • Když je bílý kanál aktivní (white != 0), jas se odvozuje z úrovně bílé (lineárně 0–255 mapované na 0,0–1,0)
  • Když je bílý kanál neaktivní, jas pochází ze standardního pole brightness (0–100 %)
  • Přepnutí do režimu teploty chromatičnosti v TapHome aktivuje bílý kanál; přepnutí do RGB režimu jej deaktivuje

RGBW světlo vystavuje stejných pět servisních atributů jako RGB světlo (teplota, energie, výkon, napětí, proud), čtených z odpovědi RGBW.GetStatus.

Stmívatelné LED výstupy (profil = light)

Když je nastaven profil light, TapHome vystavuje 4 nezávislé kanály stmívačů (O1–O4), z nichž každý ovládá jeden LED výstup. Každý kanál čte z /rpc/Light.GetStatus?id={0-3} a zapisuje přes /rpc/Light.Set?id={0-3}.

Jas se mapuje z rozsahu TapHome 0,0–1,0 na rozsah Shelly 0–100 %. Nastavení úrovně na 0 vypne výstup; jakákoliv nenulová úroveň výstup zapne a nastaví jas.

Každý kanál stmívače vystavuje šest servisních atributů:

AtributJednotkaPopis
TeplotaCInterní teplota zařízení
Spotřeba energieWhKumulativní energie pro tento kanál
VýkonWOkamžitý příkon
NapětíVEfektivní napětí
ProudAOdběr proudu
PříznakyInterní stavové příznaky

Každý kanál stmívače také vystavuje servisní akci Calibrate, která odesílá /rpc/Light.Calibrate?id={N} pro kalibraci výstupu pro připojenou LED zátěž.

Diagnostika modulu a akce

Modul vystavuje pět servisních atributů pro diagnostiku zařízení:

AtributPopis
WiFi SSIDNázev připojené bezdrátové sítě
IP adresaIP adresa zařízení
Síla signálu (dB)WiFi RSSI
MAC adresaHardwarová adresa zařízení
ProfilAktuálně aktivní profil (light, rgb nebo rgbw)

Na úrovni modulu jsou dostupné tři servisní akce:

AkcePopis
Aktualizace firmwaruSpustí OTA aktualizaci na stabilní kanál firmwaru
RestartRestartuje zařízení
Nastavit profilPřepíná mezi profily light, rgb a rgbw (zařízení se restartuje)

Skript modulu také kontroluje dostupné aktualizace firmwaru a požadavky na čekající restart, přičemž v TapHome zobrazuje varování, když je detekována některá z těchto podmínek.

Další funkce

Shelly Plus RGBW PM také vystavuje stav fyzického vstupu, konfiguraci nočního režimu s limity jasu a plánem, délku přechodu pro změny barvy/jasu a minimální jas při zapnutí přes své RPC API. Tyto funkce mohou být přidány v budoucí aktualizaci šablony.

Řešení problémů

Zařízení neodpovídá
  1. Ověřte, že Shelly je připojen k Wi-Fi a má platnou IP adresu
  2. Zkuste použít mDNS hostname (shellyplusrgbwpm-AABBCCDDEE.local) místo IP adresy — IP se mohla změnit po obnovení DHCP
  3. Otevřete http://{device-ip}/rpc/Shelly.GetDeviceInfo v prohlížeči — pokud odpovídá JSON, zařízení je dostupné
  4. Zkontrolujte, že TapHome CCU a Shelly jsou ve stejné síti / VLAN
  5. Ujistěte se, že HTTP Digest Authentication je vypnuto ve webovém rozhraní Shelly — TapHome nepodporuje autentizované požadavky
Chyba profilu na zařízeních

Pokud zařízení ukazuje “Profile is not set to rgb/rgbw/light” — to je očekávané. Šablona obsahuje zařízení pro všechny tři profily, ale fungovat budou pouze zařízení odpovídající aktuálně aktivnímu profilu. Ostatní zařízení budou hlásit tuto chybu a lze je ignorovat.

Pro přepnutí aktivního profilu použijte servisní akci Set Profile na modulu nebo jej změňte ve webovém rozhraní Shelly. Zařízení se restartuje a TapHome detekuje nový profil v rámci jednoho cyklu dotazování.

Barvy se zobrazují nesprávně v režimu RGB/RGBW
  1. Ověřte, že zapojení LED pásku odpovídá pořadí výstupních svorek (R, G, B, W) — přehozené kabely produkují nesprávné barvy
  2. Šablona konvertuje mezi barevnými prostory HSB a RGB interně. Pokud barvy působí vybledle, zkontrolujte hodnotu saturace — nízká saturace produkuje pastelové odstíny
  3. V režimu RGBW jsou bílý kanál a RGB kanály ovládány nezávisle. Při přepínání z bílé na barvu nebo naopak TapHome odešle příslušný příkaz pro vynulování druhého režimu
Výstupy stmívače nereagují v režimu light
  1. Potvrďte, že profil je nastaven na light — zařízení stmívačů fungují pouze v režimu light
  2. Zkontrolujte, že každý kanál má připojenou LED zátěž — nezatížené kanály nemusí hlásit správný stav
  3. Zkuste spustit akci Calibrate na kanálu — tím se optimalizuje křivka stmívání pro připojenou LED zátěž
  4. Zařízení Gen2+ podporují až 6 souběžných HTTP připojení — vyhněte se souběžnému dotazování z více systémů
Měření výkonu ukazuje nulu
  1. Potvrďte, že LED zátěž je připojena a kanál je zapnut
  2. Dotazujte příslušný endpoint manuálně (/rpc/Light.GetStatus?id=0, /rpc/RGB.GetStatus?id=0 nebo /rpc/RGBW.GetStatus?id=0) a ověřte, že apower vrací nenulovou hodnotu
  3. LED zátěže s velmi nízkým výkonem mohou hlásit 0 W kvůli rozlišení měření — to je normální pro malé indikační LED

Jak nainstalovat v TapHome

Předpoklady

  • Zařízení Shelly nainstalované a zapnuté
  • Lokální Wi-Fi síť (2,4 GHz)
  • TapHome CCU ve stejné síti

Krok 1 — Připojte Shelly k Wi-Fi

Možnost A — Aplikace Shelly (doporučeno):

  1. Stáhněte si aplikaci Shelly (iOS / Android)
  2. Klepněte na +Add Device a postupujte podle průvodce Bluetooth párováním
  3. Po výzvě zadejte své Wi-Fi přihlašovací údaje

Možnost B — AP režim (bez aplikace):

  1. Při prvním zapnutí zařízení vytvoří hotspot: ShellyXXX-AABBCCDDEE
  2. Připojte telefon/PC k tomuto hotspotu
  3. Otevřete http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadejte SSID a heslo → Save

Shelly podporuje pouze 2,4 GHz sítě. 5 GHz sítě se při skenování nezobrazí.

Krok 2 — Zjistěte IP adresu

Po připojení k Wi-Fi zjistěte přiřazenou IP adresu jedním z následujících způsobů:

  • Aplikace Shelly: Detail zařízení → Device info → IP adresa
  • Webové rozhraní Shelly: Připojte se k AP zařízení před nastavením Wi-Fi — IP se zobrazí po uložení
  • DHCP tabulka routeru: Hledejte hostname jako shelly1pm-AABBCCDDEE
  • mDNS: Pingněte shelly<model>-<mac>.local (např. shelly1pm-AABBCCDDEE.local) ze stejné sítě

Přiřaďte zařízení Shelly statickou IP (DHCP rezervaci) ve vašem routeru, aby se adresa nezměnila po restartu routeru.

Krok 3 — Konfigurace v TapHome

  1. V TapHome přidejte nový modul Packet Parser (HTTP)
  2. IP Address: zadejte IP z kroku 2 (např. 192.168.1.50)
  3. Port: 80 (výchozí, není potřeba měnit)
  4. Importujte šablonu — TapHome bude pravidelně číst /status pro zjištění stavu zařízení

HTTP autentifikace je na zařízeních Shelly standardně vypnutá. Pokud jste povolili ochranu přihlášením, TapHome momentálně nepodporuje HTTP Basic Auth — pro integraci s TapHome ponechte autentifikaci vypnutou.

Dostupná zařízení

Shelly Plus RGBW PM Modul
Servisní atributy
WiFi
IP adresa
Síla signálu
MAC
Profil
Servisní akce
Aktualizace firmwaru
Restart
Nastavit profil
Vlastní proměnné

Shelly Plus RGBW PM

Čtení (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í atributy
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í akce
${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
Parametry: 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 světlo HSB světlo

HSB barevné světlo (profil rgb) s ovládáním jasu, odstínu, saturace a měřením spotřeby na kanál

HSB
Servisní atributy
Teplota
Spotřeba energie
Výkon
Napětí
Proud

RGB světlo

Čtení (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
Čtení 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));
Čtení odstínu
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Hue);
Zápis odstínu
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čtení saturace
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zápis saturace
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGB.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Servisní atributy
${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 světlo HSB světlo

HSB barevné+bílé světlo (profil rgbw) s RGB, bílým kanálem (CCT při 4500K) a měřením spotřeby na kanál

HSB
Servisní atributy
Teplota
Spotřeba energie
Výkon
Napětí
Proud

RGBW světlo

Čtení (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
Čtení 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
Čtení odstínu
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Hue);
Zápis odstínu
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čtení saturace
VAR HSVColor := RGBTOHSV(R, G, B);
ROUND(HSVColor.Saturation * 100.0) / 100.0;
Zápis saturace
VAR color := HSVTORGB(Hd, Sa, 1);
SENDHTTPREQUEST("/rpc/RGBW.Set?id=" + ID + "&rgb=[" + color.RED + "," + color.GREEN + "," + color.BLUE + "]");
Čtení barevné teploty
var white := PARSEJSON(RGBW.GetStatus, "$.white", true);
if white != 0 or !isnan(Ct)
	return(4500);
else
	return(NaN);
end
Zápis barevné 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í atributy
${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)
Stmívatelný LED výstup 2 Stmívač

Nezávislý kanál stmívače 2 (profil light, id=1) s ovládáním jasu, kalibrací a měřením spotřeby na kanál

numeric
Servisní atributy
Teplota
Spotřeba energie
Výkon
Napětí
Proud
Příznaky
Servisní akce
Kalibrace

Stmívatelný LED výstup 2

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

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovně
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisní atributy
${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í akce
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Stmívatelný LED výstup 1 Stmívač

Nezávislý kanál stmívače 1 (profil light, id=0) s ovládáním jasu, kalibrací a měřením spotřeby na kanál

numeric
Servisní atributy
Teplota
Spotřeba energie
Výkon
Napětí
Proud
Příznaky
Servisní akce
Kalibrace

Stmívatelný LED výstup 1

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

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovně
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisní atributy
${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í akce
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Stmívatelný LED výstup 3 Stmívač

Nezávislý kanál stmívače 3 (profil light, id=2) s ovládáním jasu, kalibrací a měřením spotřeby na kanál

numeric
Servisní atributy
Teplota
Spotřeba energie
Výkon
Napětí
Proud
Příznaky
Servisní akce
Kalibrace

Stmívatelný LED výstup 3

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

if output
    return(brightness / 100);
else
    return(0);
end
Zápis úrovně
SENDHTTPREQUEST("/rpc/Light.Set?id=" + ID + "&on=" + if(St, "true", "false") + "&brightness=" + round(Le*100.0));
Servisní atributy
${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í akce
${detail_deviceSettings_TemperatureSensor_categoryCalibration}
VAR response := SENDHTTPREQUEST("/rpc/Light.Calibrate?id=" + ID);
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Stmívatelný LED výstup 4 Stmívač

Nezávislý kanál stmívače 4 (profil light, id=3) s ovládáním jasu, kalibrací a měřením spotřeby na kanál

numeric
Servisní atributy
Teplota
Spotřeba energie
Výkon
Napětí
Proud
Příznaky
Servisní akce
Kalibrace

Stmívatelný LED výstup 4

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

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