---
title: "Shelly 2.5"
description: "Dwukanałowe sterowanie przekaźnikiem z pomiarem mocy na kanał przez HTTP. Szablon TapHome dla Shelly 2.5 (Gen1, tryb przekaźnika)."
url: "https://taphome.com/pl/compatibility/shelly-2-5/"
language: pl
lastmod: 2026-03-29
generator: hugo
ai:
  topics: ["http","i/o-module","wifi","relay","power-metering","dual-channel"]
  questions: ["Jak zintegrować Shelly 2.5 z TapHome?","Co mierzy szablon Shelly 2.5 w TapHome?","Jak podłączyć Shelly 2.5 przez HTTP do TapHome?","Czy szablon TapHome Shelly 2.5 obsługuje tryb rolety?","Dlaczego wartość energii kanału 1 Shelly 2.5 wydaje się za wysoka?","Jakie atrybuty serwisowe są dostępne dla przekaźników Shelly 2.5 w TapHome?"]
---

# Shelly 2.5

Komunikacja: Packet Parser → HTTP

- [Strona produktu Shelly 2.5](https://www.shelly.com/en/products/shop/shelly-25)
- [Dokumentacja API Shelly 2.5](https://shelly-api-docs.shelly.cloud/gen1/#shelly2-5)

> Adres w sieci
> 
> TapHome łączy się z urządzeniem pod adresem podanym przy imporcie. Nadaj urządzeniu stały adres — rezerwację IP w routerze albo jego nazwę mDNS, jeśli ją obsługuje — inaczej integracja przestanie działać, gdy router zmieni adres.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly 2.5 to kompaktowy dwukanałowy przekaźnik Wi-Fi z wbudowanym pomiarem mocy na obu kanałach. Mieści się za standardowym włącznikiem ściennym i może sterować dwoma niezależnymi obwodami, każdy wymiarowany do 10 A (2300 W przy 230 V), z łącznym maksimum 20 A. Urządzenie obsługuje dwa tryby pracy — przekaźnik (dwa niezależne przełączniki) i roleta (skoordynowane sterowanie silnikiem) — ale szablon TapHome implementuje tylko tryb przekaźnika. TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — połączenie z chmurą nie jest wymagane.

Szablon udostępnia dwa przełączniki przekaźnikowe i dwa liczniki energii (po jednym na kanał) oraz akcję serwisową do przełączania między trybem przekaźnika a rolety.

## Konfiguracja

Shelly 2.5 łączy się przez Wi-Fi. Podczas importu szablonu TapHome podaj adres IP urządzenia (domyślny placeholder `192.168.0.1`).

Bieżący tryb pracy jest udostępniony jako atrybut serwisowy na poziomie modułu ("Mode") i może być zmieniony przez akcję serwisową "Mode". Przełączanie między trybem przekaźnika a rolety wymaga restartu urządzenia.

## Możliwości urządzenia

### Sterowanie przekaźnikiem

Szablon udostępnia dwa niezależne kanały przekaźnikowe. Stan każdego przekaźnika jest odczytywany z odpowiedniego endpointu `/relay/` (pole `ison`) i sterowany przez `turn=on` lub `turn=off`.

- **Kanał 1** — odczyt i sterowanie `/relay/0`
- **Kanał 2** — odczyt i sterowanie `/relay/1`

Każdy przekaźnik posiada trzy atrybuty serwisowe:

- **Overpower** — czy na kanale wykryto stan przeciążenia
- **Overtemperature** — czy urządzenie przekroczyło bezpieczną temperaturę roboczą
- **Power Meter** — ważność pomiaru (OK lub Awaria)

### Pomiar mocy

Każdy kanał ma dedykowany licznik energii odczytujący dwie wartości z endpointu `/meter/`:

- **Moc w czasie rzeczywistym** — `power` w watach, konwertowana na kW przez szablon
- **Całkowite zużycie** — `total` w watominutach, konwertowane na kWh przez szablon

Każdy licznik energii udostępnia atrybut serwisowy "Overpower" pokazujący wartość progową przeciążenia (w watach, podzielone przez 1000).

Liczniki są tylko do odczytu — aktualizują się automatycznie z każdym cyklem odpytywania (interwał 15 sekund).

> [!WARNING]
> **Znany problem — wartość energii kanału 1 jest 10× za wysoka.** Szablon dzieli `total` przez 6000 dla kanału 1 zamiast 60000 (które kanał 2 używa poprawnie). Oznacza to, że skumulowana wartość energii dla kanału 1 będzie około 10 razy wyższa niż rzeczywiste zużycie. Jest to błąd w formule konwersji szablonu.

### Dodatkowe możliwości

Shelly 2.5 natywnie obsługuje pełne sterowanie roletami (otwieranie/zamykanie/stop z pozycją 0–100% po kalibracji), ruchome jednominutowe średnie mocy na kanał, stany fizycznych wejść przełączników, wewnętrzną temperaturę urządzenia, siłę sygnału Wi-Fi i timery automatycznego wyłączenia na kanał. Urządzenie może również przechowywać do czterech ulubionych pozycji rolet. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.

> [!NOTE]
> W porównaniu z szablonem Shelly 1PM, szablon Shelly 2.5 nie udostępnia diagnostyki urządzenia takich jak nazwa hosta, adres MAC, czas pracy, użycie RAM, status cloud/MQTT, dostępność aktualizacji firmware ani temperatura wewnętrzna. Brakuje również akcji serwisowej ochrony mocy (limit maksymalnej mocy) i akcji restartu.

## Rozwiązywanie problemów

### Urządzenie nie odpowiada

1. Sprawdź, czy Shelly jest podłączony do Wi-Fi i ma prawidłowy adres IP
2. Spróbuj użyć nazwy hosta mDNS (`shellyswitch25-AABBCCDDEE.local`) zamiast adresu IP — IP mógł się zmienić po odnowieniu DHCP
3. Otwórz `http://{device-ip}/shelly` w przeglądarce — jeśli odpowiada, urządzenie jest osiągalne
4. Upewnij się, że TapHome CCU i Shelly są w tej samej sieci / VLAN

### Wartości mocy pokazują zero

1. Potwierdź, że obciążenie jest podłączone przez przekaźnik Shelly (nie obejściem)
2. Sprawdź, czy przekaźnik jest włączony — licznik mierzy tylko gdy prąd przepływa przez przekaźnik
3. Ręcznie odpytaj `/meter/0` lub `/meter/1` i sprawdź, czy `power` zwraca niezerową wartość

### Suma energii kanału 1 wydaje się nieprawidłowa

Szablon dzieli sumę kanału 1 przez 6000 zamiast prawidłowego 60000 (używanego przez kanał 2). W rezultacie skumulowana wartość energii dla kanału 1 jest 10× wyższa niż rzeczywista. Obecnie nie ma obejścia w szablonie — współczynnik konwersji jest osadzony w skrypcie odpytywania.

> [!WARNING]
> Urządzenia Shelly Gen1 obsługują tylko **2 równoczesne połączenia HTTP**. Jeśli TapHome i inny system (np. Home Assistant) jednocześnie odpytują to samo urządzenie, komunikacja może stać się zawodna. Endpointy przekaźników są odpytywane co 2,5 sekundy, a endpointy liczników co 15 sekund.

## Jak zainstalować w TapHome

### Wymagania wstępne

- Urządzenie Shelly zainstalowane i włączone
- Lokalna sieć Wi-Fi (2,4 GHz)
- TapHome CCU w tej samej sieci

### Krok 1 — Podłącz Shelly do Wi-Fi

**Opcja A — Aplikacja Shelly (zalecana):**

1. Pobierz [aplikację Shelly](https://www.shelly.com/en/support/shelly-app) (iOS / Android)
2. Dotknij **+** → **Add Device** i postępuj zgodnie z kreatorem parowania Bluetooth
3. Wprowadź dane logowania Wi-Fi, gdy zostaniesz o to poproszony

**Opcja B — Tryb AP (bez aplikacji):**

1. Przy pierwszym uruchomieniu urządzenie tworzy hotspot: `ShellyXXX-AABBCCDDEE`
2. Połącz telefon/PC z tym hotspotem
3. Otwórz `http://192.168.33.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Wprowadź SSID i hasło → **Save**

> [!NOTE]
> Shelly obsługuje tylko sieci **2,4 GHz**. Sieci 5 GHz nie pojawią się podczas skanowania.

### Krok 2 — Znajdź adres IP

Po połączeniu z Wi-Fi znajdź przypisany adres IP za pomocą jednej z poniższych metod:

- **Aplikacja Shelly:** Szczegóły urządzenia → **Device info** → Adres IP
- **Interfejs webowy Shelly:** Połącz się z AP urządzenia przed konfiguracją Wi-Fi — IP zostanie wyświetlone po zapisaniu
- **Tabela DHCP routera:** Szukaj nazwy hosta takiej jak `shelly1pm-AABBCCDDEE`
- **mDNS:** Pinguj `shelly<model>-<mac>.local` (np. `shelly1pm-AABBCCDDEE.local`) z tej samej sieci

> [!TIP]
> Przypisz urządzeniu Shelly **statyczny IP** (rezerwację DHCP) w routerze, aby adres nie zmieniał się po ponownym uruchomieniu routera.

### Krok 3 — Konfiguracja w TapHome

1. W TapHome dodaj nowy moduł **Packet Parser (HTTP)**
2. **IP Address:** wprowadź IP z kroku 2 (np. `192.168.1.50`)
3. **Port:** `80` (domyślny, nie wymaga zmiany)
4. Zaimportuj szablon — TapHome będzie okresowo odpytywać `/status` w celu odczytu stanu urządzenia

> [!NOTE]
> Uwierzytelnianie HTTP jest domyślnie wyłączone na urządzeniach Shelly. Jeśli włączyłeś ochronę logowaniem, TapHome obecnie nie obsługuje HTTP Basic Auth — pozostaw uwierzytelnianie wyłączone dla integracji z TapHome.

## Dostępne urządzenia 4

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

Shelly 2.5 Moduł

Atrybuty serwisowe

|      |
|------|
| Tryb |

Akcje serwisowe

|      |
|------|
| Tryb |

Atrybuty serwisowe

Mode

```taphome
 VAR response := SENDHTTPREQUEST("/settings");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "mode"));
 END
```

Akcje serwisowe

Mode

Parametry: Mode

```taphome
var St := SWITCH(mo, 1, "roller", "relay");
 VAR response := SENDHTTPREQUEST("/settings?mode=" + St);
```

Licznik energii — Kanał 1 Licznik energii Tylko do odczytu

Pomiar mocy i energii kanału 1 — moc chwilowa (kW) i energia skumulowana (kWh). Uwaga: odczyt energii jest 10× za wysoki z powodu błędu dzielnika w szablonie (/6000 zamiast /60000)

numeric Jednostka: W / kWh

Atrybuty serwisowe

|              |
|--------------|
| Przeciążenie |

Odczyt całkowitego zużycia

```taphome
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/6000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Odczyt zapotrzebowania

```taphome
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Atrybuty serwisowe

Overpower

```taphome
 VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
```

Licznik energii — Kanał 2 Licznik energii Tylko do odczytu

Pomiar mocy i energii kanału 2 — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Atrybuty serwisowe

|              |
|--------------|
| Przeciążenie |

Odczyt całkowitego zużycia

```taphome
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/60000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Odczyt zapotrzebowania

```taphome
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Atrybuty serwisowe

Overpower

```taphome
 VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
```

Przekaźnik — Kanał 1 Przełącznik Odczyt i zapis

boolean

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

```taphome
VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Zapis stanu przełącznika

```taphome
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/0?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
```

Atrybuty serwisowe

Overpower

```taphome
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
```

Overtemperature

```taphome
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
```

Power Meter

```taphome
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
```

Przekaźnik — Kanał 2 Przełącznik Odczyt i zapis

boolean

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

```taphome
VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Zapis stanu przełącznika

```taphome
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/1?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
```

Atrybuty serwisowe

Overpower

```taphome
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
```

Overtemperature

```taphome
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
```

Power Meter

```taphome
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
```

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

Możliwe ulepszenia (9)

- Roller Shutter Control — Full roller shutter control (open/close/stop/position 0-100%) — the Shelly 2.5's key dual-mode feature. Template only implements relay mode.
- Roller Position — Current roller position 0-100% (requires calibration). Not available without /roller/ endpoint.
- Roller Calibration — Initiates travel-time calibration procedure for position control.
- Rolling Power Averages — 3 rolling one-minute power averages per channel, available in /meter/ response
- Input States — Physical switch input states (0/1) for both channels, available in /status response
- Internal Device Temperature — Internal temperature in C available in /status response (not exposed as a device, only as relay SA)
- Auto-off Timer — Per-channel auto-off timer in seconds, could be added as service action parameter
- WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
- Favorite Positions (Roller Mode) — Up to 4 saved roller shutter positions — only relevant if roller mode is implemented

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Adres IP            | `192.168.0.1` |

## Ź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 2.5 Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-2-5) 2026-03-29
- Shelly 2.5 API Reference (Device-Specific)
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly2-5) 2026-03-29

## Powiązana dokumentacja

- [Integracja Packet Parser](https://taphome.com/pl/compatibility/packet-parser-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/)

