---
title: "Shelly Door/Window 2"
description: "Czujnik kontaktowy Shelly Door/Window 2 przez MQTT. Wykrywa otwarcie/zamknięcie i raportuje temperaturę, natężenie oświetlenia i poziom baterii w TapHome."
url: "https://taphome.com/pl/compatibility/shelly-door-window-mqtt/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","door-window-detection","battery-powered","contact-sensor"]
  questions: ["Jak zintegrować Shelly Door/Window 2 z TapHome przez MQTT?","Co wykrywa szablon Shelly Door/Window 2 w TapHome?","Jak skonfigurować wiele czujników Shelly Door/Window w jednym szablonie TapHome?","Dlaczego czujnik Shelly Door/Window nie raportuje danych?","Jak znaleźć MQTT Device ID czujnika Shelly Door/Window 2?","Czy Shelly Door/Window 2 raportuje poziom baterii, temperaturę i natężenie oświetlenia w TapHome?","Czy Shelly Door/Window 2 może wykrywać przechył i wibracje w TapHome?"]
---

# Shelly Door/Window 2

Komunikacja: Packet Parser → MQTT

- [Strona produktu Shelly Door/Window 2](https://www.shelly.com/en/products/shop/shelly-door-window-2)

> 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 Door/Window 2 (SHDW-2) to bateryjny (2x CR123A) czujnik kontaktowy Wi-Fi. TapHome komunikuje się z urządzeniem przez MQTT — zalecany protokół dla bateryjnych urządzeń Shelly, ponieważ czujnik większość czasu pozostaje w trybie uśpienia i publikuje dane tylko przy zdarzeniach wybudzenia (zmiana stanu magnetu, wibracja, zmiana jasności lub timer okresowy).

Szablon obsługuje do 5 czujników Shelly Door/Window na moduł. Każda instancja czujnika jest rozróżniana zmienną niestandardową `sensorN_topic` wskazującą na MQTT Client ID urządzenia.

## Konfiguracja

### Device ID

Każdy czujnik Shelly Door/Window 2 ma unikalny MQTT Device ID w formacie `shellydw2-<MAC6>`, gdzie `<MAC6>` to ostatnie 6 znaków adresu MAC w zapisie szesnastkowym (np. `shellydw2-A1B2C3`).

Device ID można znaleźć:

- Na etykiecie urządzenia (adres MAC)
- W interfejsie webowym Shelly: **Settings** → **Device Info**
- Przez API: `GET http://<device-ip>/settings` → pole `device.hostname`

> [!TIP]
> To urządzenie obsługuje **wykrywanie mDNS**. Możesz użyć nazwy hosta `shellydw2-{MAC}.local` zamiast adresu IP podczas konfiguracji TapHome. Zamień `{MAC}` na ostatnie 6 znaków adresu MAC małymi literami (np. `shellydw2-A1B2C3.local`). Użycie nazwy hosta zapobiega problemom z łącznością przy zmianie adresu IP.

### Konfiguracja szablonu

Po zaimportowaniu szablonu w TapHome:

1. Otwórz moduł **Shelly Door/Window MQTT**
2. Ustaw **MQTT Broker IP** i **Port** (domyślnie `1883`)
3. Dla każdej instancji czujnika ustaw zmienną `sensorN_topic` na Device ID odpowiedniego Shelly Door/Window 2 (np. `shellydw2-A1B2C3`)

Moduł subskrybuje `shellies/#`, a skrypty nasłuchujące filtrują wiadomości według skonfigurowanego prefiksu topicu.

> [!TIP]
> Konfiguruj tylko sloty czujników, których faktycznie używasz. Nieskonfigurowane sloty (z domyślną wartością `shellydw2-deviceid`) wyświetlą komunikat błędu zachęcający do ustawienia prawidłowego topicu.

## Możliwości urządzenia

### Wykrywanie otwarcia/zamknięcia

Każda instancja czujnika jest zmapowana jako urządzenie Reed Contact w TapHome. Stan drzwi/okna odczytywany jest z topicu `shellies/<id>/sensor/state`:

- `open` → **Alarm** (drzwi/okno otwarte)
- `close` → **OK** (drzwi/okno zamknięte)

Czujnik budzi się i publikuje swój stan przy ruchu magnetu (drzwi lub okno otwierają się lub zamykają), a także podczas okresowych interwałów raportowania (domyślnie co 3 minuty).

### Monitorowanie baterii, temperatury i oświetlenia

Każda instancja udostępnia trzy atrybuty serwisowe:

- **Bateria** — procentowy poziom baterii z `shellies/<id>/sensor/battery`. Ostrzeżenie o niskim poziomie baterii poniżej 20%.
- **Temperatura** — temperatura otoczenia w °C z `shellies/<id>/sensor/temperature`.
- **Natężenie oświetlenia** — poziom światła otoczenia w luksach z `shellies/<id>/sensor/lux`.

Wszystkie atrybuty są tylko do odczytu i aktualizują się przy każdym wybudzeniu czujnika.

### Dodatkowe możliwości (niezaimplementowane)

Shelly Door/Window 2 publikuje również **kąt przechyłu** (0–180 stopni) i **wykrywanie wibracji** przez MQTT, a także status online/offline przez topic LWT. Te możliwości są dostępne w wyjściu MQTT urządzenia, ale nie są zmapowane w aktualnym szablonie TapHome. Mogą zostać dodane w przyszłej aktualizacji.

## Rozwiązywanie problemów

### Czujnik nie raportuje danych

1. Sprawdź, czy Shelly Door/Window 2 jest podłączony do Wi-Fi i MQTT jest włączone w ustawieniach
2. Upewnij się, że zmienna `sensorN_topic` dokładnie odpowiada Device ID (np. `shellydw2-A1B2C3`)
3. Jeśli adres brokera MQTT się zmienił, zaktualizuj adres brokera w ustawieniach MQTT czujnika (najpierw wybudź czujnik, aby jego interfejs webowy był dostępny)
4. Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji `shellies/#` i sprawdź, czy czujnik publikuje wiadomości po wybudzeniu

### Stan otwarcia/zamknięcia nie aktualizuje się

1. Upewnij się, że magnes jest prawidłowo wyrównany z główną jednostką — przy zamkniętych drzwiach/oknie magnes powinien być w odległości do 15 mm od czujnika
2. Jeśli czujnik został niedawno przeniesiony, użyj endpointu kalibracji (`GET http://<device-ip>/calibrate?opened=1`) z drzwiami/oknem w pozycji otwartej
3. Sprawdź stan urządzenia Reed Contact w TapHome — 1 = otwarte (alarm), 0 = zamknięte (OK)

### Bateria szybko się rozładowuje

1. Shelly Door/Window 2 używa 2x CR123A (niełdowalne), typowa żywotność ok. 18 miesięcy
2. Częste wybudzenia (np. niestabilne Wi-Fi lub bardzo krótki okres uśpienia) mogą szybciej rozładować baterię
3. Domyślny okres uśpienia to 3 minuty — zwiększenie go przez `sleep_mode.period` zmniejsza zużycie energii
4. Zapewnij silny sygnał Wi-Fi w lokalizacji czujnika

> [!WARNING]
> Urządzenia Shelly Gen1 **nie obsługują** MQTT przez TLS. Komunikacja między czujnikiem a brokerem MQTT jest nieszyfrowana (plain MQTT, port 1883). Upewnij się, że broker MQTT jest w zaufanej sieci lokalnej.

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

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

Shelly Door/Window MQTT Moduł

Zmienne niestandardowe

`sensor1_topic` (string) = shellydw2-deviceid Identyfikator MQTT czujnika drzwi/okna 1 — format: 'shellydw2-DEVICEID' (w interfejsie webowym Shelly → Settings → Device Info)

Open http://shellyIpAddress → Settings → Device info → copy Device ID. Format: shellydw2-&lt;last6MAC&gt;

`sensor2_topic` (string) = shellydw2-deviceid Identyfikator MQTT czujnika drzwi/okna 2 

`sensor3_topic` (string) = shellydw2-deviceid Identyfikator MQTT czujnika drzwi/okna 3 

`sensor4_topic` (string) = shellydw2-deviceid Identyfikator MQTT czujnika drzwi/okna 4 

`sensor5_topic` (string) = shellydw2-deviceid Identyfikator MQTT czujnika drzwi/okna 5

Czujnik drzwi/okna 1 Kontakt reed Tylko do odczytu

Wykrywanie otwarcia/zamknięcia przez kontaktron — zgłasza alarm gdy drzwi/okno otwarte, OK gdy zamknięte

boolean

Atrybuty serwisowe

|                       |
|-----------------------|
| Bateria               |
| Temperatura           |
| Natężenie oświetlenia |

Nasłuchiwanie

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

VAR topicPrefix := "shellies/" + sensor1_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/state") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "open", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "close", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/lux") = 0)
    luminance := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Atrybuty serwisowe

Battery

```taphome
battery + "%"
```

Temperature

```taphome
temp + "°C"
```

Luminance

```taphome
luminance + " lux"
```

Czujnik drzwi/okna 2 Kontakt reed Tylko do odczytu

Wykrywanie otwarcia/zamknięcia przez kontaktron — zgłasza alarm gdy drzwi/okno otwarte, OK gdy zamknięte

boolean

Atrybuty serwisowe

|                       |
|-----------------------|
| Bateria               |
| Temperatura           |
| Natężenie oświetlenia |

Nasłuchiwanie

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

VAR topicPrefix := "shellies/" + sensor2_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/state") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "open", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "close", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/lux") = 0)
    luminance := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Atrybuty serwisowe

Battery

```taphome
battery + "%"
```

Temperature

```taphome
temp + "°C"
```

Luminance

```taphome
luminance + " lux"
```

Czujnik drzwi/okna 3 Kontakt reed Tylko do odczytu

Wykrywanie otwarcia/zamknięcia przez kontaktron — zgłasza alarm gdy drzwi/okno otwarte, OK gdy zamknięte

boolean

Atrybuty serwisowe

|                       |
|-----------------------|
| Bateria               |
| Temperatura           |
| Natężenie oświetlenia |

Nasłuchiwanie

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

VAR topicPrefix := "shellies/" + sensor3_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/state") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "open", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "close", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/lux") = 0)
    luminance := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Atrybuty serwisowe

Battery

```taphome
battery + "%"
```

Temperature

```taphome
temp + "°C"
```

Luminance

```taphome
luminance + " lux"
```

Czujnik drzwi/okna 4 Kontakt reed Tylko do odczytu

Wykrywanie otwarcia/zamknięcia przez kontaktron — zgłasza alarm gdy drzwi/okno otwarte, OK gdy zamknięte

boolean

Atrybuty serwisowe

|                       |
|-----------------------|
| Bateria               |
| Temperatura           |
| Natężenie oświetlenia |

Nasłuchiwanie

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

VAR topicPrefix := "shellies/" + sensor4_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/state") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "open", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "close", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/lux") = 0)
    luminance := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Atrybuty serwisowe

Battery

```taphome
battery + "%"
```

Temperature

```taphome
temp + "°C"
```

Luminance

```taphome
luminance + " lux"
```

Czujnik drzwi/okna 5 Kontakt reed Tylko do odczytu

Wykrywanie otwarcia/zamknięcia przez kontaktron — zgłasza alarm gdy drzwi/okno otwarte, OK gdy zamknięte

boolean

Atrybuty serwisowe

|                       |
|-----------------------|
| Bateria               |
| Temperatura           |
| Natężenie oświetlenia |

Nasłuchiwanie

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

VAR topicPrefix := "shellies/" + sensor5_topic;

IF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/state") = 0)
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);

    IF (COMPARE(value, "open", CompareOptions.IgnoreCase) = 0)
        Rc := 1;
    ELSEIF (COMPARE(value, "close", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/temperature") = 0)
    temp := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/battery") = 0)
    battery := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF battery < 20
        ADDWARNING("Battery low (" + battery + "%)");
    END
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, topicPrefix + "/sensor/lux") = 0)
    luminance := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
```

Atrybuty serwisowe

Battery

```taphome
battery + "%"
```

Temperature

```taphome
temp + "°C"
```

Luminance

```taphome
luminance + " lux"
```

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

Możliwe ulepszenia (4)

- Tilt Angle — Tilt angle in degrees (0-180), DW2 only. Available in MQTT but not mapped in the TapHome listener script.
- Vibration Detection — Vibration detection (0=none, 1=detected). Configurable sensitivity (high/medium/low). Available in MQTT but not mapped in the TapHome listener script.
- Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline sensors.
- Full Status JSON — Complete /status as JSON (fw &gt;=1.8.0). Could parse wifi\_sta.rssi, battery, act\_reasons.

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

## Ź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 Door/Window 2 — Device-Specific API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-door-window-1-2) 2026-03-30
- Shelly Door/Window 2 — Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-door-window-2) 2026-03-30

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

