TapHome

Shelly Pro 3EM

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 06. 2026
Shelly Pro 3EM

Der Shelly Pro 3EM ist ein professioneller Dreiphasen-Energiezähler für die DIN-Hutschiene, der für den Einsatz mit externen Stromwandlern konzipiert ist. Er ist in drei Varianten erhältlich — Pro 3EM (CT 120 A), Pro 3EM-400 (CT 400 A) und Pro 3EM-3CT63 (integrierte CT 63 A). Das Gerät verbindet sich über Wi-Fi oder Ethernet (RJ45) mit dem lokalen Netzwerk und stellt Echtzeitmessungen über die Gen2+ HTTP RPC API bereit. TapHome fragt das Gerät per HTTP auf Port 80 ab — eine Cloud-Verbindung ist nicht erforderlich.

Die Vorlage enthält elf Geräte für bidirektionale Energiemessung: Stromsensoren pro Phase (L1, L2, L3), From Grid und To Grid Energiezähler pro Phase sowie Gesamt-From Grid und Gesamt-To Grid Energiezähler. Die From Grid Geräte erfassen den Energiebezug aus dem Netz, die To Grid Geräte die Netzeinspeisung (z. B. aus Solaranlagen) — der Leistungswert wird invertiert, damit die Einspeisung als positive Zahl dargestellt wird.

Hardwareanschluss

Der Shelly Pro 3EM wird auf einer Standard-DIN-Hutschiene (94 × 19 × 69 mm) montiert. Er benötigt vier Spannungseingänge (drei Phasenleiter + Neutralleiter) über Schraubklemmen sowie vier externe CT-Eingänge (drei Phasen + Neutralleiter). Die Spannungsversorgung erfolgt zwischen einer beliebigen Phase und dem Neutralleiter (100–260 V AC, 50/60 Hz).

Wichtige Hinweise zur Verdrahtung:

  • Spannungseingänge: LA, LB, LC (je einer pro Phase) + N (Neutralleiter)
  • CT-Eingänge: Drei Phasen-CTs + ein Neutral-CT, jeweils an den entsprechenden CT-Eingangsbuchsen angeschlossen
  • Ethernet: Ein RJ45-Anschluss für die LAN-Verbindung (Stromversorgung vor dem Ein-/Ausstecken des LAN-Kabels trennen)
  • Leiterquerschnitt: 0,5–2,5 mm² (20–14 AWG), Abisolierlänge 6–7 mm, max. Anzugsmoment 0,4 Nm

Der externe Schutz muss für max. 16 A mit Charakteristik B oder C und einem minimalen Ausschaltvermögen von 6 kA ausgelegt sein. Der Betriebsspannungsbereich beträgt 100–260 V pro Phase.

Konfiguration

Der Shelly Pro 3EM verbindet sich über Wi-Fi oder Ethernet. Beim Import der TapHome-Vorlage geben Sie die IP-Adresse des Geräts ein (Standard-Platzhalter 192.168.0.1).

Authentifizierung

TapHome unterstützt keine HTTP Digest Authentication. Stellen Sie sicher, dass die Authentifizierung am Shelly-Gerät deaktiviert ist, bevor Sie es zu TapHome hinzufügen. Die Einstellung finden Sie in der Shelly-Weboberfläche unter Einstellungen → Authentifizierung.

CT-Typ-Auswahl

Nach dem Anschluss der Stromwandler konfigurieren Sie den CT-Typ über die Shelly-Weboberfläche oder durch Aufruf von EM.SetConfig mit dem entsprechenden ct_type-Wert. Mit EM.GetCTTypes können Sie die unterstützten Typen auflisten (typischerweise 120A und 400A). Ist der CT-Typ nicht gesetzt, meldet das Gerät einen ct_type_not_set-Fehler und Messungen sind nicht verfügbar.

Phasen-zu-Phasen-Kalibrierung

Der Pro 3EM unterstützt eine Kanal-zu-Kanal-Kalibrierung zur Verbesserung der Messgenauigkeit zwischen den Phasen. Die Kalibrierung erfordert eine Mindestlast von 500 W pro Kanal und dauert etwa 5 Sekunden. Verwenden Sie EM.PhaseToPhaseCalib zur Kalibrierung und EM.PhaseToPhaseCalibReset zum Zurücksetzen auf Werkseinstellungen.

ECO-Modus

Wenn der ECO-Modus am Shelly-Gerät aktiviert ist, kann dies zu Kommunikationsausfällen führen, da TapHome das Gerät im 3-Sekunden-Abfrageintervall abfragt. Deaktivieren Sie den ECO-Modus für einen zuverlässigen Betrieb.

Gerätefunktionen

Strommessung pro Phase

Drei Stromsensoren (L1 Current, L2 Current, L3 Current) melden den Augenblicksstrom in Ampere für jede Phase, direkt aus den Feldern a_current, b_current und c_current von EM.GetStatus gelesen. Es handelt sich um einfache Sensorwerte ohne Einheitenumrechnung.

Bidirektionale Energiemessung pro Phase

Jede Phase verfügt über zwei Energiezähler — From Grid und To Grid:

  • L1/L2/L3 From Grid — aus dem Netz bezogene Wirkleistung (W, in kW umgerechnet) und kumulierter Netzbezug (Wh, in kWh umgerechnet). Jedes From Grid Gerät stellt zusätzlich vier Service-Attribute bereit: Leistungsfaktor, Strom [A], Spannung [V] und Gesamte zurückgespeiste Energie [kWh].
  • L1/L2/L3 To Grid — ins Netz eingespeiste Wirkleistung (W, durch −1000 geteilt, damit Einspeisung als positives kW dargestellt wird) und kumulierte zurückgespeiste Energie (Wh, in kWh umgerechnet). Die To Grid Geräte haben keine Service-Attribute.

Die Service-Attribute der From Grid Geräte liefern ein vollständiges Bild pro Phase: Augenblicksstrom und -spannung, Leistungsfaktor zur Beurteilung der Energiequalität sowie einen Zähler für die zurückgespeiste Energie zur kumulativen Einspeisungsüberwachung neben dem Netzbezugszähler.

Bidirektionale Gesamtenergiezählung

Zwei Zusammenfassungsgeräte aggregieren alle drei Phasen:

  • Total From Grid — kombinierte 3-Phasen-Wirkleistung (kW) und gesamter kumulierter Netzbezug (kWh)
  • Total To Grid — kombinierte 3-Phasen-Rückspeiseleistung (kW, invertiert) und gesamte kumulierte Netzeinspeisung (kWh)

Alle Geräte verwenden ein 3-Sekunden-Abfrageintervall, das dem Modullesezyklus entspricht.

Weitere Funktionen

Der Shelly Pro 3EM stellt nativ auch Scheinleistung pro Phase und gesamt, Neutralleiterstrom (einzigartig beim Pro-Modell — beim 3EM Gen3 nicht verfügbar), Netzfrequenz pro Phase, Gesamtstrom über alle Phasen sowie Moduldiagnostik (Wi-Fi SSID, IP-Adresse, Signalstärke, MAC-Adresse) bereit. Firmware-Update und Neustart sind ebenfalls über die RPC API verfügbar. Phasenfolgefehlererkennung und bis zu 60 Tage Datenprotokollierung mit 1-Minuten-Auflösung und CSV/JSON-Export werden nativ unterstützt. Diese Funktionen können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfen Sie, ob Shelly mit Wi-Fi oder LAN verbunden ist und eine gültige IP-Adresse hat
  2. Versuchen Sie, den mDNS-Hostnamen (ShellyPro3EM-XXXXXXXXXXXX.local) statt der IP-Adresse zu verwenden — die IP-Adresse kann sich nach einer DHCP-Erneuerung geändert haben
  3. Öffnen Sie http://{geräte-ip}/rpc/Shelly.GetDeviceInfo im Browser — wenn es mit JSON antwortet, ist das Gerät erreichbar
  4. Stellen Sie sicher, dass TapHome Core und Shelly im gleichen Netzwerk / VLAN sind
Fehler ct_type_not_set

Wenn die EM- oder EMData-Komponente einen ct_type_not_set-Fehler meldet, wurde der Stromwandlertyp nicht konfiguriert. Setzen Sie den CT-Typ über die Shelly-Weboberfläche oder durch Aufruf von EM.SetConfig mit dem entsprechenden ct_type-Wert. Mit EM.GetCTTypes können Sie die unterstützten Typen auflisten.

Phasenfolge-Fehler

Wenn der phase_sequence-Fehler in EM.GetStatus erscheint, sind die Phasen in umgekehrter Reihenfolge angeschlossen (A-C-B statt A-B-C). Entweder die Phasen in der richtigen Reihenfolge neu verdrahten oder monitor_phase_sequence in der EM-Konfiguration aktivieren, wenn die umgekehrte Reihenfolge beabsichtigt ist.

Negative oder Null-Werte bei To Grid Geräten

Die To Grid Geräte verwenden eine invertierte Umrechnung (Division durch −1000), um Netzeinspeisung als positive Zahl darzustellen. Findet keine Einspeisung statt (das System bezieht nur Strom), zeigt der To Grid Leistungswert null oder negativ an. Dies ist das erwartete Verhalten — das From Grid Gerät erfasst den Verbrauch, das To Grid Gerät die Einspeisung.

Shelly Gen2+/Gen3-Geräte unterstützen bis zu 6 gleichzeitige HTTP-Verbindungen. Jedes Abfragesystem (TapHome, Home Assistant usw.) belegt Verbindungen. Vermeiden Sie es, zu viele Integrationen gleichzeitig auf demselben Gerät zu betreiben.

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 Pro 3 EM Modul
Benutzerdefinierte Variablen

Shelly Pro 3 EM

Lesen (Modul)
VAR response := SENDHTTPREQUEST("/rpc/EM.GetStatus?id=0");
IF response.IsSuccess
    EMStatus := response.Content;
END;

response := SENDHTTPREQUEST("/rpc/EMData.GetStatus?id=0");
IF response.IsSuccess
    EMDataStatus := response.Content;
END
L1 Strom Variable Nur lesen
numeric Einheit: A json_path

L1 Strom

Lesen
todouble(PARSEjson(EMStatus, "a_current"))
L1 From Grid Stromzähler Nur lesen

Phase A Wirkleistung (kW) und kumulierter Netzbezug (kWh), mit Spannung, Strom, Leistungsfaktor und zurückgespeister Energie

numeric Einheit: kW / kWh json_path
Serviceattribute
Leistungsfaktor
Strom
Spannung
Gesamte zurückgespeiste EnergiePhase A kumulierte zurückgespeiste (Einspeise-)Energie in kWh

L1 From Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "a_total_act_energy"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "a_act_power"))/1000
Serviceattribute
power factor
RETURN(todouble(PARSEjson(EMStatus, "a_pf")));
Current [A]
RETURN(todouble(PARSEjson(EMStatus, "a_current")));
voltage [V]
RETURN(todouble(PARSEjson(EMStatus, "a_voltage")));
Total returned energy [kWh]
RETURN(todouble(PARSEjson(EMDataStatus, "a_total_act_ret_energy"))/1000);
L1 To Grid Stromzähler Nur lesen

Phase A zurückgespeiste Leistung (kW, invertiert) und kumulierte ins Netz eingespeiste Energie (kWh)

numeric Einheit: kW / kWh json_path

L1 To Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "a_total_act_ret_energy"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "a_act_power"))/-1000
L2 Strom Variable Nur lesen
numeric Einheit: A json_path

L2 Strom

Lesen
todouble(PARSEjson(EMStatus, "b_current"))
L2 From Grid Stromzähler Nur lesen

Phase B Wirkleistung (kW) und kumulierter Netzbezug (kWh), mit Spannung, Strom, Leistungsfaktor und zurückgespeister Energie

numeric Einheit: kW / kWh json_path
Serviceattribute
Leistungsfaktor
Strom
Spannung
Gesamte zurückgespeiste EnergiePhase B kumulierte zurückgespeiste (Einspeise-)Energie in kWh

L2 From Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "b_total_act_energy"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "b_act_power"))/1000
Serviceattribute
power factor
RETURN(todouble(PARSEjson(EMStatus, "b_pf")));
current [A[
RETURN(todouble(PARSEjson(EMStatus, "b_current")));
voltage [V]
RETURN(todouble(PARSEjson(EMStatus, "b_voltage")));
total returned energy [kWh]
RETURN(todouble(PARSEjson(EMDataStatus, "b_total_act_ret_energy"))/1000);
L2 To Grid Stromzähler Nur lesen

Phase B zurückgespeiste Leistung (kW, invertiert) und kumulierte ins Netz eingespeiste Energie (kWh)

numeric Einheit: kW / kWh json_path

L2 To Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "b_total_act_ret_energy"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "b_act_power"))/-1000
L3 Strom Variable Nur lesen
numeric Einheit: A json_path

L3 Strom

Lesen
todouble(PARSEjson(EMStatus, "c_current"))
L3 From Grid Stromzähler Nur lesen

Phase C Wirkleistung (kW) und kumulierter Netzbezug (kWh), mit Spannung, Strom, Leistungsfaktor und zurückgespeister Energie

numeric Einheit: kW / kWh json_path
Serviceattribute
Leistungsfaktor
Strom
Spannung
Gesamte zurückgespeiste EnergiePhase C kumulierte zurückgespeiste (Einspeise-)Energie in kWh

L3 From Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "c_total_act_energy"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "c_act_power"))/1000
Serviceattribute
power factor
RETURN(todouble(PARSEjson(EMStatus, "c_pf")));
current [A]
RETURN(todouble(PARSEjson(EMStatus, "c_current")));
voltage [V]
RETURN(todouble(PARSEjson(EMStatus, "c_voltage")));
Total returned energy [kWh]
RETURN(todouble(PARSEjson(EMDataStatus, "c_total_act_ret_energy"))/1000);
L3 To Grid Stromzähler Nur lesen

Phase C zurückgespeiste Leistung (kW, invertiert) und kumulierte ins Netz eingespeiste Energie (kWh)

numeric Einheit: kW / kWh json_path

L3 To Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "c_total_act_ret_energy"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "c_act_power"))/-1000
Total From Grid Stromzähler Nur lesen

Kombinierte 3-Phasen-Wirkleistung (kW) und kumulierter Gesamt-Netzbezug (kWh)

numeric Einheit: kW / kWh json_path

Total From Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "total_act"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "total_act_power"))/1000
Total To Grid Stromzähler Nur lesen

Kombinierte 3-Phasen-Rückspeiseleistung (kW, invertiert) und kumulierte Gesamt-Netzeinspeisung (kWh)

numeric Einheit: kW / kWh json_path

Total To Grid

Gesamtverbrauch lesen
todouble(PARSEjson(EMDataStatus, "total_act_ret"))/1000
Bedarf lesen
todouble(PARSEjson(EMStatus, "total_act_power"))/-1000
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (14)
  • Phase A Apparent Power — Apparent power in VA, available per phase — could complement active power
  • Total Apparent Power — Sum of apparent power on all phases [VA]
  • Neutral Current — Current on neutral conductor [A] — Pro 3EM supports this (unlike 3EM Gen3)
  • Grid Frequency — Network frequency in Hz, available per phase — not exposed as device or SA
  • Total Current — Sum of current on all three phases [A]
  • MAC Address — No module-level service attributes in this template (unlike 3EM Gen3)
  • WiFi SSID — No module-level service attributes in this template (unlike 3EM Gen3)
  • Signal Strength — WiFi RSSI in dBm — not polled by module readscript
  • Firmware Update — No module-level service actions in this template (unlike 3EM Gen3)
  • Reboot — No module-level service actions in this template (unlike 3EM Gen3)
  • Uptime — Seconds since last reboot
  • Free RAM — Available RAM in bytes
  • Total Returned Energy (dedicated) — Already implemented as Total To Grid device (readtotalconsumption), listed for completeness
  • Phase Sequence Monitoring — Enable/disable phase sequence error detection via EM.SetConfig

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