TapHome

Shelly RGBW2

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 03. 2026
Shelly RGBW2

A Shelly RGBW2 egy Wi-Fi RGBW LED szalagvezérlő négy PWM kimenettel (12/24 V DC). Két kölcsönösen kizáró üzemmódot támogat — Color és White — mindegyik saját TapHome sablont igényel. A TapHome HTTP-n keresztül kommunikál az eszközzel a helyi hálózaton; felhőkapcsolat nem szükséges.

Color üzemmódban a négy kimenet egy RGBW LED szalagot vezérel egyetlen színes fényként színárnyalattal, telítettséggel, fényerővel és opcionális fehér (CCT) csatornával. White üzemmódban a négy kimenet független dimmerként működik, mindegyik külön fehér LED szalagot vagy zónát vezérel.

Az üzemmódot a Shelly webes felületén (vagy az API-n keresztül) kell kiválasztani a megfelelő sablon importálása előtt. Minden sablon minden lekérdezéskor validálja az aktuális üzemmódot, és hibát jelenít meg, ha az eszköz rossz üzemmódra van állítva.

Konfiguráció

Mindkét sablon Wi-Fi-n keresztül csatlakozik. A TapHome sablon importálásakor adja meg az eszköz IP-címét (alapértelmezett helyőrző 192.168.0.1) és egy opcionális átmeneti időt ezredmásodpercben (alapértelmezett 300).

Az átmeneti idő paraméter szabályozza, milyen gyorsan megy át a fény a fényerőszintek között. Minden írási parancsra vonatkozik (be/ki, fényerő, színváltozások), és befolyásolja a debounce ablakot — a sablon figyelmen kívül hagyja a lekérdezett értékeket transitionTime + 500 ms ideig minden írás után, hogy megakadályozza az elavult olvasásokat az átmenetek során.

Color üzemmód sablon

Színes fény

A sablon az RGBW szalagot egyetlen HSB színes fényként teszi elérhetővé két alüzemmóddal:

  • RGB szín — a színárnyalat és telítettség vezérli a szalag színét. A sablon konvertál a Shelly API RGB értékei (piros, zöld, kék 0-255) és a TapHome HSB modellje között. A fényerőt a gain paraméter vezérli (0-100).
  • Fehér (CCT) — ha a korrelált színhőmérséklet be van állítva, a sablon átkapcsol a fehér csatorna vezérlésre. A CCT tartomány 3000-6500 K. A fényerőt a white paraméter vezérli (0-100).

A fény állapota a /status válaszból (lights[0]) olvasható, és a /light/0 végponton keresztül vezérelhető. A bekapcsolás turn=on-t küld az aktuális szín- vagy fehérértékekkel; a kikapcsolás turn=off-ot küld. Minden írási parancs tartalmazza az átmeneti idő paramétert.

Teljesítménymérés (Color)

A Color sablon egy energiamérőt tartalmaz, amely a meters[0]-ból olvas:

  • Pillanatnyi teljesítménymeters[0].power wattban, kW-ra konvertálva
  • Összesített fogyasztásmeters[0].total wattpercben, kWh-ra konvertálva

Ha a fény be van kapcsolva, de a teljesítmény nullát mutat, a sablon figyelmeztetést jelenít meg azzal a javaslattal, hogy konfigurálja az eszközmodellt a Shelly alkalmazás beállításaiban.

White üzemmód sablon

Négy független dimmer

A White sablon négy független dimmer csatornát tesz elérhetővé, egyet PWM kimenetenként:

CsatornaKimenetVégpontLekérdezési intervallum
Ch1R (Red)/light/02,5 s
Ch2G (Green)/light/12,5 s
Ch3B (Blue)/light/22,5 s
Ch4W (White)/light/32,5 s

Minden dimmer a lights[N].ison és lights[N].brightness (0-100, 0-1-re normalizálva) értékeket olvassa a /status válaszból. Az írási parancsok a /light/N?turn=on|off&brightness=VALUE formátumot használják. Minden csatorna ugyanazt az átmeneti időt és debounce logikát használja.

Teljesítménymérés (White)

Minden csatornának saját energiamérője van, amely a meters[0]-tól meters[3]-ig olvas. Az első csatorna 2,5 másodpercenként kérdez le; a 2-4. csatornák 15 másodperces intervallumokban. Minden mérő pillanatnyi teljesítményt (W-ról kW-ra) és összesített energiát (wattpercről kWh-ra) szolgáltat.

Szervizdiagnosztika

Mindkét sablon 10 szervizattribútumot tesz elérhetővé az eszköz figyeléséhez:

  • Hálózati info — IP-cím, MAC-cím (kettőspontokkal formázva), Wi-Fi jelszint (dB)
  • Csatlakoztathatóság — cloud engedélyezve/csatlakoztatva, MQTT csatlakoztatva
  • Eszközinfo — eszköz ideje, üzemidő (nap/óra/perc formátumban), RAM-használat
  • Firmware — firmware frissítés elérhető

Szervizműveletek

Mindkét sablon három szervizműveletet oszt meg:

  • Cloud engedélyezése — engedélyezi vagy letiltja a Shelly Cloud csatlakozást
  • Újraindítás — eszköz újraindítását indítja
  • Üzemmód beállítása — a Color sablon tartalmazza a „Set mode Color" (/settings?mode=color) és a White sablon a „Set mode White" (/settings?mode=white) műveletet. Ezek a műveletek az API-n keresztül váltják az eszköz üzemmódját.
További funkciók

A Shelly RGBW2 a fényeffektusokat (Color üzemmód, effektus index 0-3), a fizikai bemenet állapotát, a belső hőmérsékletet, a túlmelegedés jelzőt és a teljesítményvédelmi beállításokat is elérhetővé teszi az API-jában. Ezek a funkciók egy jövőbeli sablonfrissítésben kerülhetnek hozzáadásra.

Hibaelhárítás

Az eszköz nem válaszol
  1. Ellenőrizze, hogy a Shelly csatlakozik a Wi-Fi-hez és érvényes IP-címmel rendelkezik
  2. Próbálja az mDNS hosztnevet (shellyrgbw2-AABBCCDDEE.local) az IP-cím helyett — az IP megváltozhatott a DHCP megújítás után
  3. Nyissa meg a http://{device-ip}/shelly címet a böngészőben — ha válaszol, az eszköz elérhető
  4. Ellenőrizze, hogy a TapHome CCU és a Shelly ugyanazon a hálózaton / VLAN-on van
„Mode White/Color is not supported" hiba

Ez a hiba azt jelenti, hogy az eszköz rossz üzemmódra van állítva az importált sablonhoz képest. Megoldás:

  1. Nyissa meg a Shelly webes felületét a http://{device-ip} címen
  2. Váltsa át az üzemmódot, hogy megfeleljen a sablonnak (Color vagy White)
  3. Alternatívaként használja a „Set mode Color" vagy „Set mode White" szervizműveletet a másik sablonból az üzemmód API-n keresztüli váltásához, majd importálja újra a megfelelő sablont
A teljesítmény nullát mutat
  1. Győződjön meg arról, hogy a LED-ek csatlakoznak a Shelly RGBW2 kimeneteihez
  2. Nyissa meg a Shelly alkalmazást vagy webes felületet, és ellenőrizze, hogy az eszközmodell konfigurálva van a Settings -> Device Model alatt
  3. Ellenőrizze, hogy a fény be van-e kapcsolva — a mérő csak akkor mér, amikor áram folyik a kimeneteken
  4. Kérdezze le manuálisan a /status-t, és ellenőrizze, hogy a meters[0].power nullánál nagyobb értéket ad vissza
A színes fény nem változik
  1. Ellenőrizze, hogy az eszköz Color üzemmódban van (nézze meg a /status választ — a mode értéke "color" legyen)
  2. Győződjön meg arról, hogy a fény be van kapcsolva, mielőtt megváltoztatja a színárnyalatot vagy telítettséget
  3. Ha mind a gain, mind a white nem nulla, a sablon automatikusan nullára állítja őket és kikapcsolja a fényt — ez megakadályozza a meghatározatlan viselkedést, amikor az RGB és fehér csatornák versenyeznek

A Shelly Gen1 eszközök csak 2 egyidejű HTTP-kapcsolatot támogatnak. Ha a TapHome és egy másik rendszer (pl. Home Assistant) egyszerre kérdezi le ugyanazt az eszközt, a kommunikáció megbízhatatlanná válhat. Használjon 10-30 másodperces lekérdezési intervallumot.

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz telepítve és bekapcsolva
  • Helyi Wi-Fi hálózat (2,4 GHz)
  • TapHome CCU ugyanazon a hálózaton

1. lépés — Shelly csatlakoztatása a Wi-Fi-hez

A lehetőség — Shelly alkalmazás (ajánlott):

  1. Töltse le a Shelly alkalmazást (iOS / Android)
  2. Érintse meg a +Add Device gombot, és kövesse a Bluetooth párosítási varázslót
  3. Adja meg Wi-Fi hitelesítő adatait, amikor a rendszer kéri

B lehetőség — AP mód (alkalmazás nélkül):

  1. Első bekapcsoláskor az eszköz létrehoz egy hotspotot: ShellyXXX-AABBCCDDEE
  2. Csatlakoztassa telefonját/PC-jét ehhez a hotspothoz
  3. Nyissa meg a http://192.168.33.1 címet → Internet & SecurityWi-Fi Mode - Client
  4. Adja meg az SSID-t és a jelszót → Save

A Shelly csak 2,4 GHz-es hálózatokat támogat. Az 5 GHz-es hálózatok nem jelennek meg a keresésben.

2. lépés — IP-cím megkeresése

A Wi-Fi-hez való csatlakozás után az alábbi módszerek egyikével keresse meg a hozzárendelt IP-címet:

  • Shelly alkalmazás: Eszköz részletei → Device info → IP-cím
  • Shelly webes felület: Csatlakozzon az eszköz AP-jához a Wi-Fi beállítás előtt — az IP a mentés után jelenik meg
  • Router DHCP tábla: Keressen egy hasonló hosztnevet: shelly1pm-AABBCCDDEE
  • mDNS: Pingelje a shelly<model>-<mac>.local címet (pl. shelly1pm-AABBCCDDEE.local) ugyanarról a hálózatról

Rendeljen statikus IP-t (DHCP foglalást) a Shelly eszközhöz a routerben, hogy a cím ne változzon a router újraindítása után.

3. lépés — Konfigurálás a TapHome-ban

  1. A TapHome-ban adjon hozzá egy új Packet Parser (HTTP) modult
  2. IP Address: adja meg a 2. lépésben kapott IP-t (pl. 192.168.1.50)
  3. Port: 80 (alapértelmezett, nem kell módosítani)
  4. Importálja a sablont — a TapHome rendszeresen lekérdezi a /status végpontot az eszköz állapotának olvasásához

A HTTP hitelesítés a Shelly eszközökön alapértelmezetten ki van kapcsolva. Ha engedélyezte a bejelentkezésvédelmet, a TapHome jelenleg nem támogatja a HTTP Basic Auth-ot — a TapHome integrációhoz hagyja kikapcsolva a hitelesítést.

Elérhető eszközök

Shelly RGBW2 Color Modul
Szerviz attribútumok
IP-cím
MAC-cím
WiFi jel
Cloud engedélyezve
Cloud csatlakoztatva
MQTT csatlakoztatva
Eszköz ideje
FW frissítés elérhető
Üzemidő
RAM
Szerviz műveletek
Cloud engedélyezése
Újraindítás
Color üzemmód beállítása
Egyéni változók
transitionTime (numeric) = TransitionTimeLight transition duration in milliseconds (import parameter, default 300ms)

Shelly RGBW2 Color

Olvasás (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
Szerviz attribútumok
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
Szerviz műveletek
Enable cloud
Paraméterek: 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");
Villamos mérő Villanyóra Csak olvasható

Energiafogyasztás mérés — pillanatnyi teljesítmény (kW) és összesített energia (kWh)

numeric Egység: W / kWh

Villamos mérő

Összes fogyasztás olvasása
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
Igény olvasása
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[0].power", 1);

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
Színes fény HSB lámpa

RGBW színes fény HSB vezérléssel — színárnyalat, telítettség, fényerő és opcionális CCT fehér csatorna (3000–6500 K)

hsb

Színes fény

Olvasás (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
Fényerő olvasása
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);
Fényerő írása
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;
Színárnyalat olvasása
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);
Színárnyalat írása
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;
Telítettség olvasása
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;
Telítettség írása
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;
Színhőmérséklet olvasása
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
Színhőmérséklet írása
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;
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (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

Források