TapHome

Shelly RGBW2 White

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 06. 2026
Shelly RGBW2 White

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 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.

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ściaEndpointInterwał odpytywania
Ch1R/light/02,5 s
Ch2G/light/12,5 s
Ch3B/light/22,5 s
Ch4W/light/32,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 chwilowameters[N].power w watach, przeliczana na kW
  • Całkowite zużyciemeters[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

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 (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.1Internet & SecurityWi-Fi Mode - Client
  4. Wprowadź SSID i hasło → Save

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

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

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

Shelly RGBW2 White Moduł
Atrybuty serwisowe
Adres IPAktualny adres IP przypisany do urządzenia (odczyt /status -> wifi_sta.ip)
Adres MACAdres MAC urządzenia sformatowany z dwukropkami (odczyt /status -> mac)
Sygnał WiFiSiła sygnału Wi-Fi w dB (odczyt /status -> wifi_sta.rssi)
Chmura włączonaCzy Shelly Cloud jest włączona na urządzeniu (odczyt /status -> cloud.enabled)
Chmura połączonaCzy urządzenie jest aktualnie połączone z Shelly Cloud (odczyt /status -> cloud.connected)
MQTT połączonyCzy urządzenie jest aktualnie połączone z brokerem MQTT (odczyt /status -> mqtt.connected)
Czas urządzeniaAktualny czas zgłaszany przez urządzenie (odczyt /status -> time)
Dostępna aktualizacja FWTrue, jeśli dostępna jest aktualizacja firmware dla urządzenia (odczyt /status -> has_update)
Czas pracyCzas, który upłynął od ostatniego restartu, sformatowany jako dni/godziny/minuty (odczyt /status -> uptime)
RAMCałkowita i wolna pamięć RAM w bajtach (odczyt /status -> ram_total, ram_free)
Akcje serwisowe
Włącz chmuręWłącz lub wyłącz łączność Shelly Cloud (zapis /settings/cloud?enabled=...)
RestartWywołaj natychmiastowy restart urządzenia (zapis /reboot)
Ustaw tryb WhitePrzełącz urządzenie w tryb pracy White; przed aktywacją nowego trybu wymagany jest restart urządzenia (zapis /settings?mode=white)
Zmienne niestandardowe
transitionTime (numeric) = TransitionTimeCzas 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.

Shelly RGBW2 White

Odczyt (moduł)
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
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
Akcje serwisowe
Enable cloud
Parametry: 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 White
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

Licznik energii Ch1

Odczyt całkowitego zużycia
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
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

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

numeric Jednostka: 0–1

Ściemniacz Ch1 (R)

Odczyt poziomu
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
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

Licznik energii Ch2

Odczyt całkowitego zużycia
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
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

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

numeric Jednostka: 0–1

Ściemniacz Ch2 (G)

Odczyt poziomu
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
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

Licznik energii Ch3

Odczyt całkowitego zużycia
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
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

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

numeric Jednostka: 0–1

Ściemniacz Ch3 (B)

Odczyt poziomu
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
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

Licznik energii Ch4

Odczyt całkowitego zużycia
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
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

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

numeric Jednostka: 0–1

Ściemniacz Ch4 (W)

Odczyt poziomu
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
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
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)

Źródła

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Zweryfikowane przez TapHome

Chcesz tego użyć w swoim TapHome Core?

Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu.

Otwórz w portalu