---
title: "Shelly Gas MQTT"
description: "Shelly Gas CNG oder LPG über einen MQTT-Broker: Gasalarmzustand, Gaskonzentration in ppm und Sensor-Selbsttest aus TapHome starten."
url: "https://taphome.com/de/compatibility/shelly-gas-mqtt/"
language: de
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","gas-detection","safety"]
  questions: ["Wie wird Shelly Gas über MQTT in TapHome integriert?","Was überwacht die TapHome-Vorlage Shelly Gas MQTT?","Wie aktiviert man MQTT am Shelly Gas und findet die Device ID?","Bei welchem ppm-Wert löst der Shelly Gas Alarm aus?","Warum zeigt die Gaskonzentration in TapHome -1 an?","Wo sollte ein Shelly Gas CNG oder LPG montiert werden?"]
---

# Shelly Gas MQTT

Kommunikation: Packet Parser → MQTT

- [Shelly Gas Produktseite](https://www.shelly.com/en/products/shop/shelly-gas)

> 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

Der Shelly Gas (Modell SHGS-1) ist ein netzbetriebener Wi-Fi-Detektor für brennbare Gase. Er wird direkt in eine Steckdose gesteckt, misst die Gaskonzentration laufend und löst beim Überschreiten eines Schwellenwerts seinen eigenen Ton- und Lichtalarm aus. Er wird als zwei getrennte Produkte verkauft — **Shelly Gas CNG** für Erdgas (Methan) und **Shelly Gas LPG** für Flüssiggas (Propan / Butan). Beide haben dieselbe Firmware und dieselben MQTT-Topics, sodass diese eine Vorlage mit beiden funktioniert; nur das Sensorelement und die empfohlene Montagehöhe unterscheiden sich.

Diese Vorlage verbindet sich mit einem MQTT-Broker, nicht direkt mit dem Gerät. Das Modul abonniert `shellies/#` auf dem Broker und filtert die Nachrichten eines bestimmten Shelly Gas anhand seiner Device ID heraus. TapHome empfängt den Alarmzustand und die Gaskonzentration so, wie das Gerät sie veröffentlicht, und kann einen Sensor-Selbsttest starten.

> [!NOTE]
> Es gibt auch eine HTTP-Variante dieser Vorlage (`Shelly Gas`). Verwenden Sie diese MQTT-Vorlage, wenn in der Installation bereits ein MQTT-Broker läuft und Push-Updates bevorzugt werden; die HTTP-Vorlage, wenn kein Broker vorhanden ist.

> [!WARNING]
> Shelly Gas ist ein Sicherheitsgerät. Die TapHome-Integration ergänzt den eingebauten Signalgeber und den LED-Alarm — sie ersetzt sie nicht. Signalgeber und LED arbeiten unabhängig von MQTT, vom Broker und von der TapHome-Steuereinheit und funktionieren weiter, wenn eines davon nicht verfügbar ist.

## Hardware

### Platzierung

Das Gerät wird in eine Netzsteckdose gesteckt — es gibt keine Verkabelung. Die richtige Montagehöhe hängt von der Gasvariante ab, weil sich die beiden Gase in der Luft unterschiedlich verhalten.

| Variante | Erkanntes Gas | Verhalten in der Luft | Empfohlene Platzierung |
|----------|---------------|-----------------------|------------------------|
| Shelly Gas CNG | Erdgas (Methan) | Leichter als Luft, sammelt sich an der Decke | 0,3–1 m unter der Decke, senkrecht, und 1,5 m von der Gasquelle entfernt |
| Shelly Gas LPG | Flüssiggas (Propan / Butan) | Schwerer als Luft, sammelt sich am Boden | 0,3 m über dem Boden, innerhalb von 1,5 m zur Gasquelle |

> [!WARNING]
> CNG und LPG sind zwei getrennte Produkte mit unterschiedlichen Sensoren, kein umschaltbarer Modus. Wenn die Variante unklar ist, prüfen Sie die Beschriftung auf der Rückseite des Geräts.

### Spezifikation

| Parameter | Wert |
|-----------|------|
| Stromversorgung | 110–230 V ±10 %, 50/60 Hz AC |
| Leistungsaufnahme | < 3 W |
| Alarmempfindlichkeit | 6 % LEL (untere Explosionsgrenze) |
| Schalldruck | ≥ 70 dB |
| Wi-Fi | 802.11 b/g/n, 2400–2484 MHz |
| Reichweite | bis 50 m im Freien, bis 30 m in Gebäuden |
| Betriebstemperatur | −10 °C bis +50 °C |
| Ausgang Ventilmanipulator-Buchse | 11–13 V, 500 mA (externes Zubehör, wird von dieser Vorlage nicht gesteuert) |
| Abmessungen | 89,5 × 89,5 × 38 mm (ohne Stecker) |

### Lokale Anzeige

LED-Ring und Signalgeber sind die geräteeigene Anzeige. TapHome sieht nur die beiden Topics, die unter Gerätefunktionen beschrieben sind — diese Signale tragen also Informationen, die die Steuereinheit nicht erreichen.

| LED-Ring | Bedeutung |
|----------|-----------|
| Dauerhaft grün | Sensor im Normalbetrieb |
| Dauerhaft gelb | Sensorfehler |
| Blinkt rot | Alarm |
| Blinkt rot / gelb / grün in Folge | Sensor wärmt auf |

| Signalgeber-Muster | Ereignis |
|--------------------|----------|
| Zwei kurze Pieptöne pro Sekunde | Aufwärmen nach dem Einschalten gestartet |
| Ein langer Piepton pro Sekunde | Aufwärmen beendet |
| Langer Piepton einmal pro Sekunde, bis der Fehler behoben ist | Sensorfehler |
| Drei kurze Pieptöne zweimal pro Sekunde | Selbsttest läuft |
| Langer Piepton einmal pro Sekunde | Selbsttest erfolgreich abgeschlossen |
| Langer Piepton einmal pro Sekunde, bis das Leck weg ist oder sich verschärft | Leichtes Gasleck |
| Fünf Sekunden Piepen mit einer Sekunde Pause, bis das Leck weg ist | Schweres Gasleck |

Nach dem Einschalten wärmt sich der Sensor etwa drei Minuten lang auf. Der LED-Ring blinkt in dieser Zeit nacheinander rot / gelb / grün und der Gasmesswert ist nicht gültig.

## Konfiguration

### MQTT am Gerät aktivieren

1. Öffnen Sie die Weboberfläche des Geräts in einem Browser.
2. Gehen Sie zu **Internet and Security** → **Advanced - Developer Settings**.
3. Aktivieren Sie **Enable action execution via MQTT**.
4. Füllen Sie das Feld **Server** nach dem Muster `{IP-Adresse des MQTT-Brokers}:{Port}` aus — zum Beispiel `192.168.1.10:1883`.
5. Drücken Sie **SAVE**. Das Gerät verbindet sich neu und beginnt, an den Broker zu publizieren.

> [!WARNING]
> Auf Gen1-Firmware deaktiviert das Aktivieren von MQTT die Shelly-Cloud-Verbindung — beides gleichzeitig ist nicht möglich. Gen1-Geräte unterstützen außerdem kein MQTT über TLS, der Broker muss also unverschlüsseltes MQTT auf Port 1883 annehmen. Halten Sie den Broker deshalb in einem vertrauenswürdigen lokalen Netzwerk.

### Device ID auslesen

Gehen Sie in der Weboberfläche zu **Settings** → **Device Info** → **Device ID**. Benötigt wird die erste Zeichenfolge, nicht der Wert in Klammern. Es handelt sich um eine Shelly-ID mit sechs oder mehr Zeichen, zum Beispiel `35FA58`. Derselbe Bezeichner erscheint im Wi-Fi-Netz, das das Gerät im Access-Point-Modus aufspannt (`ShellyGas-35FA58`), und bildet das MQTT-Topic-Präfix `shellies/shellygas-35FA58/`.

### Vorlage einrichten

Die Vorlage fragt drei Importparameter ab:

| Importparameter | Standard | Einzutragender Wert |
|-----------------|----------|---------------------|
| Mqtt Broker IP address | `192.168.0.1` | IP-Adresse des MQTT-Brokers — **nicht** die des Shelly Gas |
| Mqtt Broker port | `1883` | Port, auf dem der Broker lauscht |
| Device ID | — | Die oben ausgelesene Shelly-ID, z. B. `35FA58` |

Der Importparameter Device ID füllt die Modulvariable `deviceID`, die das Topic-Präfix für jedes vom Modul verwendete Topic bildet. Das Modul abonniert `shellies/#` und seine Listener-Skripte filtern die eingehenden Nachrichten nach diesem Präfix.

Standardmäßig veröffentlicht das Gerät alle 30 Sekunden ein Update. Wird der Geräteparameter `mqtt_update_period` auf `0` gesetzt, meldet es nur noch bei Änderung.

## Gerätefunktionen

### Gasalarm

**Gasalarm** ist ein Mehrwertschalter, gespeist aus `shellies/shellygas-<deviceID>/sensor/gas`. Er trägt die Alarmstufe, die das Gerät bereits aus der gemessenen Konzentration abgeleitet hat.

| TapHome-Wert | MQTT-Payload | Bedeutung |
|--------------|--------------|-----------|
| Kein Alarm | `none` | Konzentration unter 1800 ppm |
| Leichtes Gasleck | `mild` | Konzentration ab 1800 ppm |
| Schweres Gasleck | `heavy` | Konzentration ab 3000 ppm |
| Selbsttest | `test` | Nach einem erfolgreichen Selbsttest veröffentlicht |
| Alarmzustand ist unbekannt | `unknown` oder ein beliebiges anderes Payload | Das Gerät kann die Alarmstufe nicht angeben |

Beide Schwellenwerte sind in der Geräte-Firmware fest hinterlegt und nicht änderbar.

### Gaskonzentration

**Gaskonzentration** liest den Rohwert aus `shellies/shellygas-<deviceID>/sensor/concentration` in parts per million, Bereich 0–65535 ppm. Es ist dieselbe physikalische Messung wie beim Gasalarm, bevor die Firmware ihre Schwellenwerte anwendet.

> [!TIP]
> Verwenden Sie Gasalarm für die Alarmlogik und Gaskonzentration für Trends, Diagramme und eigene Frühwarngrenzen unter 1800 ppm. Eine Regel sollte keine eigene Alarmstufe aus dem ppm-Wert ableiten und erwarten, dass sie mit dem Gerät übereinstimmt — Signalgeber und LED folgen den festen Firmware-Schwellen.

> [!NOTE]
> Das Gerät veröffentlicht auf dem Konzentrations-Topic `-1`, sobald der Messwert nicht gültig ist — während des rund dreiminütigen Aufwärmens nach dem Einschalten und bei einem Sensorfehler. Die Vorlage speichert dieses `-1` unverändert; es ist kein TapHome-Fehlercode.

### Selbsttest

Das Modul stellt die Serviceaktion **Selbsttest** bereit, die auf `shellies/shellygas-<deviceID>/sensor/start_self_test` publiziert. Während des Tests piept das Gerät dreimal kurz, zweimal pro Sekunde, und veröffentlicht bei Erfolg `test` auf dem Gas-Topic — in TapHome erscheint das als Wert **Selbsttest** des Gasalarms.

## Bekannte Einschränkungen

### „Aktiven Alarm stummschalten" erreicht das Gerät nicht

Die Vorlage enthält eine Taste **Aktiven Alarm stummschalten**, die in der aktuellen Vorlagenrevision jedoch wirkungslos ist. Die Taste publiziert auf das wörtliche Topic `shellies/shellygas-<deviceid>/sensor/mute` — der Platzhalter `<deviceid>` wird nie durch die konfigurierte Device ID ersetzt, die Nachricht geht also an ein Topic, das kein reales Gerät abonniert. Die anderen drei Topics derselben Vorlage bilden ihr Präfix korrekt aus der Variablen `deviceID`.

> [!WARNING]
> Verlassen Sie sich nicht auf die Taste „Aktiven Alarm stummschalten". Das Stummschalten eines aktiven Alarms aus TapHome funktioniert erst, wenn die Vorlage so korrigiert ist, dass sie das Topic aus der Variablen `deviceID` bildet. Der Alarm lässt sich jederzeit direkt am Gerät über **Mute** in dessen Weboberfläche stummschalten — und auch nur, solange tatsächlich ein Alarm aktiv ist.

## Fehlerbehebung

### In TapHome kommen keine Werte an

1. Prüfen Sie, ob MQTT am Gerät aktiviert ist und das Feld **Server** die Broker-Adresse in der Form `{IP}:{Port}` enthält
2. Kontrollieren Sie, dass der Modul-Endpunkt auf den **MQTT-Broker** zeigt, nicht auf die IP-Adresse des Shelly Gas
3. Bestätigen Sie, dass die Device ID exakt dem entspricht, was **Settings** → **Device Info** → **Device ID** anzeigt — nur die erste Zeichenfolge, ohne den Wert in Klammern
4. Abonnieren Sie mit einem MQTT-Client (zum Beispiel MQTT Explorer) `shellies/#` und prüfen Sie, ob Nachrichten unter `shellies/shellygas-<Ihre-ID>/` eintreffen
5. Wurde das Gerät auf Meldung nur bei Änderung umgestellt (`mqtt_update_period = 0`), führen Sie die Serviceaktion **Selbsttest** aus — ein erfolgreicher Test publiziert auf dem Gas-Topic

### Gaskonzentration zeigt -1

Der Sensormesswert ist nicht gültig. Entweder wärmt das Gerät noch auf — etwa drei Minuten nach dem Einschalten — oder der Sensor hat einen Fehler. Ein Fehler zeigt sich am Gerät als dauerhaft gelbe LED und ein langer Piepton einmal pro Sekunde. Diese Vorlage liest das Topic mit dem Sensorzustand nicht, ein Fehler erreicht TapHome also nur als dieses `-1`.

### Gasalarm zeigt „Alarmzustand ist unbekannt"

Dieser Wert ist der Rückfallzweig der Vorlage. Er fängt das dokumentierte Payload `unknown` und jedes Payload außerhalb der vier bekannten Werte ab. Prüfen Sie den LED-Ring am Gerät, um zu sehen, in welchem Zustand der Sensor tatsächlich ist.

### Das Gerät ist aus der Shelly Cloud verschwunden

Auf Gen1-Firmware zu erwarten — das Aktivieren von MQTT deaktiviert die Cloud-Verbindung. Erreichen Sie die Weboberfläche stattdessen über das lokale Netzwerk, über die Geräte-IP oder den mDNS-Hostnamen `shellygas-<MAC>.local`.

## 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 3

Diese Geräte erscheinen nach dem Import in TapHome.

Shelly Gas MQTT Modul

Serviceaktionen

|            |                                                                                                                                             |
|------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| Selbsttest | Startet den Sensor-Selbsttest am Gerät — der Signalgeber piept dreimal, zweimal pro Sekunde, und der Gasalarm meldet bei Erfolg Selbsttest. |

Benutzerdefinierte Variablen

`deviceID` (string) Shelly-ID des Shelly Gas — die Zeichenfolge mit sechs oder mehr Zeichen, die das MQTT-Topic-Präfix shellies/shellygas-&lt;deviceID&gt;/ bildet (z. B. 35FA58). Auslesbar in der Shelly-Weboberfläche unter Settings → Device Info → Device ID.

Open the Shelly web interface → Settings → Device Info → Device ID and copy the first string of characters (not the value in brackets). The template asks for it as the 'Device ID' import parameter.

Serviceaktionen

Self test

```taphome
mqttpublish("shellies/shellygas-"+deviceID+"/sensor/start_self_test","1");
```

Gasalarm Mehrwertschalter Nur lesen

Vom Sensor gemeldete Alarmstufe — Kein Alarm, Leichtes Gasleck (ab 1800 ppm), Schweres Gasleck (ab 3000 ppm), Selbsttest oder Alarmzustand ist unbekannt. Die Schwellenwerte sind in der Geräte-Firmware fest hinterlegt und nicht änderbar.

enum multi-value switch

Werte / Zustände: No alarm · Mild gas leak · Heavy gas leak · Self Test · Alarm state is unknown

Schaltzustand lesen

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
```

Schaltzustand schreiben

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Mu);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Mu, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Mu + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Mu + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Mu, "write"); # use "append" mode to append data to existing file
```

Listener

```taphome
# Parse received bytes:
IF(RECEIVEDMSG.TOPIC = "shellies/shellygas-"+deviceID+"/sensor/gas")
 switch(TOSTRING(RECEIVEDMSG.PAYLOAD),
 "none", Mu := 0,
 "mild",Mu := 1,
 "heavy",Mu := 2,
 "test", Mu := 3,
 Mu := 4);
END
```

Gaskonzentration Variable Nur lesen

Gemessene Konzentration brennbarer Gase in parts per million, Bereich 0–65535 ppm. Während des Aufwärmens oder bei einem Sensorfehler meldet das Gerät -1.

numeric Einheit: ppm

Schreiben

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
```

Lesen (Modul)

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
```

Listener

```taphome
# Parse received bytes:
IF(RECEIVEDMSG.TOPIC = "shellies/shellygas-"+deviceID+"/sensor/concentration")
 Va := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Aktiven Alarm stummschalten Taster Lesen und Schreiben

Taste zum Stummschalten eines gerade aktiven Alarms. In der aktuellen Vorlagenrevision wirkungslos — das Topic, auf das sie publiziert, wird nicht aus der konfigurierten Device ID gebildet.

action push button

Tastenstatus schreiben

```taphome
MQTTPUBLISH("shellies/shellygas-<deviceid>/sensor/mute","1");

# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Bp);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Bp, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Bp + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Bp + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Bp, "write"); # use "append" mode to append data to existing file
```

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

Mögliche Verbesserungen (6)

- Sensor state — unknown | warmup | normal | fault — the template does not read it, so a sensor fault does not surface as its own state in TapHome (only indirectly as -1 on the concentration).
- Self-test state — not\_completed | completed | running | pending — the self-test can be started from TapHome, but its progress is not read back.
- Unmute alarm — Any payload unmutes an active alarm. Not published by the template.
- Valve state — unknown | closed | opened | not\_connected | failure | closing | opening | checking — state of the optional external valve manipulator (11–13 V, 500 mA jack).
- Valve control — Accepts the literal payloads 'open' or 'close'. The template does not publish it — this template offers no valve control at all.
- Connection status — Last Will and Testament topic — true on connect, false on disconnect. Could detect an offline sensor.

## 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`               |
| Device ID              | Beim Import eingeben |

## Quellen

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12
- Shelly Gas — Device-Specific MQTT API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-gas) 2026-08-25
- Shelly Gas — Knowledge Base Specification
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-gas) 2026-08-25
- Shelly Gas Sensor PPM Threshold
  
  [support.shelly.cloud](https://support.shelly.cloud/en/support/solutions/articles/103000226300-shelly-gas-sensor-ppm-threshold) 2026-08-25
- Shelly Gas User and Safety Guide
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-gas) 2026-08-25
  
  [PDF](https://taphome.com/compatibility/devices/shelly-gas-mqtt/manufacturer/user-guide.pdf)

Herstellerdokumente sind © ihrer jeweiligen Eigentümer. Sie werden so bereitgestellt, wie der Hersteller sie veröffentlicht hat, nur zur Information.

## 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/)

