TapHome

Shelly 3EM Gen3

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Shelly 3EM Gen3

Der Shelly 3EM Gen3 ist ein dreiphasiger Energiezähler für die DIN-Hutschiene mit integrierten Stromwandlern (bis 63 A pro Phase). Er verbindet sich über Wi-Fi mit dem lokalen Netzwerk und stellt Echtzeitmessungen über die Gen2+/Gen3 HTTP RPC API bereit. TapHome fragt das Gerät über HTTP auf Port 80 ab — eine Cloud-Verbindung ist nicht erforderlich.

Die Vorlage stellt vier Energiezähler-Geräte bereit: einen kombinierten Gesamtzähler und drei einzelne Phasenzähler (A, B, C). Jeder Zähler zeigt die momentane Wirkleistung und den kumulierten Energieverbrauch an, wobei die Phasenzähler zusätzlich Spannung, Strom, Leistungsfaktor und Netzfrequenz als Serviceattribute bereitstellen.

Hardwareanschluss

Der Shelly 3EM Gen3 ist in zwei Varianten erhältlich — 3EM-63W (Kabelmodell) und 3EM-63T (Flachklemmenmodell). Beide werden über oder unter Leitungsschutzschaltern auf der DIN-Hutschiene montiert.

Das Gerät erfordert einen Y-Anschluss (Stern) mit 4 Leitern:

  • LA, LB, LC — drei Phaseneingänge, einer pro Phase
  • N — Neutralleiter
  • Die Spannungsversorgung wird zwischen Phase LA und Neutralleiter entnommen (220-240 V~ 50/60 Hz)

Der externe Schutz sollte auf 63 A mit Charakteristik B oder C und einem Bemessungsschaltvermögen von 6 kA ausgelegt sein.

Die maximale sichere Betriebsspannung beträgt 280 V pro Phase. Der Strombereich liegt bei 0-63 A mit einer Sättigung von 130 A. Das Überschreiten dieser Grenzwerte kann das Gerät beschädigen.

Konfiguration

Der Shelly 3EM Gen3 verbindet sich über Wi-Fi. Geben Sie beim Import der TapHome-Vorlage die IP-Adresse des Geräts ein (Standardplatzhalter 192.168.0.1).

Authentifizierung

TapHome unterstützt keine HTTP Digest Authentication. Stellen Sie sicher, dass die Authentifizierung auf dem Shelly-Gerät deaktiviert ist, bevor Sie es zu TapHome hinzufügen. Dies können Sie in der Shelly-Weboberfläche unter Settings → Authentication konfigurieren.

Profilauswahl

Der Shelly 3EM Gen3 unterstützt zwei Profile — Triphase (Standard) und Monophase. Die TapHome-Vorlage ist für das Triphase-Profil konzipiert, das eine einzelne EM-Komponente (em:0) mit phasenweisen und Gesamtmesswerten bereitstellt. Stellen Sie sicher, dass das Gerät auf das Triphase-Profil eingestellt ist (Werkseinstellung).

ECO-Modus

Wenn der ECO-Modus auf dem Shelly-Gerät aktiviert ist, kann er aufgrund des 3-Sekunden-Abfrageintervalls des TapHome-Moduls zu Kommunikationsunterbrechungen führen. Deaktivieren Sie den ECO-Modus für einen zuverlässigen Betrieb.

Gerätefunktionen

Gesamtenergiemessung

Das Gerät Gesamtenergiezähler bietet eine kombinierte Ansicht aller drei Phasen:

  • Wirkleistungtotal_act_power aus EM.GetStatus, umgerechnet von W in kW (geteilt durch 1000)
  • Kumulierte Energietotal_act aus EMData.GetStatus, umgerechnet von Wh in kWh (geteilt durch 1000)
  • Gesamtstrom (Serviceattribut) — Summe der Ströme über alle drei Phasen
Phasenweise Energiemessung

Drei einzelne Phasenzähler (Phase A, Phase B, Phase C) liefern detaillierte Messungen pro Phase. Jeder Phasenzähler zeigt:

  • Wirkleistung — momentane Leistung in kW (umgerechnet von W)
  • Kumulierte Energie — Gesamtenergieverbrauch in kWh (umgerechnet von Wh)

Jeder Phasenzähler stellt zudem vier Serviceattribute bereit:

  • Elektrischer Strom — Phasenstrom in A
  • Elektrische Spannung — Phasenspannung in V
  • Leistungsfaktor — dimensionsloses Verhältnis von Wirk- zu Scheinleistung
  • Netzfrequenz — Netzfrequenz in Hz

Die Phasenzähler verwenden ein 15-Sekunden-Abfrageintervall (im Vergleich zum 3-Sekunden-Modulabfrageintervall), was für die Energieüberwachung ausreichend ist.

Moduldiagnose

Die Vorlage stellt vier Serviceattribute auf Modulebene bereit:

  • Wifi — SSID des verbundenen Wi-Fi-Netzwerks
  • IP-Adresse — IP-Adresse des Geräts im lokalen Netzwerk
  • Signalstärke — Wi-Fi-RSSI in dBm
  • MAC — MAC-Adresse des Geräts

Zwei Serviceaktionen stehen zur Verfügung:

  • FW aktualisieren — löst ein Firmware-Update auf die neueste stabile Version aus
  • Neustart — löst einen Neustart des Geräts aus

Das Modul-Leseskript prüft auch auf verfügbare Firmware-Updates und ausstehende Neustartanforderungen und zeigt in TapHome Warnungen an, wenn eine dieser Bedingungen erkannt wird.

Weitere Funktionen

Der Shelly 3EM Gen3 stellt außerdem die Scheinleistung pro Phase und gesamt, den Neutralleiterstrom und Zähler für rückgespeiste Energie pro Phase und gesamt bereit. Phasenfolge-Fehlererkennung und historische Datenspeicherung mit 1-Minuten-Auflösung sind nativ verfügbar. Diese Funktionen können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfen Sie, ob der Shelly mit dem Wi-Fi verbunden ist und eine gültige IP-Adresse hat
  2. Versuchen Sie, den mDNS-Hostnamen (Shelly3EM63G3-XXXXXXXXXXXX.local) anstelle der IP-Adresse zu verwenden — die IP-Adresse könnte 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
Fehler ct_type_not_set

Wenn die EM-Komponente den Fehler ct_type_not_set 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. Verwenden Sie EM.GetCTTypes, um die unterstützten Typen aufzulisten.

Phasenfolgefehler

Wenn der Fehler phase_sequence in EM.GetStatus erscheint, sind die Phasen in umgekehrter Reihenfolge angeschlossen (A-C-B statt A-B-C). Verdrahten Sie entweder die Phasen in der korrekten Reihenfolge oder aktivieren Sie monitor_phase_sequence in der EM-Konfiguration, um den Fehler zu unterdrücken, wenn die umgekehrte Reihenfolge beabsichtigt ist.

Shelly Gen2+/Gen3-Geräte unterstützen bis zu 6 gleichzeitige HTTP-Verbindungen. Das ist mehr als bei Gen1-Geräten (2 Verbindungen), aber bedenken Sie, dass jedes Abfragesystem (TapHome, Home Assistant usw.) Verbindungen beansprucht. Vermeiden Sie den gleichzeitigen Betrieb zu vieler Integrationen auf demselben Gerät.

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 3EM Gen3 Modul
Serviceattribute
Wifi
IP-Adresse
Signalstärke
MAC
Serviceaktionen
FW aktualisierenLöst ein Firmware-Update auf die neueste stabile Version aus
Neustart
Benutzerdefinierte Variablen

Shelly 3EM 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

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

response := SENDHTTPREQUEST("/rpc/EMData.GetStatus?id=0");
IF response.IsSuccess
    EMData.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
Gesamtenergiezähler Stromzähler Nur lesen

Kombinierte 3-Phasen-Wirkleistung (kW) und kumulierter Gesamtenergieverbrauch (kWh)

numeric Einheit: kW / kWh json_path
Serviceattribute
Elektrischer StromSumme der Ströme über alle drei Phasen
Variable: EM.GetStatus

Gesamtenergiezähler

Gesamtverbrauch lesen
return(parsejson(EMData.GetStatus,"total_act")/1000);
Bedarf lesen
return(parsejson(EM.GetStatus,"total_act_power")/1000);
Serviceattribute
${electric_current} [A]
return(parsejson(EM.GetStatus,"total_current"));
Energiezähler Phase A Stromzähler Nur lesen

Phase A Wirkleistung (kW), kumulierte Energie (kWh), Spannung, Strom, Leistungsfaktor und Frequenz

numeric Einheit: kW / kWh json_path
Serviceattribute
Elektrischer Strom
Elektrische Spannung
Leistungsfaktor
Netzfrequenz

Energiezähler Phase A

Gesamtverbrauch lesen
return(parsejson(EMData.GetStatus,"a_total_act_energy")/1000);
Bedarf lesen
return(parsejson(EM.GetStatus,"a_act_power")/1000);
Serviceattribute
${electric_current} [A]
return(parsejson(EM.GetStatus,"a_current"));
${electric_voltage} [V]
return(parsejson(EM.GetStatus,"a_voltage"));
${power_factor}
return(parsejson(EM.GetStatus,"a_pf"));
${grid_frequency} [Hz]
return(parsejson(EM.GetStatus,"a_freq"));
Energiezähler Phase B Stromzähler Nur lesen

Phase B Wirkleistung (kW), kumulierte Energie (kWh), Spannung, Strom, Leistungsfaktor und Frequenz

numeric Einheit: kW / kWh json_path
Serviceattribute
Elektrischer Strom
Elektrische Spannung
Leistungsfaktor
Netzfrequenz

Energiezähler Phase B

Gesamtverbrauch lesen
return(parsejson(EMData.GetStatus,"b_total_act_energy")/1000);
Bedarf lesen
return(parsejson(EM.GetStatus,"b_act_power")/1000);
Serviceattribute
${electric_current} [A]
return(parsejson(EM.GetStatus,"b_current"));
${electric_voltage} [V]
return(parsejson(EM.GetStatus,"b_voltage"));
${power_factor}
return(parsejson(EM.GetStatus,"b_pf"));
${grid_frequency} [Hz]
return(parsejson(EM.GetStatus,"b_freq"));
Energiezähler Phase C Stromzähler Nur lesen

Phase C Wirkleistung (kW), kumulierte Energie (kWh), Spannung, Strom, Leistungsfaktor und Frequenz

numeric Einheit: kW / kWh json_path
Serviceattribute
Elektrischer Strom
Elektrische Spannung
Leistungsfaktor
Netzfrequenz

Energiezähler Phase C

Gesamtverbrauch lesen
return(parsejson(EMData.GetStatus,"c_total_act_energy")/1000);
Bedarf lesen
return(parsejson(EM.GetStatus,"c_act_power")/1000);
Serviceattribute
${electric_current} [A]
return(parsejson(EM.GetStatus,"c_current"));
${electric_voltage} [V]
return(parsejson(EM.GetStatus,"c_voltage"));
${power_factor}
return(parsejson(EM.GetStatus,"c_pf"));
${grid_frequency} [Hz]
return(parsejson(EM.GetStatus,"c_freq"));
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (8)
  • 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]
  • Total Returned Energy — Total active returned energy [Wh] — relevant for solar/grid feed-in
  • Phase A Returned Energy — Per-phase returned energy [Wh] — same available for B and C
  • Uptime — Seconds since last reboot, available in Sys.GetStatus
  • Free RAM — Available RAM in bytes
  • Phase Sequence Monitoring — Enable/disable phase sequence error detection via EM.SetConfig

Quellen