TapHome

Shelly 2.5

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

Der Shelly 2.5 ist ein kompaktes Dual-Kanal-WLAN-Relais mit integrierter Leistungsmessung auf beiden Kanälen. Er passt hinter einen Standard-Wandschalter und kann zwei unabhängige Stromkreise steuern, jeweils bis zu 10 A (2300 W bei 230 V), mit einem Gesamtmaximum von 20 A. Das Gerät unterstützt zwei Betriebsmodi — Relais (zwei unabhängige Schalter) und Rollladen (koordinierte Motorsteuerung) — die TapHome-Vorlage implementiert jedoch nur den Relaismodus. TapHome kommuniziert mit dem Gerät über HTTP im lokalen Netzwerk — keine Cloud-Verbindung erforderlich.

Die Vorlage stellt zwei Relaisschalter und zwei Energiezähler (einen pro Kanal) bereit, plus eine Serviceaktion zum Umschalten zwischen Relais- und Rollladenmodus.

Konfiguration

Der Shelly 2.5 verbindet sich über WLAN. Geben Sie beim TapHome-Vorlagenimport die IP-Adresse des Geräts ein (Standard-Platzhalter 192.168.0.1).

Der aktuelle Betriebsmodus wird als Serviceattribut auf Modulebene (“Mode”) bereitgestellt und kann über die Serviceaktion “Mode” geändert werden. Das Umschalten zwischen Relais- und Rollladenmodus erfordert einen Geräteneustart.

Gerätefunktionen

Relaissteuerung

Die Vorlage stellt zwei unabhängige Relaiskanäle bereit. Der Status jedes Relais wird vom jeweiligen /relay/-Endpunkt gelesen (Feld ison) und über turn=on oder turn=off gesteuert.

  • Kanal 1 — liest und steuert /relay/0
  • Kanal 2 — liest und steuert /relay/1

Jedes Relais hat drei Serviceattribute:

  • Overpower — ob ein Überleistungszustand auf dem Kanal erkannt wurde
  • Overtemperature — ob das Gerät seine sichere Betriebstemperatur überschritten hat
  • Power Meter — Messgültigkeit (OK oder Fehler)
Leistungsmessung

Jeder Kanal hat einen dedizierten Energiezähler, der zwei Werte vom /meter/-Endpunkt liest:

  • Echtzeitleistungpower in Watt, von der Vorlage in kW umgerechnet
  • Gesamtverbrauchtotal in Watt-Minuten, von der Vorlage in kWh umgerechnet

Jeder Energiezähler stellt ein Serviceattribut “Overpower” bereit, das den Überleistungsschwellenwert anzeigt (in Watt, geteilt durch 1000).

Die Zähler sind schreibgeschützt — sie aktualisieren sich automatisch mit jedem Abfragezyklus (15-Sekunden-Intervall).

Bekanntes Problem — Energiewert von Kanal 1 ist 10× zu hoch. Die Vorlage teilt total für Kanal 1 durch 6000 statt durch 60000 (was Kanal 2 korrekt verwendet). Das bedeutet, dass der kumulative Energiewert für Kanal 1 etwa 10-mal höher als der tatsächliche Verbrauch sein wird. Dies ist ein Fehler in der Umrechnungsformel der Vorlage.

Weitere Funktionen

Der Shelly 2.5 unterstützt nativ volle Rollladensteuerung (Öffnen/Schließen/Stopp mit 0–100% Position nach Kalibrierung), gleitende Einminuten-Leistungsdurchschnitte pro Kanal, physische Schaltereingangszustände, interne Gerätetemperatur, WLAN-Signalstärke und Auto-Off-Timer pro Kanal. Das Gerät kann auch bis zu vier bevorzugte Rollladenpositionen speichern. Diese Funktionen können in einer zukünftigen Vorlagenaktualisierung hinzugefügt werden.

Im Vergleich zur Shelly 1PM-Vorlage stellt die Shelly 2.5-Vorlage keine Gerätediagnose bereit wie Hostname, MAC-Adresse, Betriebszeit, RAM-Auslastung, Cloud/MQTT-Status, Firmware-Update-Verfügbarkeit oder interne Temperatur. Es fehlen auch die Leistungsschutz-Serviceaktion (maximale Leistungsgrenze) und die Neustart-Aktion.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfen Sie, dass der Shelly mit dem WLAN verbunden ist und eine gültige IP-Adresse hat
  2. Versuchen Sie den mDNS-Hostnamen (shellyswitch25-AABBCCDDEE.local) anstelle der IP-Adresse — die IP könnte 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. Stellen Sie sicher, dass TapHome CCU und Shelly im selben Netzwerk / VLAN sind
Leistungswerte zeigen Null
  1. Bestätigen Sie, dass die Last über das Shelly-Relais angeschlossen ist (nicht umgangen)
  2. Prüfen Sie, dass das Relais eingeschaltet ist — der Zähler misst nur, wenn Strom durch das Relais fließt
  3. Rufen Sie /meter/0 oder /meter/1 manuell ab und überprüfen Sie, ob power einen Nicht-Null-Wert zurückgibt
Energiesumme von Kanal 1 scheint falsch

Die Vorlage teilt den Gesamtwert von Kanal 1 durch 6000 statt durch das korrekte 60000 (das Kanal 2 verwendet). Dadurch ist der kumulative Energiewert für Kanal 1 10× höher als tatsächlich. In der Vorlage gibt es derzeit keine Abhilfe — der Umrechnungsfaktor ist im Abfrageskript eingebettet.

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. Die Relais-Endpunkte werden alle 2,5 Sekunden und die Zähler-Endpunkte alle 15 Sekunden abgefragt.

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 2.5 Modul
Serviceattribute
Modus
Serviceaktionen
Modus

Shelly2.5

Serviceattribute
Mode
 VAR response := SENDHTTPREQUEST("/settings");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "mode"));
 END
Serviceaktionen
Mode
Parameter: Mode
var St := SWITCH(mo, 1, "roller", "relay");
 VAR response := SENDHTTPREQUEST("/settings?mode=" + St);
Stromzähler — Kanal 1 Stromzähler Nur lesen

Leistungs- und Energiemessung für Kanal 1 — Momentanleistung (kW) und kumulierte Energie (kWh). Hinweis: Energiewert ist 10× zu hoch aufgrund eines Vorlagen-Divisor-Fehlers (/6000 statt /60000)

numeric Einheit: W / kWh
Serviceattribute
Überleistung

Stromzähler — Kanal 1

Gesamtverbrauch lesen
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/6000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Bedarf lesen
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Serviceattribute
Overpower
 VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Stromzähler — Kanal 2 Stromzähler Nur lesen

Leistungs- und Energiemessung für Kanal 2 — Momentanleistung (kW) und kumulierte Energie (kWh)

numeric Einheit: W / kWh
Serviceattribute
Überleistung

Stromzähler — Kanal 2

Gesamtverbrauch lesen
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/60000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Bedarf lesen
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Serviceattribute
Overpower
 VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Relais — Kanal 1 Schalter
boolean
Werte / Zustände: ON · OFF

Relais — Kanal 1

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Schaltzustand schreiben
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/0?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Serviceattribute
Overpower
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
Overtemperature
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
Power Meter
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
Relais — Kanal 2 Schalter
boolean
Werte / Zustände: ON · OFF

Relais — Kanal 2

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Schaltzustand schreiben
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/1?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Serviceattribute
Overpower
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
Overtemperature
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
Power Meter
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (9)
  • Roller Shutter Control — Full roller shutter control (open/close/stop/position 0-100%) — the Shelly 2.5's key dual-mode feature. Template only implements relay mode.
  • Roller Position — Current roller position 0-100% (requires calibration). Not available without /roller/ endpoint.
  • Roller Calibration — Initiates travel-time calibration procedure for position control.
  • Rolling Power Averages — 3 rolling one-minute power averages per channel, available in /meter/ response
  • Input States — Physical switch input states (0/1) for both channels, available in /status response
  • Internal Device Temperature — Internal temperature in C available in /status response (not exposed as a device, only as relay SA)
  • Auto-off Timer — Per-channel auto-off timer in seconds, could be added as service action parameter
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Favorite Positions (Roller Mode) — Up to 4 saved roller shutter positions — only relevant if roller mode is implemented

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