TapHome

Shelly Plus 1PM

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

Der Shelly Plus 1PM ist ein kompakter Gen2+ WLAN-Relaisschalter mit integrierter Leistungsmessung. Er passt hinter einen Standard-Wandschalter und kann einen Stromkreis bis 16 A (3500 W bei 230 V AC) oder 10 A (30 V DC) steuern. Das Gerät unterstützt 110-240 VAC oder 24-30 VDC Spannungsversorgung und eignet sich damit sowohl für Netz- als auch Niederspannungsinstallationen. TapHome kommuniziert mit dem Gerät lokal über WLAN — keine Cloud-Verbindung erforderlich.

Es stehen zwei TapHome-Vorlagen zur Verfügung: eine HTTP-Vorlage, die die Gen2+ RPC-API des Geräts abfragt, und eine MQTT-Vorlage, die Daten über einen MQTT-Broker empfängt. Beide stellen die gleichen zwei Geräte bereit — einen Energiezähler und einen Relaisschalter.

Konfiguration

HTTP-Vorlage

Die HTTP-Vorlage benötigt nur die IP-Adresse des Geräts (Standardwert 192.168.0.1). TapHome fragt den Endpunkt /rpc/Switch.GetStatus?id=0 sowohl für den Relaisstatus als auch für Leistungsmessdaten ab. Das Modul speichert die JSON-Antwort in einer status-Variable, damit einzelne Geräteskripte die Daten ohne redundante HTTP-Aufrufe auswerten können.

MQTT-Vorlage

Die MQTT-Vorlage erfordert beim Import drei Parameter:

  • MQTT-Broker-IP — die IP-Adresse des MQTT-Brokers (nicht des Shelly-Geräts selbst)
  • MQTT-Broker-Port — Standard 1883
  • Shelly MQTT Client ID — Format shellyplus1pm-{deviceid}, zu finden in der Shelly-Weboberfläche unter Settings > MQTT Settings > Client ID

Nach Aktivierung von MQTT auf dem Shelly Plus 1PM (Settings > MQTT) abonniert TapHome shellyplus1pm-{deviceid}/status/switch:0 und sendet Steuerbefehle an shellyplus1pm-{deviceid}/command/switch:0.

Gerätefunktionen

Relaissteuerung

Die Vorlage stellt das Relais als Schaltgerät bereit. Der Relaisstatus wird aus dem Feld output (Boolean) gelesen und über /rpc/Switch.Set?id=0 mit on=true oder on=false (HTTP) oder durch Veröffentlichung von on/off zum Befehlstopic (MQTT) gesteuert.

Die HTTP-Vorlage fragt das Relais im 2,5-Sekunden-Intervall ab und bietet damit nahezu Echtzeit-Statusrückmeldung. Die MQTT-Vorlage empfängt Aktualisierungen laufend über das Listener-Skript.

Leistungsmessung

Der integrierte Energiezähler liest zwei Werte aus der Switch.GetStatus-Antwort:

  • Momentanleistungapower in Watt, von der Vorlage in kW umgerechnet (geteilt durch 1000)
  • Kumulierter Energieverbrauchaenergy.total in Wattstunden, von der Vorlage in kWh umgerechnet (geteilt durch 1000)

Der Zähler ist schreibgeschützt — er aktualisiert sich automatisch mit jedem Abfragezyklus (HTTP) oder mit jeder MQTT-Statusnachricht.

Die HTTP-Vorlage stellt am Energiezähler auch drei Service-Attribute bereit:

AttributEinheitBeschreibung
StromAMomentaner Strombezug
SpannungVEffektive Netzspannung
Temperatur°CInterne Gerätetemperatur

Die MQTT-Vorlage stellt interne Temperatur, Spannung und Strom als Service-Attribute auf Modulebene mit denselben Daten bereit, die aus der MQTT-Statusnachricht geparst werden.

Weitere Funktionen

Der Shelly Plus 1PM stellt über die RPC-API auch Leistungsfaktor, Netzfrequenz, rückgespeiste Energie (für bidirektionale Messung), physischen Eingangsstatus, WLAN-Signalstärke, MAC-Adresse, Betriebszeit, RAM-Auslastung und Gerätezeit bereit. Firmware-Update, Geräteneustart, Auto-Off-Timer, Energiezähler-Reset und Überlastschutz-Konfiguration sind ebenfalls verfügbar. Diese Funktionen können in einem zukünftigen Vorlagenupdate hinzugefügt werden.

Fehlerbehebung

Gerät reagiert nicht (HTTP)
  1. Überprüfen Sie, ob der Shelly mit dem WLAN verbunden ist und eine gültige IP-Adresse hat
  2. Versuchen Sie den mDNS-Hostnamen (shellyplus1pm-AABBCCDDEE.local) statt der IP-Adresse — die IP kann sich nach einer DHCP-Erneuerung geändert haben
  3. Öffnen Sie http://{geraete-ip}/rpc/Shelly.GetDeviceInfo im Browser — wenn JSON zurückkommt, ist das Gerät erreichbar
  4. Prüfen Sie, ob TapHome CCU und Shelly im gleichen Netzwerk / VLAN sind
  5. Stellen Sie sicher, dass die HTTP-Digest-Authentifizierung in der Shelly-Weboberfläche deaktiviert ist — TapHome unterstützt keine authentifizierten Anfragen
MQTT-Nachrichten kommen nicht an
  1. Überprüfen Sie, ob MQTT in der Shelly-Weboberfläche aktiviert ist (Settings > MQTT)
  2. Bestätigen Sie, dass Broker-Adresse und Port sowohl im Shelly-Gerät als auch in den TapHome-Moduleinstellungen korrekt sind
  3. Prüfen Sie, ob die benutzerdefinierte Variable plug1topic exakt der MQTT Client ID des Shelly-Geräts entspricht (z.B. shellyplus1pm-AABBCCDDEE)
  4. Verwenden Sie einen MQTT-Client (z.B. MQTT Explorer), um shellyplus1pm-# zu abonnieren und zu prüfen, ob das Gerät Nachrichten sendet
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. Rufen Sie /rpc/Switch.GetStatus?id=0 manuell auf und prüfen Sie, ob apower einen Wert ungleich Null zurückgibt
Langsame Reaktion oder Zeitüberschreitungen
  1. Gen2+-Geräte unterstützen bis zu 6 gleichzeitige HTTP-Verbindungen (gegenüber 2 bei Gen1) — vermeiden Sie jedoch übermäßiges Polling von mehreren Systemen
  2. Deaktivieren Sie den ECO-Modus in der Shelly-Weboberfläche, falls aktiviert — er versetzt das Gerät zwischen Abfragen in den Schlafmodus und kann bei kurzen Abfrageintervallen Zeitüberschreitungen verursachen
  3. Verwenden Sie eine statische IP oder DHCP-Reservierung, um Adressänderungen zu vermeiden
  4. Erwägen Sie den Wechsel zur MQTT-Vorlage in Multi-System-Umgebungen — MQTT umgeht das Verbindungslimit vollständig

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 Plus 1PM Modul
Benutzerdefinierte Variablen
Stromzähler Stromzähler Nur lesen

Momentanleistung (kW) und kumulierter Energieverbrauch (kWh) mit Strom-, Spannungs- und Temperaturdiagnose

numeric Einheit: kW / kWh
Serviceattribute
Strom
Spannung
Temperatur

Stromzähler

Gesamtverbrauch lesen
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
Bedarf lesen
return(parsejson(status,"apower")/1000);
Lesen (Modul)
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
Serviceattribute
${current} [a]
return(parsejson(status,"current"));
${electric_voltage} [v]
return(parsejson(status,"voltage"));
${temp} [C]
return(parsejson(parsejson(status,"temperature"), "tC"));
Schalter Schalter
boolean
Werte / Zustände: ON · OFF

Schalter

Schaltzustand lesen
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
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
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (16)
  • 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
  • WiFi SSID — Connected WiFi network name, available via /rpc/WiFi.GetStatus
  • WiFi Signal Strength — WiFi RSSI in dBm, available via /rpc/WiFi.GetStatus
  • IP Address — Device IP address, available via /rpc/WiFi.GetStatus
  • MAC Address — Device MAC address, available via /rpc/Sys.GetStatus
  • 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
  • Firmware Update — Trigger firmware update to stable channel, available via Shelly.Update RPC method
  • Reboot — Reboot the device, available via Shelly.Reboot RPC method
  • 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