TapHome

Shelly 1PM Gen3

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Shelly 1PM Gen3

Das Shelly 1PM Gen3 ist ein kompaktes Wi-Fi-Relais mit integrierter Leistungsmessung. Es passt hinter einen Standard-Wandschalter und kann einen Stromkreis mit bis zu 16 A (3500 W bei 230 V AC) oder 10 A (bei 24–30 V DC) schalten. TapHome kommuniziert mit dem Gerät über HTTP mittels der Gen2+/Gen3 JSON-RPC 2.0 API im lokalen Netzwerk — eine Cloud-Verbindung ist nicht erforderlich.

Im Gegensatz zum ursprünglichen Shelly 1PM (Gen1), das eine REST-API mit dem Endpunkt /status verwendet, nutzt die Gen3-Version die RPC-API mit Methodenaufrufen wie /rpc/Switch.GetStatus. Die Gen3-Hardware verfügt über einen schnelleren ESP-Prozessor mit 8 MB Flash-Speicher, unterstützt bis zu 6 gleichzeitige HTTP-Verbindungen (gegenüber 2 bei Gen1) und ist Matter-fähig.

Die Vorlage bietet Relaissteuerung und einen Stromzähler, der den aktuellen Energieverbrauch und den kumulierten Gesamtverbrauch erfasst.

Konfiguration

Das Shelly 1PM Gen3 verbindet sich über Wi-Fi. Beim Import der Vorlage in TapHome geben Sie die IP-Adresse des Geräts ein (Standard-Platzhalter 192.168.0.1).

Die Authentifizierung muss auf dem Shelly-Gerät deaktiviert sein, damit die TapHome-Integration funktioniert. TapHome unterstützt nicht die HTTP-Digest-Auth, die von Gen2+/Gen3-Geräten verwendet wird. Öffnen Sie die Shelly-Weboberfläche (http://{device-ip}) → Einstellungen → Authentifizierung und stellen Sie sicher, dass sie deaktiviert ist.

Wenn der ECO-Modus auf dem Shelly-Gerät aktiviert ist, kann er aufgrund der schnellen Abfrageintervalle der Vorlage (2,5–3 Sekunden) zu Kommunikationsausfällen führen. Deaktivieren Sie den ECO-Modus in der Shelly-Weboberfläche, wenn Sie zeitweise Verbindungsprobleme bemerken.

Gerätefunktionen

Relaissteuerung

Die Vorlage stellt das Relais als Schalter bereit. Der Relaiszustand wird aus der Antwort von /rpc/Switch.GetStatus?id=0 gelesen (Feld output, Boolean) und über /rpc/Switch.Set?id=0&on=true oder on=false gesteuert.

Leistungsmessung

Der integrierte Stromzähler liest zwei Werte aus der Antwort von /rpc/Switch.GetStatus?id=0:

  • Momentanleistungapower in Watt, wird von der Vorlage in kW umgerechnet
  • Gesamtverbrauchaenergy.total in Wattstunden, wird von der Vorlage in kWh umgerechnet

Der Stromzähler stellt außerdem drei Service-Attribute bereit:

  • Elektrischer Strom — Laststrom in Ampere (Feld current)
  • Elektrische Spannung — Versorgungsspannung in Volt (Feld voltage)
  • Temperatur — interne Gerätetemperatur in °C (Feld temperature.tC)

Der Stromzähler ist schreibgeschützt — er aktualisiert sich automatisch bei jedem Abfragezyklus (15-Sekunden-Intervall).

Service-Diagnose

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

  • WiFi — Name der verbundenen SSID
  • IP-Adresse — aktuelle Station-IP
  • Signalstärke — WiFi-RSSI in dB
  • MAC — MAC-Adresse des Geräts

Das Modul-Leseskript prüft außerdem auf verfügbare Firmware-Updates und ausstehende Neustartanforderungen und zeigt diese als Warnungen in der TapHome-Oberfläche an.

Service-Aktionen

Auf Modulebene stehen zwei Service-Aktionen zur Verfügung:

  • Firmware aktualisieren — startet ein Firmware-Update auf die neueste stabile Version über /rpc/Shelly.Update
  • Neustart — startet einen Geräteneustart über /rpc/Shelly.Reboot
Weitere Funktionen

Das Shelly 1PM Gen3 stellt in seinen RPC-Antworten außerdem den Leistungsfaktor, die Netzfrequenz (Hz), Zähler für zurückgespeiste/exportierte Energie, den physischen Eingangsstatus (input:0), die Betriebszeit, die RAM-Nutzung und die Gerätezeit bereit. Ein Auto-Off-Timer ist über den Parameter toggle_after verfügbar, und der Überlastschutz kann über Switch.SetConfig → power_limit konfiguriert werden. Energiezähler können über /rpc/Switch.ResetCounters zurückgesetzt werden. Diese Funktionen können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfen Sie, ob das Shelly mit Wi-Fi verbunden ist und eine gültige IP-Adresse hat
  2. Versuchen Sie den mDNS-Hostnamen (shelly1pmg3-AABBCCDDEE.local) anstelle der IP-Adresse — die IP kann sich nach einer DHCP-Erneuerung geändert haben
  3. Öffnen Sie http://{device-ip}/rpc/Shelly.GetDeviceInfo im Browser — wenn JSON zurückgegeben wird, ist das Gerät erreichbar
  4. Prüfen Sie, ob TapHome Core und Shelly im selben Netzwerk / VLAN sind
  5. Bestätigen Sie, dass die Authentifizierung auf dem Shelly-Gerät deaktiviert ist
Leistungswerte zeigen Null
  1. Bestätigen Sie, dass die Last über das Shelly-Relais angeschlossen ist (nicht umgangen)
  2. Prüfen Sie, ob das Relais eingeschaltet ist — der Zähler misst nur, wenn Strom durch das Relais fließt
  3. Fragen Sie /rpc/Switch.GetStatus?id=0 manuell ab und überprüfen Sie, ob apower einen Wert ungleich Null zurückgibt
Übertemperaturwarnung

Das Shelly 1PM Gen3 verfügt über einen internen Überhitzungsschutz. Wenn die Gerätetemperatur sichere Grenzwerte überschreitet, steigt der Wert temperature in den Service-Attributen des Stromzählers. Sorgen Sie für ausreichende Belüftung um das Gerät, insbesondere beim dauerhaften Schalten hoher Lasten.

Shelly Gen2+/Gen3-Geräte unterstützen bis zu 6 gleichzeitige HTTP-Verbindungen. Obwohl dies eine deutliche Verbesserung gegenüber Gen1 (2 Verbindungen) darstellt, vermeiden Sie gleichzeitige Abfragen von zu vielen Systemen (TapHome, Home Assistant, eigene Skripte), um eine Erschöpfung der Verbindungen zu verhindern.

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 1PM Gen3 Modul
Serviceattribute
WiFi
IP-Adresse
Signalstärke
MAC
Serviceaktionen
Firmware aktualisieren
Neustart
Benutzerdefinierte Variablen

Shelly 1PM Gen3

Lesen (Modul)
VAR response := SENDHTTPREQUEST("/rpc/Sys.GetStatus");
IF response.IsSuccess
    Sys.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Sys.GetConfig");
IF response.IsSuccess
    Sys.GetConfig := response.Content;
END

response := SENDHTTPREQUEST("/rpc/WiFi.GetStatus");
IF response.IsSuccess
    WiFi.GetStatus := response.Content;
END

if ! ISNULL(parsejson(Sys.GetStatus, "available_updates.stable", true))
    addwarning("New firmware update is available");
end

if parsejson(Sys.GetStatus, "restart_required", true)
    addwarning("Restart required");
end
Serviceattribute
Wifi
PARSEJSON(WiFi.GetStatus, "ssid")
${ipAddress}
PARSEJSON(WiFi.GetStatus, "sta_ip")
${xml_signal_strength} [dB]
PARSEJSON(WiFi.GetStatus, "rssi")
MAC
PARSEJSON(Sys.GetStatus, "mac")
Serviceaktionen
${xml_update_fw}
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Update?stage=\"stable\"");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END

Reboot
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Reboot");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Schalter Schalter
boolean
Werte / Zustände: ON · OFF

Schalter

Schaltzustand lesen
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
var status := x.Content;
return(PARSEJSON(status, "$.output", true));
Schaltzustand schreiben
VAR response := SENDHTTPREQUEST("rpc/Switch.Set?id=0&on=" + if(St,"true","false"));
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
Stromzähler Stromzähler Nur lesen

Leistungs- und Energiemessung — momentane Leistung (kW) und kumulierter Energieverbrauch (kWh) mit Strom-, Spannungs- und Temperaturmessung

numeric Einheit: kW / kWh
Serviceattribute
Elektrischer Strom
Elektrische Spannung
Temperatur

Stromzähler

Gesamtverbrauch lesen
return(parsejson(parsejson(Switch.GetStatus,"aenergy"), "total")/1000);
Bedarf lesen
return(parsejson(Switch.GetStatus,"apower")/1000);
Lesen (Modul)
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=0");
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
Serviceattribute
${electric_current} [A]
return(parsejson(Switch.GetStatus,"current"));
${electric_voltage} [V]
return(parsejson(Switch.GetStatus,"voltage"));
${temperature} [°C]
return(parsejson(parsejson(Switch.GetStatus,"temperature"), "tC"));
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (10)
  • Power Factor — Power factor value, available in Switch.GetStatus response for metered devices
  • Network Frequency — AC network frequency in Hz, available in Switch.GetStatus response
  • Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
  • Input State — Physical switch/button input state, available via /rpc/Input.GetStatus?id=0
  • Uptime — Seconds since last reboot, available in Sys.GetStatus response
  • RAM Usage — Total and free RAM in bytes, available in Sys.GetStatus response
  • Device Time — Current device time in HH:MM format, available in Sys.GetStatus response
  • Auto-off Timer — Auto-reset timer in seconds via toggle_after parameter, could be added as switch parameter
  • Reset Energy Counters — Resets energy measurement counters (aenergy, ret_aenergy)
  • Overpower Protection — Configurable power limit threshold in Watts, relay turns off when exceeded

Quellen