---
title: "Shelly Gas MQTT"
description: "Stan alarmu gazowego i stężenie w ppm z detektora Shelly Gas CNG lub LPG przez MQTT, plus autotest czujnika. Szablon TapHome."
url: "https://taphome.com/pl/compatibility/shelly-gas-mqtt/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","gas-detection","safety"]
  questions: ["Jak zintegrować Shelly Gas z TapHome przez MQTT?","Co monitoruje szablon Shelly Gas MQTT w TapHome?","Jak włączyć MQTT w Shelly Gas i znaleźć jego Device ID?","Przy jakim stężeniu w ppm uruchamia się alarm Shelly Gas?","Dlaczego stężenie gazu w TapHome pokazuje -1?","Gdzie zamontować jednostkę Shelly Gas CNG lub LPG?"]
---

# Shelly Gas MQTT

Komunikacja: Packet Parser → MQTT

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

> Adres w sieci
> 
> Przy brokerze MQTT wbudowanym w TapHome wpisz w TapHome jako adres brokera `127.0.0.1`. W urządzeniu wpisz adres IP TapHome Core i nadaj jednostce Core rezerwację IP w routerze.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly Gas (model SHGS-1) to zasilany z sieci detektor gazów palnych Wi-Fi. Wpina się bezpośrednio do gniazdka, mierzy stężenie gazu w sposób ciągły i po przekroczeniu progu uruchamia własny alarm dźwiękowy i świetlny. Jest sprzedawany jako dwa osobne produkty — **Shelly Gas CNG** dla sprężonego gazu ziemnego (metan) i **Shelly Gas LPG** dla skroplonego gazu ropopochodnego (propan / butan). Oba mają to samo oprogramowanie układowe i te same tematy MQTT, więc ten jeden szablon działa z obydwoma; różnią się jedynie elementem czujnikowym i zalecaną wysokością montażu.

Ten szablon łączy się z brokerem MQTT, a nie bezpośrednio z urządzeniem. Moduł subskrybuje temat `shellies/#` na brokerze i na podstawie Device ID filtruje wiadomości należące do konkretnej jednostki Shelly Gas. TapHome odbiera stan alarmu i stężenie gazu w postaci publikowanej przez urządzenie oraz potrafi uruchomić autotest czujnika.

> [!NOTE]
> Dostępny jest także wariant HTTP tego szablonu (`Shelly Gas`). Ten szablon MQTT stosuj, gdy w instalacji działa już broker MQTT i preferowane są aktualizacje push; szablon HTTP — gdy brokera nie ma.

> [!WARNING]
> Shelly Gas jest urządzeniem bezpieczeństwa. Integracja z TapHome uzupełnia wbudowany brzęczyk i alarm LED — nie zastępuje ich. Brzęczyk i LED działają niezależnie od MQTT, od brokera i od jednostki sterującej TapHome i działają nadal, gdy którekolwiek z nich jest niedostępne.

## Sprzęt

### Umiejscowienie

Jednostka wpina się do gniazda sieciowego — nie ma żadnego okablowania. Prawidłowa wysokość montażu zależy od wariantu gazu, ponieważ oba gazy zachowują się w powietrzu inaczej.

| Wariant | Wykrywany gaz | Zachowanie w powietrzu | Zalecane umiejscowienie |
|---------|---------------|------------------------|-------------------------|
| Shelly Gas CNG | Sprężony gaz ziemny (metan) | Lżejszy od powietrza, gromadzi się pod sufitem | 0,3–1 m pod sufitem, pionowo, i 1,5 m od źródła gazu |
| Shelly Gas LPG | Skroplony gaz ropopochodny (propan / butan) | Cięższy od powietrza, gromadzi się przy podłodze | 0,3 m nad podłogą, w promieniu 1,5 m od źródła gazu |

> [!WARNING]
> CNG i LPG to dwa osobne produkty z różnymi czujnikami, a nie przełączany tryb. Jeśli wariant nie jest oczywisty, sprawdź oznaczenia na tylnej stronie urządzenia.

### Specyfikacja

| Parametr | Wartość |
|----------|---------|
| Zasilanie | 110–230 V ±10%, 50/60 Hz AC |
| Pobór mocy | < 3 W |
| Czułość alarmu | 6% LEL (dolna granica wybuchowości) |
| Poziom dźwięku | ≥ 70 dB |
| Wi-Fi | 802.11 b/g/n, 2400–2484 MHz |
| Zasięg | do 50 m na zewnątrz, do 30 m w pomieszczeniach |
| Temperatura pracy | od −10 °C do +50 °C |
| Wyjście gniazda manipulatora zaworu | 11–13 V, 500 mA (akcesorium zewnętrzne, nieobsługiwane przez ten szablon) |
| Wymiary | 89,5 × 89,5 × 38 mm (bez wtyczki) |

### Sygnalizacja lokalna

Pierścień LED i brzęczyk to własna sygnalizacja urządzenia. TapHome widzi wyłącznie dwa tematy opisane w części Funkcje urządzenia, więc te sygnały niosą informacje, które nie docierają do jednostki sterującej.

| Pierścień LED | Znaczenie |
|---------------|-----------|
| Świeci na zielono | Czujnik w normalnej pracy |
| Świeci na żółto | Usterka czujnika |
| Miga na czerwono | Alarm |
| Miga czerwono / żółto / zielono w sekwencji | Czujnik się nagrzewa |

| Wzór brzęczyka | Zdarzenie |
|----------------|-----------|
| Dwa krótkie sygnały na sekundę | Nagrzewanie rozpoczęte po włączeniu zasilania |
| Jeden długi sygnał na sekundę | Nagrzewanie zakończone |
| Długi sygnał raz na sekundę, dopóki usterka trwa | Usterka czujnika |
| Trzy krótkie sygnały dwa razy na sekundę | Trwa autotest |
| Długi sygnał raz na sekundę | Autotest zakończony pomyślnie |
| Długi sygnał raz na sekundę, dopóki wyciek nie ustanie lub się nie nasili | Łagodny wyciek gazu |
| Pięć sekund sygnału z jednosekundową przerwą, dopóki wyciek nie ustanie | Silny wyciek gazu |

Po włączeniu zasilania czujnik nagrzewa się przez około trzy minuty. Pierścień LED miga w tym czasie kolejno na czerwono / żółto / zielono, a odczyt gazu nie jest prawidłowy.

## Konfiguracja

### Włączenie MQTT w urządzeniu

1. Otwórz interfejs webowy urządzenia w przeglądarce.
2. Przejdź do **Internet and Security** → **Advanced - Developer Settings**.
3. Zaznacz **Enable action execution via MQTT**.
4. Wypełnij pole **Server** według wzoru `{adres IP brokera MQTT}:{port}` — na przykład `192.168.1.10:1883`.
5. Naciśnij **SAVE**. Urządzenie połączy się ponownie i zacznie publikować na brokerze.

> [!WARNING]
> W oprogramowaniu Gen1 włączenie MQTT wyłącza połączenie z Shelly Cloud — oba nie mogą działać jednocześnie. Urządzenia Gen1 nie obsługują też MQTT przez TLS, więc broker musi przyjmować nieszyfrowane MQTT na porcie 1883. Z tego powodu trzymaj brokera w zaufanej sieci lokalnej.

### Odczyt Device ID

W interfejsie webowym przejdź do **Settings** → **Device Info** → **Device ID**. Potrzebny jest pierwszy ciąg znaków, a nie wartość w nawiasach. Jest to Shelly-ID o długości sześciu lub więcej znaków, na przykład `35FA58`. Ten sam identyfikator pojawia się w sieci Wi-Fi tworzonej przez urządzenie w trybie punktu dostępowego (`ShellyGas-35FA58`) i tworzy prefiks tematów MQTT `shellies/shellygas-35FA58/`.

### Konfiguracja szablonu

Szablon prosi o trzy parametry importu:

| Parametr importu | Domyślnie | Wartość do wpisania |
|------------------|-----------|---------------------|
| Mqtt Broker IP address | `192.168.0.1` | Adres IP brokera MQTT — **nie** urządzenia Shelly Gas |
| Mqtt Broker port | `1883` | Port, na którym nasłuchuje broker |
| Device ID | — | Odczytany wyżej Shelly-ID, np. `35FA58` |

Parametr importu Device ID wypełnia zmienną `deviceID` na poziomie modułu, która buduje prefiks każdego tematu używanego przez moduł. Moduł subskrybuje temat `shellies/#`, a jego skrypty nasłuchujące filtrują przychodzące wiadomości według tego prefiksu.

Domyślnie urządzenie publikuje aktualizację co 30 sekund. Ustawienie parametru urządzenia `mqtt_update_period` na `0` przełącza je na raportowanie wyłącznie przy zmianie.

## Funkcje urządzenia

### Alarm gazowy

**Alarm gazowy** to przełącznik wielowartościowy zasilany z tematu `shellies/shellygas-<deviceID>/sensor/gas`. Niesie poziom alarmu, który urządzenie już wyznaczyło ze zmierzonego stężenia.

| Wartość w TapHome | Ładunek MQTT | Znaczenie |
|-------------------|--------------|-----------|
| Brak alarmu | `none` | Stężenie poniżej 1800 ppm |
| Łagodny wyciek gazu | `mild` | Stężenie od 1800 ppm |
| Silny wyciek gazu | `heavy` | Stężenie od 3000 ppm |
| Autotest | `test` | Publikowane po udanym autoteście |
| Stan alarmu jest nieznany | `unknown` lub dowolny inny ładunek | Urządzenie nie potrafi określić poziomu alarmu |

Oba progi są zapisane na stałe w oprogramowaniu urządzenia i nie można ich zmienić.

### Stężenie gazu

**Stężenie gazu** odczytuje surową wartość z tematu `shellies/shellygas-<deviceID>/sensor/concentration` w częściach na milion, w zakresie 0–65535 ppm. To ten sam pomiar fizyczny co Alarm gazowy, jeszcze przed zastosowaniem progów oprogramowania układowego.

> [!TIP]
> Alarmu gazowego używaj do logiki alarmów, a Stężenia gazu do trendów, wykresów i własnych progów wczesnego ostrzegania poniżej 1800 ppm. Reguła nie powinna wyznaczać własnego poziomu alarmu ze stężenia w ppm i oczekiwać zgodności z urządzeniem — brzęczyk i LED podążają za stałymi progami oprogramowania układowego.

> [!NOTE]
> Urządzenie publikuje `-1` w temacie stężenia zawsze, gdy odczyt nie jest prawidłowy — podczas trwającego około trzech minut nagrzewania po włączeniu zasilania oraz przy usterce czujnika. Szablon zapisuje to `-1` bez zmian; nie jest to kod błędu TapHome.

### Autotest

Moduł udostępnia akcję serwisową **Autotest**, która publikuje w temacie `shellies/shellygas-<deviceID>/sensor/start_self_test`. W trakcie testu urządzenie emituje trzy krótkie sygnały dwa razy na sekundę, a po powodzeniu publikuje `test` w temacie gazu, co w TapHome pojawia się jako wartość **Autotest** Alarmu gazowego.

## Znane ograniczenia

### Wyciszenie aktywnego alarmu nie dociera do urządzenia

Szablon zawiera przycisk **Wycisz aktywny alarm**, ale w bieżącej wersji szablonu nie ma on żadnego działania. Przycisk publikuje w dosłownym temacie `shellies/shellygas-<deviceid>/sensor/mute` — symbol zastępczy `<deviceid>` nigdy nie zostaje zastąpiony skonfigurowanym Device ID, więc wiadomość trafia do tematu, którego nie subskrybuje żadne rzeczywiste urządzenie. Pozostałe trzy tematy w tym samym szablonie budują swój prefiks ze zmiennej `deviceID` poprawnie.

> [!WARNING]
> Nie polegaj na przycisku Wycisz aktywny alarm. Wyciszenie aktywnego alarmu z TapHome zadziała dopiero po poprawieniu szablonu tak, aby temat był budowany ze zmiennej `deviceID`. Alarm zawsze można wyciszyć bezpośrednio na urządzeniu, poleceniem **Mute** w jego interfejsie webowym — i tylko wtedy, gdy alarm jest rzeczywiście aktywny.

## Rozwiązywanie problemów

### Do TapHome nie docierają żadne wartości

1. Sprawdź, czy MQTT jest włączone w urządzeniu, a pole **Server** zawiera adres brokera w postaci `{IP}:{port}`
2. Sprawdź, czy punkt końcowy modułu wskazuje na **brokera MQTT**, a nie na adres IP Shelly Gas
3. Potwierdź, że Device ID dokładnie odpowiada temu, co pokazuje **Settings** → **Device Info** → **Device ID** — tylko pierwszy ciąg znaków, bez wartości w nawiasach
4. Subskrybuj temat `shellies/#` klientem MQTT (na przykład MQTT Explorer) i sprawdź, czy wiadomości przychodzą pod `shellies/shellygas-<twoje-id>/`
5. Jeśli urządzenie przełączono na raportowanie wyłącznie przy zmianie (`mqtt_update_period = 0`), uruchom akcję serwisową **Autotest** — udany test publikuje w temacie gazu

### Stężenie gazu pokazuje -1

Odczyt czujnika nie jest prawidłowy. Urządzenie albo wciąż się nagrzewa — około trzech minut po włączeniu zasilania — albo czujnik ma usterkę. Usterka objawia się na urządzeniu stale świecącą żółtą diodą LED i długim sygnałem raz na sekundę. Ten szablon nie odczytuje tematu ze stanem czujnika, więc usterka dociera do TapHome wyłącznie jako to `-1`.

### Alarm gazowy pokazuje „Stan alarmu jest nieznany"

Ta wartość jest gałęzią zapasową szablonu. Przechwytuje udokumentowany ładunek `unknown` oraz każdy ładunek spoza czterech znanych wartości. Sprawdź pierścień LED na urządzeniu, aby zobaczyć, w jakim stanie czujnik faktycznie się znajduje.

### Urządzenie zniknęło z Shelly Cloud

Oczekiwane w oprogramowaniu Gen1 — włączenie MQTT wyłącza połączenie z chmurą. Interfejs webowy otwieraj przez sieć lokalną, używając adresu IP urządzenia lub nazwy hosta mDNS `shellygas-<MAC>.local`.

## Jak zainstalować w TapHome

### Wymagania wstępne

- Urządzenie Shelly połączone z Wi-Fi (2,4 GHz), np. przez aplikację Shelly lub własny punkt dostępowy urządzenia
- Broker MQTT działający w sieci lokalnej (np. Mosquitto, Home Assistant lub wbudowany broker TapHome)
- TapHome CCU w tej samej sieci co broker

> [!WARNING]
> Na urządzeniach **Gen1** włączenie MQTT **wyłącza Shelly Cloud**. Oba nie mogą działać jednocześnie. Na urządzeniach Gen2/Plus to ograniczenie nie obowiązuje.

### Krok 1 — Włącz MQTT na urządzeniu Shelly

#### Urządzenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Internet & Security** → **Advanced — MQTT**
3. Włącz **MQTT**
4. Ustaw **MQTT Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. Opcjonalnie ustaw **MQTT User** i **MQTT Password**, jeśli broker wymaga uwierzytelniania
6. Kliknij **Save** — urządzenie zrestartuje się i połączy z brokerem

#### Urządzenia Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Settings** → **MQTT**
3. Włącz **MQTT**
4. Ustaw **Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. **Client ID** jest wstępnie wypełnione identyfikatorem urządzenia (np. `shellyplus1pm-AABBCCDDEE`) — pozostaw bez zmian, chyba że masz konkretny powód do zmiany
6. Kliknij **Save** i zrestartuj urządzenie

Przy wbudowanym brokerze TapHome `<broker-ip>` to adres IP TapHome Core. Nadaj jednostce Core rezerwację IP w routerze, w przeciwnym razie urządzenie straci brokera, gdy router zmieni adres → [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/).

> [!TIP]
> Aby sprawdzić, czy MQTT działa, użyj klienta MQTT (np. MQTT Explorer) i zasubskrybuj `shellies/#` (Gen1) lub `<device-id>/#` (Gen2). Powinieneś zobaczyć komunikaty o stanie z urządzenia.

### Krok 2 — Znajdź Device ID / MQTT Client ID

Niektóre szablony wymagają parametru **Device ID** lub **MQTT Client ID**. Jest to unikalny identyfikator używany w topikach MQTT.

- **Gen1:** znajduje się na etykiecie jako adres MAC (np. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, np. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** znajduje się w interfejsie webowym Shelly w sekcji **Settings** → **Device Info** → **Device ID** lub na etykiecie urządzenia

### Krok 3 — Konfiguracja w TapHome

1. W TapHome dodaj nowy moduł **Packet Parser (MQTT)**
2. **IP Address:** dla wbudowanego brokera TapHome `127.0.0.1` (jednostka łączy się sama ze sobą, adres nigdy się nie zmienia); dla zewnętrznego brokera jego adres IP (np. `192.168.1.10`)
3. **Port:** `1883` (domyślny; użyj `8883` dla TLS)
4. **Device ID / MQTT Client ID:** wprowadź wartość z kroku 2 (jeśli wymagane przez szablon)
5. Zaimportuj szablon — TapHome automatycznie zasubskrybuje topiki urządzenia

## Dostępne urządzenia 3

Te urządzenia pojawią się w TapHome po imporcie.

Shelly Gas MQTT Moduł

Akcje serwisowe

|          |                                                                                                                                                 |
|----------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| Autotest | Uruchamia autotest czujnika w urządzeniu — brzęczyk emituje trzy sygnały dwa razy na sekundę, a po udanym teście Alarm gazowy zgłasza Autotest. |

Zmienne niestandardowe

`deviceID` (string) Shelly-ID jednostki Shelly Gas — ciąg sześciu lub więcej znaków tworzący prefiks tematów MQTT shellies/shellygas-&lt;deviceID&gt;/ (np. 35FA58). Odczytasz go w interfejsie webowym Shelly w 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.

Akcje serwisowe

Self test

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

Alarm gazowy Przełącznik wielowartościowy Tylko do odczytu

Poziom alarmu raportowany przez czujnik — Brak alarmu, Łagodny wyciek gazu (od 1800 ppm), Silny wyciek gazu (od 3000 ppm), Autotest lub Stan alarmu jest nieznany. Progi są zapisane na stałe w oprogramowaniu urządzenia i nie można ich zmienić.

enum multi-value switch

Wartości / Stany: No alarm · Mild gas leak · Heavy gas leak · Self Test · Alarm state is unknown

Odczyt stanu przełącznika

```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");
```

Zapis stanu przełącznika

```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
```

Nasłuchiwanie

```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
```

Stężenie gazu Zmienna Tylko do odczytu

Zmierzone stężenie gazu palnego w częściach na milion, zakres 0–65535 ppm. Podczas nagrzewania czujnika lub przy jego usterce urządzenie zgłasza -1.

numeric Jednostka: ppm

Zapis

```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
```

Odczyt (moduł)

```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");
```

Nasłuchiwanie

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

Wycisz aktywny alarm Przycisk Odczyt i zapis

Przycisk służący do wyciszenia aktualnie aktywnego alarmu. W bieżącej wersji szablonu nie ma żadnego działania — temat, w którym publikuje, nie jest budowany ze skonfigurowanego Device ID.

action push button

Zapis stanu przycisku

```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
```

**Połączenie:** Packet Parser → MQTT • Hostname: `shellygas-{MAC}.local`

Możliwe ulepszenia (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.

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji  | Domyślnie           |
|----------------------|---------------------|
| Mqtt Broker Adres IP | `192.168.0.1`       |
| Mqtt Broker port     | `1883`              |
| Device ID            | Podaj przy imporcie |

## Źródła

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

Dokumenty producentów są © ich właścicieli. Udostępniamy je w formie opublikowanej przez producenta, wyłącznie w celach informacyjnych.

## Powiązana dokumentacja

- [MQTT Integration](https://taphome.com/pl/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)
- [Broker MQTT](https://taphome.com/pl/docs/integration/packet-parser/mqtt-broker/)
- [Skrypty listener](https://taphome.com/pl/docs/script/listener-scripts/)

