---
title: "Shelly Plus 1PM"
description: "Shelly Plus 1PM über einen MQTT-Broker statt HTTP: Leistung (kW), Energie (kWh), Relais schalten, dazu Temperatur, Spannung und Strom des Geräts."
url: "https://taphome.com/de/compatibility/shelly-plus-1pm-mqtt/"
language: de
lastmod: 2026-03-31
generator: hugo
ai:
  topics: ["mqtt","electric-meter","wifi","relay","power-metering","gen2plus"]
  questions: ["Wie integriere ich Shelly Plus 1PM mit TapHome über MQTT?","Was misst die Shelly-Plus-1PM-MQTT-TapHome-Vorlage?","Wie finde ich die MQTT Client ID des Shelly Plus 1PM?","Warum meldet mein Shelly Plus 1PM MQTT keine Daten?","Welche Diagnosewerte sind für Shelly Plus 1PM über MQTT verfügbar?","Wie steuere ich das Shelly Plus 1PM Relais über MQTT aus TapHome?"]
---

# Shelly Plus 1PM

Kommunikation: Packet Parser → MQTT

- [Shelly Plus 1PM Produktseite](https://www.shelly.com/en/products/shop/shelly-plus-1pm)
- [Shelly Gen2+ MQTT API Dokumentation](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/)

> Netzwerkadresse
> 
> Beim in TapHome integrierten MQTT-Broker geben Sie in TapHome `127.0.0.1` als Broker-Adresse ein. Im Gerät geben Sie die IP-Adresse des TapHome Core ein und richten für den Core eine IP-Reservierung im Router ein.
> 
> [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/)

## Integrationsanleitung

Das Shelly Plus 1PM ist ein kompaktes Gen2+ WLAN-Relais mit integrierter Leistungsmessung. Es 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. Dies ist die **MQTT-Variante** der TapHome-Vorlage — das Gerät kommuniziert über einen MQTT-Broker anstelle von direktem HTTP-Polling, was in Umgebungen mit mehreren Controllern oder wenn sich das Gerät in einem anderen VLAN befindet nützlich ist.

Die Vorlage enthält zwei Geräte: einen **Stromzähler** für Leistungs- und Energieüberwachung und einen **Schalter** für die Relaissteuerung. Drei Serviceattribute auf Modulebene zeigen interne Temperatur, Spannung und Strom an.

## Konfiguration

### MQTT Client ID

Jedes Shelly Plus 1PM hat eine eindeutige MQTT Client ID im Format `shellyplus1pm-<DEVICEID>`, wobei `<DEVICEID>` die 12-stellige hexadezimale MAC-Adresse ist (z. B. `shellyplus1pm-AABBCCDDEE00`).

Die Client ID finden Sie:

- In der Shelly Web-Oberfläche: **Settings** → **MQTT** → **Client ID**
- Über API: `GET http://<device-ip>/rpc/MQTT.GetConfig` → Feld `client_id`
- Auf dem Geräteetikett (MAC-Adresse)

> [!TIP]
> Dieses Gerät unterstützt **mDNS-Discovery**. Sie können den Hostnamen `shellyplus1pm-{MAC}.local` anstelle einer IP-Adresse verwenden, um die Konnektivität zu prüfen. Ersetzen Sie `{MAC}` durch die vollständige MAC-Adresse des Geräts in hexadezimaler Kleinschreibung (z. B. `shellyplus1pm-aabbccddee00.local`).

### MQTT aktivieren

1. Öffnen Sie die Shelly Web-Oberfläche: `http://<device-ip>/`
2. Navigieren Sie zu **Settings** → **MQTT**
3. Aktivieren Sie **MQTT**
4. Setzen Sie **Server**: `<broker-ip>:<port>` (z. B. `192.168.1.10:1883`)
5. Die **Client ID** ist automatisch ausgefüllt — belassen Sie sie unverändert, es sei denn, Sie haben einen bestimmten Grund sie zu ändern
6. Klicken Sie auf **Save** und starten Sie das Gerät neu

> [!TIP]
> Um die MQTT-Funktion zu überprüfen, verwenden Sie einen MQTT-Client (z. B. MQTT Explorer) und abonnieren Sie `shellyplus1pm-<DEVICEID>/#`. Sie sollten Statusnachrichten vom Gerät sehen, einschließlich `shellyplus1pm-<DEVICEID>/status/switch:0`.

### Vorlageneinrichtung

Nach dem Import der Vorlage in TapHome:

1. Öffnen Sie das **Shelly Plus 1PM MQTT Module**
2. Setzen Sie die **MQTT Broker IP** und den **Port** (Standard `1883`)
3. Setzen Sie die Variable **plug1topic** auf die MQTT Client ID Ihres Shelly Plus 1PM (z. B. `shellyplus1pm-AABBCCDDEE00`)

Das Modul abonniert `{plug1topic}/status/switch:0` und veröffentlicht Steuerbefehle an `{plug1topic}/command/switch:0`.

## Gerätefähigkeiten

### Leistungsmessung

Der Stromzähler liest zwei Werte aus der MQTT-Statusnachricht `{plug1topic}/status/switch:0`:

- **Momentanleistung** — `apower` in Watt gemeldet, von der Vorlage in kW umgerechnet (Division durch 1000)
- **Kumulativer Energieverbrauch** — `aenergy.total` in Wattstunden gemeldet, von der Vorlage in kWh umgerechnet (Division durch 1000)

Der Zähler ist schreibgeschützt — er aktualisiert sich automatisch, wenn das Gerät eine Statusnachricht an den MQTT-Broker sendet.

### Relaissteuerung

Der Schalter steuert das Relais:

- **Status lesen** — abonniert `{plug1topic}/status/switch:0` und liest das boolesche Feld `output`
- **Status schreiben** — veröffentlicht `on` oder `off` an `{plug1topic}/command/switch:0`

Das Relais unterstützt Lasten bis 3500 W / 16 A bei 230 V AC.

### Diagnose

Drei Serviceattribute auf Modulebene werden aus demselben JSON-Payload `status/switch:0` geparst:

| Attribut | Einheit | Beschreibung |
|----------|---------|-------------|
| Interne Temperatur | °C | Interne Gerätetemperatur — überwacht den thermischen Zustand von Relais und PCB |
| Spannung | V | Wechselstrom-Versorgungsspannung am Relaiseingang |
| Strom | A | Laststrom durch den Relaisausgang |

Alle drei Attribute zeigen „Unknown" an, bis die erste MQTT-Statusnachricht eintrifft (Anfangswert ist `NaN`).

### Weitere Fähigkeiten

Das Shelly Plus 1PM bietet auch Leistungsfaktor, Netzfrequenz, rückgespeiste Energie (für bidirektionale Messung), physischen Eingangsstatus, Toggle-Befehl, Auto-Off-Timer und eine erzwungene Statusaktualisierung über seine MQTT-API. Diese Fähigkeiten können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

## Fehlerbehebung

### MQTT-Nachrichten kommen nicht an

1. Überprüfen Sie, dass MQTT in der Shelly Web-Oberfläche aktiviert ist (**Settings** → **MQTT**)
2. Stellen Sie sicher, dass Broker-Adresse und Port sowohl in den Shelly-Geräteeinstellungen als auch in den TapHome-Moduleinstellungen korrekt sind
3. Prüfen Sie, ob die Variable `plug1topic` exakt mit der MQTT Client ID des Shelly übereinstimmt (z. B. `shellyplus1pm-AABBCCDDEE00`)
4. Verwenden Sie einen MQTT-Client (z. B. MQTT Explorer) und abonnieren Sie `shellyplus1pm-#`, um zu überprüfen, ob das Gerät Nachrichten sendet

### Leistungsmessung zeigt Null

1. Stellen Sie sicher, 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 bei Stromfluss durch das Relais
3. Abonnieren Sie `{plug1topic}/status/switch:0` mit einem MQTT-Client und prüfen Sie, ob `apower` einen Wert ungleich Null zurückgibt

### Relais reagiert nicht auf Befehle

1. Überprüfen Sie, ob TapHome den MQTT-Broker erreichen kann (korrekte IP und Port in den Moduleinstellungen)
2. Prüfen Sie, ob der Wert von `plug1topic` mit der MQTT Client ID des Geräts übereinstimmt
3. Testen Sie durch Veröffentlichung von `on` an `{plug1topic}/command/switch:0` über einen MQTT-Client — das Relais sollte einschalten

### Diagnose zeigt „Unknown"

1. Alle drei Serviceattribute (Temperatur, Spannung, Strom) zeigen „Unknown" bis zum Eintreffen der ersten Statusnachricht
2. Wenn die Werte nach dem Einschalten des Geräts „Unknown" bleiben, prüfen Sie, ob die MQTT-Verbindung aktiv ist und Statusnachrichten gesendet werden
3. Starten Sie das Shelly-Gerät neu, um eine neue Statusveröffentlichung zu erzwingen

> [!WARNING]
> Gen2+ Shelly-Geräte unterstützen MQTT mit optionalem TLS. Wenn TLS nicht konfiguriert ist, erfolgt die Kommunikation zwischen Gerät und MQTT-Broker unverschlüsselt (Plain MQTT, Port 1883). Für verschlüsselte Kommunikation aktivieren Sie TLS in den Shelly MQTT-Einstellungen und verwenden Sie Port 8883.

## Installation in TapHome

### Voraussetzungen

- Shelly-Gerät mit Wi-Fi (2,4 GHz) verbunden, z. B. über die Shelly App oder den eigenen Access Point des Geräts
- MQTT-Broker in Ihrem lokalen Netzwerk aktiv (z. B. Mosquitto, Home Assistant oder der integrierte TapHome-Broker)
- TapHome CCU im selben Netzwerk wie der Broker

> [!WARNING]
> Auf **Gen1**-Geräten **deaktiviert** das Aktivieren von MQTT die **Shelly Cloud**. Beides kann nicht gleichzeitig betrieben werden. Auf Gen2/Plus-Geräten gilt diese Einschränkung nicht.

### Schritt 1 — MQTT auf dem Shelly-Gerät aktivieren

#### Gen1-Geräte (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Öffnen Sie die Shelly-Weboberfläche: `http://<device-ip>/`
2. Navigieren Sie zu **Internet & Security** → **Advanced — MQTT**
3. Aktivieren Sie **MQTT**
4. Setzen Sie **MQTT Server**: `<broker-ip>:<port>` (z. B. `192.168.1.10:1883`)
5. Optional setzen Sie **MQTT User** und **MQTT Password**, falls Ihr Broker eine Authentifizierung erfordert
6. Klicken Sie auf **Save** — das Gerät startet neu und verbindet sich mit dem Broker

#### Gen2 / Plus-Geräte (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Öffnen Sie die Shelly-Weboberfläche: `http://<device-ip>/`
2. Navigieren Sie zu **Settings** → **MQTT**
3. Aktivieren Sie **MQTT**
4. Setzen Sie **Server**: `<broker-ip>:<port>` (z. B. `192.168.1.10:1883`)
5. Die **Client ID** ist mit der Geräte-ID vorausgefüllt (z. B. `shellyplus1pm-AABBCCDDEE`) — belassen Sie sie so, es sei denn, Sie haben einen bestimmten Grund zur Änderung
6. Klicken Sie auf **Save** und starten Sie das Gerät neu

Beim integrierten TapHome-Broker ist `<broker-ip>` die IP-Adresse des TapHome Core. Geben Sie dem Core eine IP-Reservierung im Router, sonst verliert das Gerät den Broker, wenn der Router die Adresse ändert → [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/).

> [!TIP]
> Um zu überprüfen, ob MQTT funktioniert, verwenden Sie einen MQTT-Client (z. B. MQTT Explorer) und abonnieren Sie `shellies/#` (Gen1) oder `<device-id>/#` (Gen2). Sie sollten Statusnachrichten vom Gerät sehen.

### Schritt 2 — Device ID / MQTT Client ID ermitteln

Einige Vorlagen erfordern einen Parameter **Device ID** oder **MQTT Client ID**. Dies ist die eindeutige Kennung, die in MQTT-Topics verwendet wird.

- **Gen1:** auf dem Etikett als MAC-Adresse zu finden (z. B. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, z. B. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** in der Shelly-Weboberfläche unter **Settings** → **Device Info** → **Device ID** zu finden, oder auf dem Geräteetikett

### Schritt 3 — Konfiguration in TapHome

1. Fügen Sie in TapHome ein neues Modul **Packet Parser (MQTT)** hinzu
2. **IP Address:** `127.0.0.1` für den integrierten TapHome-Broker (die Steuereinheit verbindet sich mit sich selbst, die Adresse ändert sich nie); für einen externen Broker dessen IP-Adresse (z. B. `192.168.1.10`)
3. **Port:** `1883` (Standard; verwenden Sie `8883` für TLS)
4. **Device ID / MQTT Client ID:** Geben Sie den Wert aus Schritt 2 ein (falls von der Vorlage benötigt)
5. Importieren Sie die Vorlage — TapHome abonniert automatisch die Geräte-Topics

## Verfügbare Geräte 2

Diese Geräte erscheinen nach dem Import in TapHome.

Shelly Plus 1PM MQTT Module Modul

Serviceattribute

|                    |                                                                                 |
|--------------------|---------------------------------------------------------------------------------|
| Interne Temperatur | Interne Gerätetemperatur — überwacht den thermischen Zustand von Relais und PCB |
| Spannung           | Wechselstrom-Versorgungsspannung am Relaiseingang                               |
| Strom              | Laststrom durch den Relaisausgang                                               |

Benutzerdefinierte Variablen

|                       |                                                                                                                                                                    |
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `plug1topic` (string) | MQTT Client ID des Shelly Plus 1PM — Format ist 'shellyplus1pm-&lt;deviceid&gt;'. Zu finden in der Web-Oberfläche des Geräts: Settings → MQTT Settings → Client ID |

Listener

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    internalTemp := PARSEJSON(RECEIVEDMSG.PAYLOAD, "temperature.tC");
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD, "voltage");
    current := PARSEJSON(RECEIVEDMSG.PAYLOAD, "current");
    VAR errors := PARSEJSON(RECEIVEDMSG.PAYLOAD, "errors", TRUE);
    
    IF (!ISNULL(errors))
        VAR errCount := LENGTH(errors);
        VAR i := 0;
        VAR errorText := "";
        
        WHILE i < errCount
            IF LENGTH(errorText)
                errorText += ", ";
            END
            errorText := errorText + GETAT(errors, i);
            i += 1;
        LOOP
        
        IF LENGTH(errorText)
            ADDERROR(errorText);
        END
    END
END
```

Serviceattribute

Internal temperature

```taphome
IF(ISNAN(internalTemp), "Unknown", internalTemp + "°C");
```

Voltage

```taphome
IF(ISNAN(voltage), "Unknown", voltage + "V");
```

Current

```taphome
IF(ISNAN(current), "Unknown", current + "A");
```

Stromzähler Stromzähler Nur lesen

Momentanleistung (kW) und kumulativer Energieverbrauch (kWh) aus dem MQTT-Status-Payload

numeric Einheit: kW / kWh

Listener

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    Ed := PARSEJSON(RECEIVEDMSG.PAYLOAD, "apower") / 1000.0;
    To := PARSEJSON(RECEIVEDMSG.PAYLOAD, "aenergy.total") / 1000.0;
END
```

Schalter Schalter Lesen und Schreiben

Relais Ein/Aus-Steuerung über MQTT-Befehlstopic

boolean

Werte / Zustände: ON · OFF

Schaltzustand schreiben

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH(plug1topic + "/command/switch:0", value);
```

Listener

```taphome
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    St := PARSEJSON(RECEIVEDMSG.PAYLOAD, "output");
END
```

**Verbindung:** Packet Parser → MQTT • Hostname: `shellyplus1pm-{MAC}.local`

Mögliche Verbesserungen (8)

- Power Factor — Power factor value, available in switch:0 status JSON for metered devices
- Network Frequency — AC network frequency in Hz, available in switch:0 status JSON
- Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
- Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline device.
- Toggle Command — Toggle relay state; template only supports on/off
- Auto-off Timer — Turn ON with auto-off timer in seconds via 'on,N' command
- Input State — Physical switch/button input state, available via Input.GetStatus RPC method over MQTT
- Force Status Update — Request device to publish current status on all component topics

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt   | Standard                 |
|------------------------|--------------------------|
| Mqtt Broker IP-Adresse | `192.168.0.1`            |
| Mqtt Broker port       | `1883`                   |
| Shelly MQTT Client ID  | `shellyplus1pm-deviceId` |

## Quellen

- Shelly Gen2+/Gen3 RPC API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/) 2026-03-29
- Shelly Gen2+ Switch Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Switch/) 2026-03-29
- Shelly Gen2+ System (Sys) Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Sys/) 2026-03-29
- Shelly Gen2+ WiFi Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/WiFi/) 2026-03-29
- Shelly Gen2+ MQTT Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/) 2026-03-29
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-29
- Shelly Plus 1PM Knowledge Base — specs & wiring
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-plus-1pm) 2026-03-31

## Verwandte Dokumentation

- [MQTT Integration](https://taphome.com/de/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/de/docs/integration/packet-parser/)
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/)
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/)
- [MQTT-Broker](https://taphome.com/de/docs/integration/packet-parser/mqtt-broker/)
- [Listener-Skripte](https://taphome.com/de/docs/script/listener-scripts/)

