TapHome

Shelly 1PM

Packet Parser → HTTP
Submitted by
Last updated: 03. 2026
Shelly 1PM

Der Shelly 1PM ist ein kompaktes WLAN-Relais mit integrierter Leistungsmessung. Es passt hinter einen Standard-Wandschalter und kann einen Stromkreis mit bis zu 16 A (3500 W bei 230 V) schalten. TapHome kommuniziert mit dem Gerät über HTTP im lokalen Netzwerk — eine Cloud-Verbindung ist nicht erforderlich.

Das Template bietet Relaissteuerung und einen Energiezähler, der den Echtzeit-Stromverbrauch und den kumulierten Energieverbrauch ausliest.

Konfiguration

Der Shelly 1PM verbindet sich über WLAN. Beim Import des TapHome-Templates gib die IP-Adresse des Geräts ein (Standard-Platzhalter 192.168.0.1).

Dieses Gerät unterstützt mDNS-Erkennung. Du kannst den Hostnamen shelly1pm-{MAC}.local anstelle einer IP-Adresse bei der TapHome-Konfiguration verwenden. Ersetze {MAC} durch die MAC-Adresse des Geräts (Großbuchstaben hex, ohne Doppelpunkte). Die Verwendung eines Hostnamens vermeidet Verbindungsprobleme, wenn sich die IP-Adresse des Geräts ändert.

Öffne die TapHome-App und nutze den IP-Scanner (Einstellungen → Netzwerk → Scannen). Der Scanner erkennt Geräte im Netzwerk und zeigt sowohl die IP-Adresse als auch den mDNS-Hostnamen an (z. B. shelly1pm-AABBCCDDEE.local). Verwende den Hostnamen anstelle der IP-Adresse für eine stabilere Verbindung.

Gerätefunktionen

Relaissteuerung

Das Template stellt das Relais als Schaltergerät bereit. Der Relaiszustand wird aus der /status-Antwort ausgelesen (relays[0].ison) und über den Endpunkt /relay/0 mit turn=on oder turn=off gesteuert.

Leistungsmessung

Der integrierte Energiezähler liest zwei Werte aus der /status-Antwort:

  • Echtzeit-Leistungmeters[0].power in Watt, vom Template in kW umgerechnet
  • Gesamtverbrauchmeters[0].total in Wattminuten, vom Template in kWh umgerechnet

Der Zähler ist schreibgeschützt — er aktualisiert sich automatisch mit jedem Abfragezyklus.

Service-Diagnose

Das Template stellt 13 Service-Attribute zur Geräteüberwachung bereit:

  • Geräteinformationen — Hostname, MAC-Adresse, Gerätezeit, Betriebszeit, RAM-Auslastung
  • Thermoschutz — Innentemperatur (°C), Temperaturstatus (Normal / Hoch / Sehr hoch), Übertemperatur-Flag
  • Konnektivität — Cloud aktiviert/verbunden, MQTT verbunden, Firmware-Update verfügbar
  • Leistungsschutz — aktuelles maximales Leistungslimit (wird von /settings gelesen)
Service-Aktionen

Drei Service-Aktionen stehen zur Verfügung:

  • Leistungsschutz setzen — legt das maximale Leistungslimit fest (1–3500 W). Das Relais schaltet automatisch ab, wenn der Verbrauch diesen Wert überschreitet.
  • Cloud aktivieren — aktiviert oder deaktiviert die Shelly-Cloud-Verbindung
  • Neustart — löst einen Geräteneustart aus
Weitere Funktionen

Der Shelly 1PM stellt in seiner /status-Antwort auch die Leitungsspannung, Blindleistung, den physischen Eingangszustand und die WLAN-Signalstärke bereit. Ein Auto-Aus-Timer ist am Relais-Endpunkt verfügbar. Diese Funktionen können in einem zukünftigen Template-Update ergänzt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfe, ob der Shelly mit dem WLAN verbunden ist und eine gültige IP-Adresse hat
  2. Versuche, den mDNS-Hostnamen (shelly1pm-AABBCCDDEE.local) statt der IP-Adresse zu verwenden — die IP könnte sich nach einer DHCP-Erneuerung geändert haben
  3. Öffne http://{device-ip}/shelly im Browser — wenn eine Antwort kommt, ist das Gerät erreichbar
  4. Stelle sicher, dass TapHome CCU und Shelly im selben Netzwerk / VLAN sind
Leistungswerte zeigen null
  1. Bestätige, dass die Last durch das Shelly-Relais geschaltet ist (nicht umgangen)
  2. Prüfe, ob das Relais eingeschaltet ist — der Zähler misst nur, wenn Strom durch das Relais fließt
  3. Frage /status manuell ab und prüfe, ob meters[0].power einen Wert ungleich null zurückgibt
Übertemperaturwarnung

Der Shelly 1PM verfügt über einen internen Thermoschutz. Wenn die Gerätetemperatur sichere Grenzwerte überschreitet, wechselt temperature_status auf „Hoch" oder „Sehr hoch" und overtemperature wird true. Sorge für ausreichende Belüftung um das Gerät, besonders beim Schalten hoher Lasten.

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. Verwende ein Abfrageintervall von 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 1PM Modul
Serviceattribute
Leistungsschutz
Hostname
MAC-Adresse
Gerätezeit
Betriebszeit
RAM
Interne Gerätetemperatur
Temperaturstatus
FW-Aktualisierung
Cloud aktiviert
Cloud verbunden
MQTT verbunden
Überhitzt
Serviceaktionen
Leistungsschutz einstellen
Cloud aktivieren
Neustart

Shelly 1PM Module

Lesen (Modul)
VAR response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;
Serviceattribute
Power protection
VAR response := SENDHTTPREQUEST("/settings", "GET");
SettingsJson := response.Content;

response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;

PARSEJSON(SettingsJson, "max_power") + "W";
Host name
PARSEJSON(SettingsJson, "device.hostname");
Mac address
PARSEJSON(StatusJson, "mac");
Device time
PARSEJSON(StatusJson, "time")
Uptime
VAR upTimeSeconds := PARSEJSON(StatusJson, "uptime");
VAR days := FLOOR(upTimeSeconds/86400, 1);
uptimeSeconds := MOD(upTimeSeconds, 86400);
var hours := FLOOR(upTimeSeconds/3600, 1);
uptimeSeconds := MOD(upTimeSeconds, 3600);
var minutes := FLOOR(upTimeSeconds/60, 1);
days + "day(s) " + hours + "h " + minutes + "m"
RAM
var ramTotal := PARSEJSON(StatusJson, "ram_total");
var ramFree := PARSEJSON(StatusJson, "ram_free");
ramFree + " bytes free of " + ramTotal
Internal device temperature
PARSEJSON(StatusJson, "temperature") + "°C"
Temperature status
PARSEJSON(StatusJson, "temperature_status");
FW update
PARSEJSON(StatusJson, "has_update");
Cloud enabled
PARSEJSON(StatusJson, "cloud.enabled");
Cloud connected
PARSEJSON(StatusJson, "cloud.connected");
MQTT connected
PARSEJSON(StatusJson, "mqtt.connected");
Overheated
PARSEJSON(StatusJson, "overtemperature");
Serviceaktionen
Set power protection
Parameter: Maximum power (1–3500 Watts)
VAR response := SENDHTTPREQUEST("settings?max_power=" + Watts);
VAR contentJson := response.Content;
VAR limitSet := PARSEJSON(contentJson, "max_power");

"Power limit set to " + limitSet + "W"
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");
Schalter Schalter
boolean

Schalter

Schaltzustand lesen
VAR value := PARSEJSON(StatusJson, "relays[0].ison", 1);
IF(ISNULL(value), NaN, value);
Schaltzustand schreiben
VAR path := "relay/0?turn=" + SWITCH(St, 0, "off", 1, "on","off");
SENDHTTPREQUEST(path);
Stromzähler Stromzähler Nur lesen

Leistungs- und Energiemessung — momentane Leistung (kW) und kumulierter Energieverbrauch (kWh)

numeric Einheit: W / kWh

Stromzähler

Gesamtverbrauch lesen
VAR total := PARSEJSON(StatusJson, "meters[0].total", 1);
IF(ISNULL(total), NaN, total / 60000.0);
Bedarf lesen
VAR power := PARSEJSON(StatusJson, "meters[0].power", 1);
IF(ISNULL(power), NaN, power / 1000.0);
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (5)
  • Voltage — Line voltage in V, available in /status response
  • Reactive Power — Reactive power in VAR, available in /status response
  • Input State — Physical input state (0/1), available in /status response
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Auto-off Timer — Auto-off timer in seconds, could be added as service action or switch parameter

Quellen