TapHome

Shelly Pro 3

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

Der Shelly Pro 3 ist ein 3-Kanal-Relaismodul für die Hutschienenmontage mit potentialfreien Kontakten. Jeder der drei unabhängigen Ausgänge kann bis zu 16 A schalten (insgesamt 48 A über alle Kanäle), was ihn geeignet macht für die Steuerung von Beleuchtungskreisen, Heizelementen oder dreiphasigen Lasten, bei denen jede Phase separat geschaltet wird. TapHome kommuniziert mit dem Gerät über HTTP mittels der Gen2 JSON-RPC 2.0 API im lokalen Netzwerk — keine Cloud-Verbindung erforderlich.

Im Unterschied zum Shelly Pro 3EM, der ein Stromzähler ist (nur Überwachung), ist der Pro 3 ein reines Relais-Schaltgerät ohne Leistungsmessfähigkeit. Das Gerät verbindet sich über WiFi, Ethernet (RJ45) oder Bluetooth und ist für die professionelle Installation in Elektro-Verteilerschränken konzipiert.

Konfiguration

Der Shelly Pro 3 verbindet sich über WiFi oder Ethernet. Während des TapHome-Vorlagenimports geben Sie die IP-Adresse des Geräts ein (Standard-Platzhalter 192.168.0.1).

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

Das LAN-Kabel darf nur ein- oder ausgesteckt werden, wenn das Gerät ausgeschaltet ist. Hot-Plugging des Ethernet-Kabels kann Probleme verursachen.

Wenn der ECO-Modus am Shelly-Gerät aktiviert ist, kann dies zu Kommunikations-Timeouts aufgrund der schnellen Abfrageintervalle der Vorlage (2,5–3 Sekunden) führen. Deaktivieren Sie den ECO-Modus in der Shelly-Weboberfläche, wenn Sie intermittierende Konnektivitätsprobleme feststellen.

Gerätefähigkeiten

Relaissteuerung

Die Vorlage stellt drei unabhängige Schaltgeräte bereit, eines pro Relaiskanal. Der Zustand jedes Relais wird aus der Antwort von /rpc/Switch.GetStatus?id=N gelesen (Feld output, Boolean) und über /rpc/Switch.Set?id=N&on=true oder on=false gesteuert, wobei N gleich 0, 1 oder 2 ist.

Alle drei Kanäle arbeiten unabhängig — sie können an verschiedenen Stromkreisen, verschiedenen AC-Phasen oder sogar gemischten AC/DC-Lasten betrieben werden. Die Relaiskontakte sind potentialfrei (Trockenkontakte), sodass jeder Ausgang einen völlig separaten Stromkreis von der Stromversorgung des Geräts selbst schalten kann.

Service-Diagnose

Die Vorlage stellt Service-Attribute auf Modulebene für die Geräteüberwachung bereit:

  • WiFi — Name des verbundenen WLAN-Netzwerks
  • IP-Adresse — aktuelle Stations-IP
  • Signalstärke — WiFi RSSI in dB
  • MAC — MAC-Adresse des Geräts

Das Modul-Leseskript prüft auch auf verfügbare Firmware-Updates und ausstehende Neustart-Anforderungen und zeigt diese als Warnungen in der TapHome-Oberfläche an.

Serviceaktionen

Zwei Serviceaktionen stehen auf Modulebene zur Verfügung:

  • Firmware aktualisieren — löst ein Firmware-Update auf die neueste stabile Version aus über /rpc/Shelly.Update
  • Neustart — löst einen Geräteneustart aus über /rpc/Shelly.Reboot
Weitere Fähigkeiten

Der Shelly Pro 3 stellt auch physische Schalter-/Tastereingangszustände (S1, S2, S3) über die Input-Komponente, interne Gerätetemperatur, Betriebszeit, RAM-Nutzung, Gerätezeit und Ethernet-Status über die RPC-API bereit. Ein Auto-Off-Timer ist über den Parameter toggle_after des Switch.Set-Befehls verfügbar. Diese Fähigkeiten können in einem zukünftigen Vorlagenupdate hinzugefügt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfen Sie, ob der Shelly mit WiFi oder Ethernet verbunden ist und eine gültige IP-Adresse hat
  2. Versuchen Sie den mDNS-Hostnamen (ShellyPro3-AABBCCDDEE.local) statt 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 es mit JSON antwortet, ist das Gerät erreichbar
  4. Prüfen Sie, ob TapHome Core und Shelly im gleichen Netzwerk / VLAN sind
  5. Bestätigen Sie, dass die Authentifizierung am Shelly-Gerät deaktiviert ist
Nur einige Kanäle reagieren
  1. Überprüfen Sie, ob jeder Kanal korrekt adressiert ist (id=0 für Ausgang 1, id=1 für Ausgang 2, id=2 für Ausgang 3)
  2. Prüfen Sie die Relais-LED-Anzeigen an der Gerätevorderseite — rote LED bedeutet, dass das entsprechende Relais geschlossen (AN) ist
  3. Testen Sie den nicht reagierenden Kanal manuell über den Browser: http://{device-ip}/rpc/Switch.Set?id=N&on=true
Probleme mit induktiver Last

Für induktive Lasten (Ventilatoren, Transformatoren, LED-Treiber) wird ein RC-Glied (0,1 uF / 100 Ohm / 1/2 W / 600 VAC) am Relaisausgang empfohlen, um vor Spannungsspitzen zu schützen und die Relaislebensdauer zu verlängern.

Shelly Gen2-Geräte unterstützen bis zu 6 gleichzeitige HTTP-Verbindungen. Vermeiden Sie gleichzeitiges Abfragen von zu vielen Systemen (TapHome, Home Assistant, eigene Skripte), um eine Verbindungserschöpfung zu vermeiden.

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

Shelly Pro 3

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 1 Schalter
boolean
Werte / Zustände: ON · OFF

Schalter 1

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=" + id);
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
return(parsejson(Switch.GetStatus, "output"));
Schaltzustand schreiben
VAR path := "/rpc/Switch.Set?id=" + id + "&on=" + SWITCH(St, 1, "true", "false");
SENDHTTPREQUEST(path);
Schalter 2 Schalter
boolean
Werte / Zustände: ON · OFF

Schalter 2

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=" + id);
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
return(parsejson(Switch.GetStatus, "output"));
Schaltzustand schreiben
VAR path := "/rpc/Switch.Set?id=" + id + "&on=" + SWITCH(St, 1, "true", "false");
SENDHTTPREQUEST(path);
Schalter 3 Schalter
boolean
Werte / Zustände: ON · OFF

Schalter 3

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=" + id);
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
return(parsejson(Switch.GetStatus, "output"));
Schaltzustand schreiben
VAR path := "/rpc/Switch.Set?id=" + id + "&on=" + SWITCH(St, 1, "true", "false");
SENDHTTPREQUEST(path);
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (9)
  • Input 1 State — Physical switch/button input S1 state, available via /rpc/Input.GetStatus?id=0
  • Input 2 State — Physical switch/button input S2 state, available via /rpc/Input.GetStatus?id=1
  • Input 3 State — Physical switch/button input S3 state, available via /rpc/Input.GetStatus?id=2
  • Device Temperature — Internal temperature in °C, available in Switch.GetStatus response (non-metered devices may still report temperature)
  • 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 for all 3 channels
  • Ethernet Status — Pro 3 has RJ45 LAN port; Ethernet status (IP, link) available via /rpc/Ethernet.GetStatus

Quellen