TapHome

Shelly RGBW2 White

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 06. 2026
Shelly RGBW2 White

Der Shelly RGBW2 ist ein Wi-Fi-LED-Streifen-Controller mit vier PWM-Ausgängen (12/24 V DC). Im White-Modus werden die vier Ausgänge — normalerweise für R, G, B und W eines RGBW-Streifens verwendet — zu vier unabhängigen einfarbigen Dimmerkanälen. Jeder Kanal kann seinen eigenen weißen LED-Streifen, seine LED-Lampe oder seine Spotgruppe ansteuern. TapHome kommuniziert mit dem Gerät über HTTP im lokalen Netzwerk; eine Cloud-Verbindung ist nicht erforderlich.

Diese Vorlage ist das White-Modus-Gegenstück zur Shelly RGBW2 Color-Modus-Vorlage. Beide Vorlagen teilen sich dieselbe Hardware, aber die Firmware arbeitet in sich gegenseitig ausschließenden Modi, die in den Geräteeinstellungen ausgewählt werden. Vor dem Import dieser Vorlage muss das Gerät im White-Modus konfiguriert sein — die Vorlage validiert den Modus bei jeder Abfrage und zeigt einen Fehler, wenn das Gerät auf Color eingestellt ist.

Shelly hat den RGBW2 als ausgelaufen gekennzeichnet — er wird von der Shelly Group nicht mehr hergestellt oder verkauft. Bestehende Einheiten funktionieren weiterhin und erhalten Firmware-Updates.

Verkabelung

Der Shelly RGBW2 wird aus einer 12 V oder 24 V DC-Versorgung (V+ / GND) gespeist. Jeder der vier Ausgänge (am Gerät mit R, G, B, W beschriftet) treibt eine weiße LED-Last. Typische Verkabelungsvarianten für den White-Modus:

  • Vier unabhängige weiße LED-Streifen oder Lampen — jeder Kanal steuert einen Streifen/eine Lampe, gemeinsame Anode (+) an V+
  • Mehrere Spots pro Kanal — mehrere 12/24 V-Spots parallel pro Ausgang verdrahtet
  • Zwei weiße Streifen mit verdoppelter Leistung — zwei Kanäle pro Streifen (parallel) gekoppelt, um die Ausgangsleistung zu verdoppeln

Die Lastgrenzen pro Kanal (laut Shelly-Spezifikation) betragen 45 W bei 12 V und 90 W bei 24 V. Die kombinierte Last aller vier Kanäle darf 144 W bei 12 V bzw. 288 W bei 24 V nicht überschreiten.

Konfiguration

Die Vorlage verbindet sich über Wi-Fi. Geben Sie beim TapHome-Vorlagenimport die IP-Adresse des Geräts (Standard-Platzhalter 192.168.0.1) und eine optionale Transition Time in Millisekunden (Standard 300) ein.

Die Transition Time steuert, wie schnell jeder Kanal zwischen Helligkeitsstufen überblendet. Sie wird bei jedem Schreibbefehl gesendet und definiert zugleich das Entprellfenster — die Vorlage ignoriert abgefragte Helligkeitswerte für transitionTime + 500 ms nach jedem Schreibvorgang, um veraltete Lesewerte während einer Überblendung zu verhindern.

Modusumschaltung

Wenn sich das Gerät derzeit im Color-Modus befindet, schalten Sie es vor dem Import dieser Vorlage in den White-Modus. Entweder:

  • Öffnen Sie die Shelly-Weboberfläche unter http://{device-ip} und ändern Sie den Betriebsmodus in den Einstellungen, oder
  • Senden Sie direkt GET /settings?mode=white, oder
  • Importieren Sie vorübergehend die Color-Modus-Vorlage und verwenden Sie deren Service-Aktion Set mode White, dann re-importieren Sie diese White-Modus-Vorlage

Modusänderungen erfordern einen Geräteneustart. Nach dem Neustart importieren Sie die White-Modus-Vorlage erneut in TapHome.

Gerätefähigkeiten

Vier unabhängige Dimmer

Die Vorlage stellt vier unabhängige Dimmerkanäle bereit, einen pro PWM-Ausgang:

KanalAusgangspinEndpointAbfrageintervall
Ch1R/light/02,5 s
Ch2G/light/12,5 s
Ch3B/light/22,5 s
Ch4W/light/32,5 s

Jeder Dimmer liest lights[N].ison und lights[N].brightness (0–100, normiert auf 0–1) aus der /status-Antwort. Schreibbefehle verwenden /light/N?turn=on|off&brightness=VALUE&transition=T. Die Vorlage verwendet den Legacy-Endpoint /light/{idx}, den die Shelly-Firmware als Alias des aktuellen /white/{idx}-Endpoints akzeptiert.

Energiemessung pro Kanal

Jeder Kanal verfügt über einen eigenen Stromzähler — Electric Meter Ch1 bis Electric Meter Ch4 — der aus meters[0] bis meters[3] liest:

  • Momentane Leistungmeters[N].power in Watt, in kW konvertiert
  • Gesamtverbrauchmeters[N].total in Watt-Minuten, in kWh konvertiert

Kanal 1 wird alle 2,5 s zusammen mit seinem Dimmer abgefragt; Kanäle 2–4 werden im 15-s-Intervall abgefragt, um die Last auf den Gen1-HTTP-Stack (der nur zwei gleichzeitige Verbindungen toleriert) zu reduzieren.

Service-Diagnose

Die Vorlage stellt 10 Service-Attribute zur Geräteüberwachung bereit:

  • Netzwerk — IP-Adresse, MAC-Adresse (mit Doppelpunkten formatiert), Wi-Fi-Signalstärke (dB)
  • Konnektivität — Cloud aktiviert/verbunden, MQTT verbunden
  • Geräteinfo — Gerätezeit, Betriebszeit (formatiert als Tage/Stunden/Minuten), RAM-Nutzung
  • Firmware — Firmware-Update verfügbar
Service-Aktionen

Drei Service-Aktionen stehen zur Verfügung:

  • Cloud aktivieren — aktiviert oder deaktiviert die Shelly-Cloud-Verbindung
  • Neustart — löst einen Geräteneustart aus
  • Modus White einstellen — schreibt /settings?mode=white, um den White-Betriebsmodus durchzusetzen (nützlich nach einem Werksreset oder falls jemand den Modus über die Shelly-App geändert hat)

Die Shelly Cloud API wird von dieser Vorlage nicht verwendet — die Kommunikation erfolgt ausschließlich über lokales HTTP-Polling.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfen Sie, dass der Shelly mit Wi-Fi verbunden ist und eine gültige IP-Adresse besitzt
  2. Versuchen Sie den mDNS-Hostnamen (shellyrgbw2-AABBCCDDEE.local) anstelle der IP-Adresse — die IP kann sich nach einer DHCP-Erneuerung geändert haben
  3. Öffnen Sie http://{device-ip}/shelly im Browser — wenn er antwortet, ist das Gerät erreichbar
  4. Prüfen Sie, dass TapHome CCU und Shelly im selben Netzwerk / VLAN sind
Fehler „Mode White is not supported"

Dieser Fehler bedeutet, dass das Gerät derzeit auf Color-Modus eingestellt ist. So beheben Sie ihn:

  1. Öffnen Sie die Shelly-Weboberfläche unter http://{device-ip} und schalten Sie den Betriebsmodus auf White, oder
  2. Senden Sie direkt GET /settings?mode=white aus einem Browser oder per curl, oder
  3. Wenn Sie die Color-Modus-Vorlage importiert haben, führen Sie von dort die Service-Aktion Modus White einstellen aus
  4. Das Gerät muss nach einer Modusänderung neu starten — warten Sie einige Sekunden und laden Sie TapHome neu
Leistungsmessung zeigt Null
  1. Stellen Sie sicher, dass weiße LEDs an den entsprechenden Shelly-RGBW2-Ausgang (Pin R, G, B oder W) angeschlossen sind
  2. Öffnen Sie die Shelly-App oder Weboberfläche und prüfen Sie, dass das Gerätemodell unter Settings -> Device Model konfiguriert ist — ohne dies liefert der Zähler null
  3. Prüfen Sie, dass der Kanal eingeschaltet ist — der Zähler liest nur, wenn Strom durch den Ausgang fließt
  4. Fragen Sie /status manuell ab und bestätigen Sie, dass meters[N].power für den betreffenden Kanal einen von null verschiedenen Wert zurückgibt
Kanal dimmt nicht sauber
  1. Prüfen Sie, dass der Transition-Time-Parameter dem erwarteten Verhalten entspricht — der Standard von 300 ms ist eine kurze Überblendung; längere Werte (z. B. 1500 ms) erzeugen langsamere Überblendungen
  2. Beachten Sie, dass das Entprellfenster transitionTime + 500 ms beträgt — schneller gesendete Änderungen können zusammengefasst werden
  3. Stellen Sie sicher, dass die LED-Last dimmbar ist (einige Treiber sind nicht PWM-kompatibel) und dass die Stromversorgung stabile 12/24 V DC liefert

Gen1-Shelly-Geräte unterstützen nur 2 gleichzeitige HTTP-Verbindungen. Wenn TapHome und ein anderes System (z. B. Home Assistant) dasselbe Gerät gleichzeitig abfragen, kann die Kommunikation unzuverlässig werden. Halten Sie das Abfrageintervall pro zusätzlichem Client bei 10–30 Sekunden.

Installation in TapHome

Voraussetzungen

  • Shelly-Gerät installiert und eingeschaltet
  • Lokales Wi-Fi-Netzwerk (2,4 GHz)
  • TapHome CCU im selben Netzwerk

Schritt 1 — Shelly mit Wi-Fi verbinden

Option A — Shelly-App (empfohlen):

  1. Laden Sie die Shelly-App herunter (iOS / Android)
  2. Tippen Sie auf +Add Device und folgen Sie dem Bluetooth-Kopplungsassistenten
  3. Geben Sie Ihre Wi-Fi-Zugangsdaten ein, wenn Sie dazu aufgefordert werden

Option B — AP-Modus (ohne App):

  1. Beim ersten Einschalten erstellt das Gerät einen Hotspot: ShellyXXX-AABBCCDDEE
  2. Verbinden Sie Ihr Telefon/PC mit diesem Hotspot
  3. Öffnen Sie http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Geben Sie SSID und Passwort ein → Save

Shelly unterstützt nur 2,4 GHz-Netzwerke. 5 GHz-Netzwerke werden beim Scannen nicht angezeigt.

Schritt 2 — IP-Adresse ermitteln

Nach der Verbindung mit Wi-Fi ermitteln Sie die zugewiesene IP-Adresse auf eine der folgenden Arten:

  • Shelly-App: Gerätedetail → Device info → IP-Adresse
  • Shelly-Weboberfläche: Verbinden Sie sich mit dem Geräte-AP vor der Wi-Fi-Einrichtung — die IP wird nach dem Speichern angezeigt
  • Router-DHCP-Tabelle: Suchen Sie nach einem Hostnamen wie shelly1pm-AABBCCDDEE
  • mDNS: Pingen Sie shelly<model>-<mac>.local (z. B. shelly1pm-AABBCCDDEE.local) aus dem selben Netzwerk

Weisen Sie dem Shelly-Gerät eine statische IP (DHCP-Reservierung) in Ihrem Router zu, damit sich die Adresse nach einem Router-Neustart nicht ändert.

Schritt 3 — Konfiguration in TapHome

  1. Fügen Sie in TapHome ein neues Modul Packet Parser (HTTP) hinzu
  2. IP Address: Geben Sie die IP aus Schritt 2 ein (z. B. 192.168.1.50)
  3. Port: 80 (Standard, keine Änderung erforderlich)
  4. Importieren Sie die Vorlage — TapHome fragt regelmäßig /status ab, um den Gerätestatus zu lesen

Die HTTP-Authentifizierung ist auf Shelly-Geräten standardmäßig deaktiviert. Wenn Sie den Anmeldeschutz aktiviert haben, unterstützt TapHome derzeit kein HTTP Basic Auth — lassen Sie die Authentifizierung für die TapHome-Integration deaktiviert.

Verfügbare Geräte

Shelly RGBW2 White Modul
Serviceattribute
IP-AdresseAktuelle dem Gerät zugewiesene IP-Adresse (liest /status -> wifi_sta.ip)
MAC-AdresseMAC-Adresse des Geräts, mit Doppelpunkten formatiert (liest /status -> mac)
WLAN-SignalWi-Fi-Signalstärke in dB (liest /status -> wifi_sta.rssi)
Cloud aktiviertOb Shelly Cloud auf dem Gerät aktiviert ist (liest /status -> cloud.enabled)
Cloud verbundenOb das Gerät derzeit mit Shelly Cloud verbunden ist (liest /status -> cloud.connected)
MQTT verbundenOb das Gerät derzeit mit einem MQTT-Broker verbunden ist (liest /status -> mqtt.connected)
GerätezeitAktuelle vom Gerät gemeldete Zeit (liest /status -> time)
FW-Update verfügbarTrue, wenn ein Firmware-Update für das Gerät verfügbar ist (liest /status -> has_update)
BetriebszeitZeit seit dem letzten Neustart, formatiert als Tage/Stunden/Minuten (liest /status -> uptime)
RAMRAM gesamt und frei in Bytes (liest /status -> ram_total, ram_free)
Serviceaktionen
Cloud aktivierenShelly Cloud-Verbindung aktivieren oder deaktivieren (schreibt /settings/cloud?enabled=...)
NeustartSofortigen Neustart des Geräts auslösen (schreibt /reboot)
Modus White einstellenGerät in den White-Betriebsmodus schalten; vor dem Aktivieren des neuen Modus ist ein Geräteneustart erforderlich (schreibt /settings?mode=white)
Benutzerdefinierte Variablen
transitionTime (numeric) = TransitionTimeDauer des Lichtübergangs in Millisekunden (Importparameter, Standard 300 ms). Definiert außerdem das Entprellfenster (transitionTime + 500 ms), während dessen abgefragte Werte nach jedem Schreibvorgang ignoriert werden.

Shelly RGBW2 White

Lesen (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) = "color"
    adderror("Mode Color is not supported");
    end
ELSE
    jsonStatus := NULL;
END
Serviceattribute
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
Serviceaktionen
Enable cloud
Parameter: 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");
Stromzähler Ch1 Stromzähler Nur lesen

Kanal 1 (Pin R) Leistungsaufnahme — momentane Leistung (kW) und kumulierter Energieverbrauch (kWh)

numeric Einheit: W / kWh

Stromzähler Ch1

Gesamtverbrauch lesen
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
Bedarf lesen
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
Dimmer Ch1 (R) Dimmer

Weiß-Dimmer Kanal 1 (Ausgang R Pin) — Helligkeit 0-100 % über /light/0 Endpoint

numeric Einheit: 0–1

Dimmer Ch1 (R)

Level lesen
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
Level schreiben
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;
Stromzähler Ch2 Stromzähler Nur lesen

Kanal 2 (Pin G) Leistungsaufnahme — momentane Leistung (kW) und kumulierter Energieverbrauch (kWh)

numeric Einheit: W / kWh

Stromzähler Ch2

Gesamtverbrauch lesen
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
Bedarf lesen
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
Dimmer Ch2 (G) Dimmer

Weiß-Dimmer Kanal 2 (Ausgang G Pin) — Helligkeit 0-100 % über /light/1 Endpoint

numeric Einheit: 0–1

Dimmer Ch2 (G)

Level lesen
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
Level schreiben
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;
Stromzähler Ch3 Stromzähler Nur lesen

Kanal 3 (Pin B) Leistungsaufnahme — momentane Leistung (kW) und kumulierter Energieverbrauch (kWh)

numeric Einheit: W / kWh

Stromzähler Ch3

Gesamtverbrauch lesen
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
Bedarf lesen
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
Dimmer Ch3 (B) Dimmer

Weiß-Dimmer Kanal 3 (Ausgang B Pin) — Helligkeit 0-100 % über /light/2 Endpoint

numeric Einheit: 0–1

Dimmer Ch3 (B)

Level lesen
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
Level schreiben
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;
Stromzähler Ch4 Stromzähler Nur lesen

Kanal 4 (Pin W) Leistungsaufnahme — momentane Leistung (kW) und kumulierter Energieverbrauch (kWh)

numeric Einheit: W / kWh

Stromzähler Ch4

Gesamtverbrauch lesen
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
Bedarf lesen
IF LENGTH(jsonStatus) = 0
    RETURN(NaN);
END

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

IF ISNULL(power)
    RETURN(NaN);
END

power / 1000.0
Dimmer Ch4 (W) Dimmer

Weiß-Dimmer Kanal 4 (Ausgang W Pin) — Helligkeit 0-100 % über /light/3 Endpoint

numeric Einheit: 0–1

Dimmer Ch4 (W)

Level lesen
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
Level schreiben
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;
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (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)

Quellen

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Von TapHome verifiziert

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen