---
title: "Shelly RGBW2 White"
description: "Shelly RGBW2 w trybie White: cztery niezależne białe kanały ściemniające LED z pomiarem energii na kanał. Lokalna integracja HTTP z TapHome."
url: "https://taphome.com/pl/compatibility/shelly-rgbw2-white/"
language: pl
lastmod: 2026-04-24
generator: hugo
ai:
  topics: ["http","lighting","wifi","dimmer","led-controller","shelly","gen1"]
  questions: ["Jak zintegrować Shelly RGBW2 w trybie White z TapHome?","Jak przełączyć Shelly RGBW2 z trybu Color na tryb White?","Czy mogę sterować czterema oddzielnymi białymi taśmami LED jednym Shelly RGBW2?","Dlaczego Shelly RGBW2 White pokazuje błąd „Mode is not supported\"?","Jaka jest maksymalna moc na kanał w Shelly RGBW2?","Czy Shelly RGBW2 jest nadal dostępny, czy został wycofany?"]
---

# Shelly RGBW2 White

Komunikacja: Packet Parser → HTTP

- [Strona produktu Shelly RGBW2](https://www.shelly.com/en/products/shop/shelly-rgbw2)
- [Dokumentacja API Shelly RGBW2 (tryb White)](https://shelly-api-docs.shelly.cloud/gen1/#shelly-rgbw2-white-mode)
- [Shelly RGBW2 Knowledge Base](https://kb.shelly.cloud/knowledge-base/shelly-rgbw2)

> Adres w sieci
> 
> TapHome łączy się z urządzeniem pod adresem podanym przy imporcie. Nadaj urządzeniu stały adres — rezerwację IP w routerze albo jego nazwę mDNS, jeśli ją obsługuje — inaczej integracja przestanie działać, gdy router zmieni adres.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly RGBW2 to sterownik taśmy LED z Wi-Fi, wyposażony w cztery wyjścia PWM (12/24 V DC). W **trybie White** cztery wyjścia — zwykle używane dla kanałów R, G, B i W taśmy RGBW — stają się czterema niezależnymi jednobarwnymi kanałami ściemniającymi. Każdy kanał może zasilać własną białą taśmę LED, żarówkę LED lub grupę reflektorów punktowych. TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej; połączenie z chmurą nie jest wymagane.

Ten szablon jest odpowiednikiem szablonu [Shelly RGBW2](https://taphome.com/pl/compatibility/shelly-rgbw2/) w trybie Color, ale dla trybu White. Oba szablony współdzielą ten sam sprzęt, ale firmware działa we wzajemnie wykluczających się trybach wybieranych w ustawieniach urządzenia. Przed zaimportowaniem tego szablonu urządzenie musi być skonfigurowane w trybie White — szablon sprawdza tryb przy każdym odpytywaniu i wyświetla błąd, jeśli urządzenie jest ustawione na Color.

> [!NOTE]
> Shelly oznaczył RGBW2 jako **wycofany** — nie jest już produkowany ani sprzedawany przez Shelly Group. Istniejące egzemplarze nadal działają i otrzymują aktualizacje firmware.

## Okablowanie

Shelly RGBW2 jest zasilany ze źródła 12 V lub 24 V DC (V+ / GND). Każde z czterech wyjść (oznaczonych R, G, B, W na urządzeniu) zasila jedno białe obciążenie LED. Typowe schematy okablowania dla trybu White:

- **Cztery niezależne białe taśmy LED lub żarówki** — każdy kanał steruje jedną taśmą/żarówką, wspólna anoda (+) do V+
- **Kilka reflektorów na kanał** — kilka reflektorów 12/24 V podłączonych równolegle na jedno wyjście
- **Dwie białe taśmy z podwojoną mocą** — dwa kanały sparowane równolegle na jedną taśmę w celu podwojenia mocy wyjściowej

Limity obciążenia na kanał (według specyfikacji Shelly) wynoszą **45 W przy 12 V** i **90 W przy 24 V**. Łączne obciążenie wszystkich czterech kanałów nie może przekraczać 144 W przy 12 V lub 288 W przy 24 V.

## Konfiguracja

Szablon łączy się przez Wi-Fi. Podczas importu szablonu w TapHome wprowadź adres IP urządzenia (domyślny placeholder `192.168.0.1`) i opcjonalny transition time w milisekundach (domyślnie `300`).

Transition time określa, jak szybko każdy kanał przechodzi między poziomami jasności. Jest wysyłany z każdym poleceniem zapisu i definiuje również okno debounce — szablon ignoruje odpytywane wartości jasności przez `transitionTime + 500 ms` po każdym zapisie, aby zapobiec nieaktualnym odczytom podczas przejścia.

## Przełączanie trybu

Jeśli urządzenie jest obecnie w trybie Color, przełącz je w tryb White przed zaimportowaniem tego szablonu. Albo:

- Otwórz interfejs web Shelly pod adresem `http://{device-ip}` i zmień tryb pracy w ustawieniach, albo
- Wyślij bezpośrednio `GET /settings?mode=white`, albo
- Zaimportuj tymczasowo szablon Color i użyj jego akcji serwisowej **Set mode White**, a następnie ponownie zaimportuj ten szablon White

Zmiana trybu wymaga restartu urządzenia. Po ponownym uruchomieniu urządzenia ponownie zaimportuj szablon White w TapHome.

## Możliwości urządzenia

### Cztery niezależne ściemniacze

Szablon udostępnia cztery niezależne kanały ściemniające, po jednym na wyjście PWM:

| Kanał | Pin wyjścia | Endpoint     | Interwał odpytywania |
|-------|-------------|--------------|----------------------|
| Ch1   | R           | `/light/0`   | 2,5 s                |
| Ch2   | G           | `/light/1`   | 2,5 s                |
| Ch3   | B           | `/light/2`   | 2,5 s                |
| Ch4   | W           | `/light/3`   | 2,5 s                |

Każdy ściemniacz odczytuje `lights[N].ison` i `lights[N].brightness` (0–100, znormalizowane do 0–1) z odpowiedzi `/status`. Polecenia zapisu używają `/light/N?turn=on|off&brightness=VALUE&transition=T`. Szablon używa starszego endpointu `/light/{idx}`, który firmware Shelly akceptuje jako alias obecnego endpointu `/white/{idx}`.

### Pomiar energii na kanał

Każdy kanał ma własny licznik energii — od **Electric Meter Ch1** do **Electric Meter Ch4** — odczytując z `meters[0]` do `meters[3]`:

- **Moc chwilowa** — `meters[N].power` w watach, przeliczana na kW
- **Całkowite zużycie** — `meters[N].total` w wato-minutach, przeliczane na kWh

Kanał 1 jest odpytywany co 2,5 s razem ze swoim ściemniaczem; kanały 2–4 odpytywane są w 15-sekundowych interwałach, aby zmniejszyć obciążenie stosu HTTP Gen1 (który toleruje tylko dwa równoczesne połączenia).

### Diagnostyka serwisowa

Szablon udostępnia 10 atrybutów serwisowych do monitorowania urządzenia:

- **Sieć** — adres IP, adres MAC (sformatowany z dwukropkami), siła sygnału Wi-Fi (dB)
- **Łączność** — cloud włączona/połączona, MQTT połączona
- **Informacje o urządzeniu** — czas urządzenia, czas pracy (sformatowany jako dni/godziny/minuty), wykorzystanie RAM
- **Firmware** — dostępna aktualizacja firmware

### Akcje serwisowe

Dostępne są trzy akcje serwisowe:

- **Włącz chmurę** — włącza lub wyłącza łączność z Shelly Cloud
- **Restart** — uruchamia restart urządzenia
- **Ustaw tryb White** — zapisuje `/settings?mode=white`, aby wymusić tryb pracy White (przydatne po resecie fabrycznym lub gdy ktoś zmienił tryb przez aplikację Shelly)

Shelly Cloud API **nie** jest używane przez ten szablon — komunikacja odbywa się wyłącznie lokalnym odpytywaniem HTTP.

## Rozwiązywanie problemów

### Urządzenie nie odpowiada

1. Sprawdź, czy Shelly jest podłączony do Wi-Fi i ma prawidłowy adres IP
2. Spróbuj użyć nazwy mDNS (`shellyrgbw2-AABBCCDDEE.local`) zamiast adresu IP — IP mogło się zmienić po odnowieniu DHCP
3. Otwórz `http://{device-ip}/shelly` w przeglądarce — jeśli odpowiada, urządzenie jest osiągalne
4. Sprawdź, czy TapHome CCU i Shelly są w tej samej sieci / VLAN

### Błąd „Mode White is not supported"

Ten błąd oznacza, że urządzenie jest obecnie ustawione w tryb Color. Aby rozwiązać:

1. Otwórz interfejs web Shelly pod adresem `http://{device-ip}` i przełącz tryb pracy na White, albo
2. Wyślij bezpośrednio `GET /settings?mode=white` z przeglądarki lub curl, albo
3. Jeśli masz zaimportowany szablon trybu Color, uruchom stamtąd akcję serwisową **Ustaw tryb White**
4. Urządzenie musi się zrestartować po zmianie trybu — poczekaj kilka sekund i odśwież TapHome

### Odczyty mocy pokazują zero

1. Sprawdź, że białe LED są podłączone do odpowiedniego wyjścia Shelly RGBW2 (pin R, G, B lub W)
2. Otwórz aplikację lub interfejs web Shelly i zweryfikuj, czy model urządzenia jest skonfigurowany w Settings -> Device Model — bez tego licznik zwraca zero
3. Sprawdź, czy kanał jest włączony — licznik odczytuje tylko, gdy prąd płynie przez wyjście
4. Odpytaj `/status` ręcznie i sprawdź, czy `meters[N].power` zwraca wartość różną od zera dla danego kanału

### Kanał nie ściemnia płynnie

1. Sprawdź, czy parametr transition time odpowiada oczekiwanemu zachowaniu — domyślne 300 ms to krótkie przejście; dłuższe wartości (np. 1500 ms) dają wolniejsze przejścia
2. Pamiętaj, że okno debounce wynosi `transitionTime + 500 ms` — zmiany wysyłane szybciej mogą zostać połączone
3. Sprawdź, czy obciążenie LED jest ściemnialne (niektóre sterowniki nie są kompatybilne z PWM) oraz czy zasilacz zapewnia stabilne 12/24 V DC

> [!WARNING]
> Urządzenia Shelly Gen1 obsługują tylko **2 równoczesne połączenia HTTP**. Jeśli TapHome i inny system (np. Home Assistant) odpytują to samo urządzenie jednocześnie, komunikacja może stać się zawodna. Utrzymuj interwał odpytywania na poziomie 10–30 sekund dla każdego dodatkowego klienta.

## Jak zainstalować w TapHome

### Wymagania wstępne

- Urządzenie Shelly zainstalowane i włączone
- Lokalna sieć Wi-Fi (2,4 GHz)
- TapHome CCU w tej samej sieci

### Krok 1 — Podłącz Shelly do Wi-Fi

**Opcja A — Aplikacja Shelly (zalecana):**

1. Pobierz [aplikację Shelly](https://www.shelly.com/en/support/shelly-app) (iOS / Android)
2. Dotknij **+** → **Add Device** i postępuj zgodnie z kreatorem parowania Bluetooth
3. Wprowadź dane logowania Wi-Fi, gdy zostaniesz o to poproszony

**Opcja B — Tryb AP (bez aplikacji):**

1. Przy pierwszym uruchomieniu urządzenie tworzy hotspot: `ShellyXXX-AABBCCDDEE`
2. Połącz telefon/PC z tym hotspotem
3. Otwórz `http://192.168.33.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Wprowadź SSID i hasło → **Save**

> [!NOTE]
> Shelly obsługuje tylko sieci **2,4 GHz**. Sieci 5 GHz nie pojawią się podczas skanowania.

### Krok 2 — Znajdź adres IP

Po połączeniu z Wi-Fi znajdź przypisany adres IP za pomocą jednej z poniższych metod:

- **Aplikacja Shelly:** Szczegóły urządzenia → **Device info** → Adres IP
- **Interfejs webowy Shelly:** Połącz się z AP urządzenia przed konfiguracją Wi-Fi — IP zostanie wyświetlone po zapisaniu
- **Tabela DHCP routera:** Szukaj nazwy hosta takiej jak `shelly1pm-AABBCCDDEE`
- **mDNS:** Pinguj `shelly<model>-<mac>.local` (np. `shelly1pm-AABBCCDDEE.local`) z tej samej sieci

> [!TIP]
> Przypisz urządzeniu Shelly **statyczny IP** (rezerwację DHCP) w routerze, aby adres nie zmieniał się po ponownym uruchomieniu routera.

### Krok 3 — Konfiguracja w TapHome

1. W TapHome dodaj nowy moduł **Packet Parser (HTTP)**
2. **IP Address:** wprowadź IP z kroku 2 (np. `192.168.1.50`)
3. **Port:** `80` (domyślny, nie wymaga zmiany)
4. Zaimportuj szablon — TapHome będzie okresowo odpytywać `/status` w celu odczytu stanu urządzenia

> [!NOTE]
> Uwierzytelnianie HTTP jest domyślnie wyłączone na urządzeniach Shelly. Jeśli włączyłeś ochronę logowaniem, TapHome obecnie nie obsługuje HTTP Basic Auth — pozostaw uwierzytelnianie wyłączone dla integracji z TapHome.

## Dostępne urządzenia 8

Te urządzenia pojawią się w TapHome po imporcie.

Shelly RGBW2 White Moduł

Atrybuty serwisowe

|                          |                                                                                                                |
|--------------------------|----------------------------------------------------------------------------------------------------------------|
| Adres IP                 | Aktualny adres IP przypisany do urządzenia (odczyt /status -&gt; wifi\_sta.ip)                                 |
| Adres MAC                | Adres MAC urządzenia sformatowany z dwukropkami (odczyt /status -&gt; mac)                                     |
| Sygnał WiFi              | Siła sygnału Wi-Fi w dB (odczyt /status -&gt; wifi\_sta.rssi)                                                  |
| Chmura włączona          | Czy Shelly Cloud jest włączona na urządzeniu (odczyt /status -&gt; cloud.enabled)                              |
| Chmura połączona         | Czy urządzenie jest aktualnie połączone z Shelly Cloud (odczyt /status -&gt; cloud.connected)                  |
| MQTT połączony           | Czy urządzenie jest aktualnie połączone z brokerem MQTT (odczyt /status -&gt; mqtt.connected)                  |
| Czas urządzenia          | Aktualny czas zgłaszany przez urządzenie (odczyt /status -&gt; time)                                           |
| Dostępna aktualizacja FW | True, jeśli dostępna jest aktualizacja firmware dla urządzenia (odczyt /status -&gt; has\_update)              |
| Czas pracy               | Czas, który upłynął od ostatniego restartu, sformatowany jako dni/godziny/minuty (odczyt /status -&gt; uptime) |
| RAM                      | Całkowita i wolna pamięć RAM w bajtach (odczyt /status -&gt; ram\_total, ram\_free)                            |

Akcje serwisowe

|                  |                                                                                                                                    |
|------------------|------------------------------------------------------------------------------------------------------------------------------------|
| Włącz chmurę     | Włącz lub wyłącz łączność Shelly Cloud (zapis /settings/cloud?enabled=...)                                                         |
| Restart          | Wywołaj natychmiastowy restart urządzenia (zapis /reboot)                                                                          |
| Ustaw tryb White | Przełącz urządzenie w tryb pracy White; przed aktywacją nowego trybu wymagany jest restart urządzenia (zapis /settings?mode=white) |

Zmienne niestandardowe

|                                             |                                                                                                                                                                                                                      |
|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `transitionTime` (numeric) = TransitionTime | Czas trwania przejścia światła w milisekundach (parametr importu, domyślnie 300 ms). Definiuje również okno debounce (transitionTime + 500 ms), podczas którego odpytywane wartości są ignorowane po każdym zapisie. |

Odczyt (moduł)

```taphome
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) = "color"
    adderror("Mode Color is not supported");
    end
ELSE
    jsonStatus := NULL;
END
```

Atrybuty serwisowe

IP Address

```taphome
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

```taphome
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

```taphome
VAR signal := PARSEJSON(jsonStatus, "$.wifi_sta.rssi", 1);
IF (ISNULL(signal), "-", signal + "db");
```

Cloud enabled

```taphome
VAR value := PARSEJSON(jsonStatus, "$.cloud.enabled", 1);
IF (ISNULL(value), "-", value)
```

Cloud connected

```taphome
VAR value := PARSEJSON(jsonStatus, "$.cloud.connected", 1);
IF (ISNULL(value), "-", value)
```

MQTT connected

```taphome
VAR value := PARSEJSON(jsonStatus, "$.mqtt.connected", 1);
IF (ISNULL(value), "-", value)
```

Device time

```taphome
VAR value := PARSEJSON(jsonStatus, "$.time", 1);
IF (ISNULL(value), "-", value)
```

FW update available

```taphome
VAR value := PARSEJSON(jsonStatus, "$.has_update");
IF (ISNULL(value), "-", value)
```

Uptime

```taphome
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

```taphome
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
```

Akcje serwisowe

Enable cloud

Parametry: Enable (Enable / Disable)

```taphome
VAR response := SENDHTTPREQUEST("/settings/cloud?enabled=" + enable);
VAR contentJson := response.Content;
VAR wasEnabled := PARSEJSON(contentJson, "enabled");

IF(wasEnabled, "Cloud enabled", "Cloud disabled");
```

Reboot

```taphome
VAR response := SENDHTTPREQUEST("/reboot");
VAR contentJson := response.Content;
VAR wasRebooted := PARSEJSON(contentJson, "ok");

IF(wasRebooted, "Reboot successful", "Error");
```

Set mode White

```taphome
VAR response := SENDHTTPREQUEST("/settings?mode=white");
IF(response.isSuccess, "White mode is set", "Error");
```

Licznik energii Ch1 Licznik energii Tylko do odczytu

Zużycie kanału 1 (pin R) — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
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
```

Odczyt zapotrzebowania

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
```

Ściemniacz Ch1 (R) Ściemniacz Odczyt i zapis

Ściemniacz biały kanału 1 (wyjście pin R) — jasność 0-100 % przez endpoint /light/0

numeric Jednostka: 0–1

Odczyt poziomu

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR now := NOW();
var tmp := now.Ticks - debounceTimestamp;
if now.Ticks > debounceTimestamp
    BOOL isOn := PARSEJSON(jsonStatus, "$.lights[0].ison");
    var brightness := PARSEJSON(jsonStatus, "$.lights[0].brightness");

    if isOn
        return(brightness / 100);
    else
        return(0);
    end
else
    return(le);
end
```

Zapis poziomu

```taphome
IF St > 0.5
    SENDHTTPREQUEST("light/0?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Le*100.0));
ELSE
    SENDHTTPREQUEST("light/0?turn=off&transition=" + transitionTime);
END

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Licznik energii Ch2 Licznik energii Tylko do odczytu

Zużycie kanału 2 (pin G) — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[1].power");
VAR total := PARSEJSON(jsonStatus, "$.meters[1].total");
BOOL isOn := PARSEJSON(jsonStatus, "$.lights[1].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
```

Odczyt zapotrzebowania

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
```

Ściemniacz Ch2 (G) Ściemniacz Odczyt i zapis

Ściemniacz biały kanału 2 (wyjście pin G) — jasność 0-100 % przez endpoint /light/1

numeric Jednostka: 0–1

Odczyt poziomu

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR now := NOW();
var tmp := now.Ticks - debounceTimestamp;
if now.Ticks > debounceTimestamp
    BOOL isOn := PARSEJSON(jsonStatus, "$.lights[1].ison");
    var brightness := PARSEJSON(jsonStatus, "$.lights[1].brightness");

    if isOn
        return(brightness / 100);
    else
        return(0);
    end
else
    return(le);
end
```

Zapis poziomu

```taphome
IF St > 0.5
    SENDHTTPREQUEST("light/1?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Le*100.0));
ELSE
    SENDHTTPREQUEST("light/1?turn=off&transition=" + transitionTime);
END

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Licznik energii Ch3 Licznik energii Tylko do odczytu

Zużycie kanału 3 (pin B) — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[2].power");
VAR total := PARSEJSON(jsonStatus, "$.meters[2].total");
BOOL isOn := PARSEJSON(jsonStatus, "$.lights[2].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
```

Odczyt zapotrzebowania

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
```

Ściemniacz Ch3 (B) Ściemniacz Odczyt i zapis

Ściemniacz biały kanału 3 (wyjście pin B) — jasność 0-100 % przez endpoint /light/2

numeric Jednostka: 0–1

Odczyt poziomu

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR now := NOW();
var tmp := now.Ticks - debounceTimestamp;
if now.Ticks > debounceTimestamp
    BOOL isOn := PARSEJSON(jsonStatus, "$.lights[2].ison");
    var brightness := PARSEJSON(jsonStatus, "$.lights[2].brightness");

    if isOn
        return(brightness / 100);
    else
        return(0);
    end
else
    return(le);
end
```

Zapis poziomu

```taphome
IF St > 0.5
    SENDHTTPREQUEST("light/2?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Le*100.0));
ELSE
    SENDHTTPREQUEST("light/2?turn=off&transition=" + transitionTime);
END

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

Licznik energii Ch4 Licznik energii Tylko do odczytu

Zużycie kanału 4 (pin W) — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Odczyt całkowitego zużycia

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR power := PARSEJSON(jsonStatus, "$.meters[3].power");
VAR total := PARSEJSON(jsonStatus, "$.meters[3].total");
BOOL isOn := PARSEJSON(jsonStatus, "$.lights[3].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
```

Odczyt zapotrzebowania

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
```

Ściemniacz Ch4 (W) Ściemniacz Odczyt i zapis

Ściemniacz biały kanału 4 (wyjście pin W) — jasność 0-100 % przez endpoint /light/3

numeric Jednostka: 0–1

Odczyt poziomu

```taphome
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

VAR now := NOW();
var tmp := now.Ticks - debounceTimestamp;
if now.Ticks > debounceTimestamp
    BOOL isOn := PARSEJSON(jsonStatus, "$.lights[3].ison");
    var brightness := PARSEJSON(jsonStatus, "$.lights[3].brightness");

    if isOn
        return(brightness / 100);
    else
        return(0);
    end
else
    return(le);
end
```

Zapis poziomu

```taphome
IF St > 0.5
    SENDHTTPREQUEST("light/3?turn=on&transition=" + transitionTime + "&brightness=" + ROUND(Le*100.0));
ELSE
    SENDHTTPREQUEST("light/3?turn=off&transition=" + transitionTime);
END

VAR now := NOW();
debounceTimestamp := now.Ticks + transitionTime + 500;
```

**Połączenie:** Packet Parser → HTTP • Hostname: `shellyrgbw2-{MAC}.local`

Możliwe ulepszenia (10)

- Auto-off timer per channel — Each /white/{idx} (or legacy /light/{idx}) accepts a timer=N parameter for auto-off countdown; timer\_remaining is readable from /status
- Per-channel default state & auto-on/auto-off — Per-channel settings (default\_state off/on/last, auto\_on, auto\_off, name) — not exposed as service action
- Night mode (per channel) — Time-window auto-dim (enabled, start\_time, end\_time, brightness) per white channel — fw v1.12.0+
- Input State — Physical button/switch input state (0/1), available in /status response
- WiFi RSSI (numeric) — WiFi RSSI in dBm as numeric value — template reads it only as a formatted 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
- Set mode Color — Switch back to Color mode — template only exposes Set mode White; inverse action omitted (by design, this template is White-only)

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji  | Domyślnie     |
|----------------------|---------------|
| Adres IP             | `192.168.0.1` |
| Transition time (ms) | `300`         |

## Źródła

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12
- Shelly RGBW2 API — Color & White Mode Endpoints
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-rgbw2-white-mode) 2026-03-30
- Shelly RGBW2 Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-rgbw2) 2026-03-30

## Powiązana dokumentacja

- [Integracja Packet Parser](https://taphome.com/pl/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)

