---
title: "Shelly TRV"
description: "Steruj zadaną temperaturą (5-30 °C) lub pozycją zaworu (0-100 %) bateryjnej głowicy Wi-Fi przez HTTP. Szablon TapHome dla Shelly TRV."
url: "https://taphome.com/pl/compatibility/shelly-trv/"
language: pl
lastmod: 2026-04-18
generator: hugo
ai:
  topics: ["http","thermostat","wifi","battery-powered","radiator-valve","mdns"]
  questions: ["Jak zintegrować Shelly TRV z TapHome?","Jaka jest różnica między szablonami Shelly TRV thermostat i valve?","Jak skalibrować Shelly TRV po zamontowaniu na grzejniku?","Dlaczego Shelly TRV odrzuca zapis zadanej temperatury z TapHome?","Dlaczego Shelly TRV pokazuje zbyt wysoką temperaturę pokojową?","Jak wyłączyć harmonogram tygodniowy, aby TapHome sterował zadaną temperaturą?"]
---

# Shelly TRV

Komunikacja: Packet Parser → HTTP

- [Shelly TRV Knowledge Base](https://kb.shelly.cloud/knowledge-base/shelly-trv)
- [Dokumentacja Shelly Gen1 API](https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv)

> 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 TRV (SHTRV-01) to bateryjna głowica termostatyczna Wi-Fi od Allterco Robotics. Mocuje się ją bezpośrednio na korpusie zaworu standardowego grzejnika wodnego i reguluje temperaturę pokoju poprzez ruch trzpienia zaworu napędzanego wewnętrznym silnikiem. TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — bez bramy, bez chmury, bez brokera MQTT.

Shelly TRV jest **produktem wycofanym**, zastąpionym przez wersję Bluetooth [Shelly BLU TRV](https://www.shelly.com/products/shelly-blu-trv). Istniejące egzemplarze nadal działają, a szablon pozostaje w pełni obsługiwany; dla nowych projektów warto rozważyć następcę.

Dla tego samego fizycznego urządzenia dostępne są dwa alternatywne szablony — wybierz w zależności od oczekiwanego sposobu sterowania.

| Szablon | Udostępnia | Zastosowanie |
|---------|------------|--------------|
| **Shelly TRV** (main) | Baterię + termostat w pętli zamkniętej | Sterowanie temperaturą pokoju przez użytkownika końcowego poprzez setpoint (5-30 °C). Firmware steruje zaworem wewnętrznie. |
| **Shelly TRV (valve)** | Baterię + ściemniacz zaworu + termostat (wariant setpoint) | Inteligentne reguły wymagające bezpośredniego nadpisania zaworu — pozycja zaworu jako ściemniacz 0.0-1.0. |

> [!WARNING]
> Nie importuj obu szablonów dla tego samego urządzenia fizycznego. Oba łączą się z tym samym endpointem i pętle pollingu będą kolidować — zapisy będą sprzeczne, a zachowanie zaworu stanie się nieprzewidywalne.

## Instalacja sprzętu

Shelly TRV **nie wymaga okablowania** — to mechaniczna głowica grzejnikowa z wewnętrzną elektroniką, zasilana wbudowanym akumulatorem Li-ion (Panasonic NCR18650BD, 3,7 V / 6500 mAh). Mocuje się bezpośrednio na korpusie zaworu za pomocą metalowej nakrętki zaciskowej.

### Zgodne korpusy zaworów

Natywny gwint: **M30 × 1,5**. W zestawie znajdują się następujące adaptery:

- **Danfoss** — RA, RAV, RAVL
- **Caleffi**
- **Giacomini**
- **M28 × 1,5** — Sam, Slovarm, Comap, TA, Herz, MMA, Remagg
- **Pont à Mousson**

Adaptery firm trzecich (nie wchodzą w skład zestawu) rozszerzają zgodność o Gampper, Ista, Meges, Ondal, Oventrop, Rossweiner, Vaillant i inne.

### Procedura montażu

1. Upewnij się, że grzejnik jest wyłączony i wystygł.
2. Obróć istniejącą ręczną głowicę w lewo aż do oporu (pełne otwarcie), następnie odkręć metalową nakrętkę zaciskową i zdejmij głowicę.
3. Jeśli gwint zaworu nie jest natywny M30 × 1,5, załóż odpowiedni adapter.
4. Osadź Shelly TRV na korpusie zaworu i dokręć metalową nakrętkę w prawo — mocno, ale bez przesadzania. Zarówno zbyt luźne, jak i zbyt mocne dokręcenie powoduje błąd kalibracji.
5. Przed ostatecznym dokręceniem nakrętki obróć wyświetlacz do żądanej orientacji.
6. Krótko naciśnij **Reset** (tył urządzenia). Wyświetlacz pokaże `CL` (kalibracja), a wewnętrzny silnik przesunie się w obu kierunkach. Udana kalibracja kończy się komunikatem `AP`; niepowodzenie pokazuje `E1`.

> [!NOTE]
> Kalibrację należy wykonać po każdym przełożeniu na inny korpus zaworu. Dopóki nie zostanie osiągnięty stan `calibrated=true`, zapisy zadanej temperatury i pozycji z TapHome są odrzucane z błędem `Device is not calibrated`.

### Ładowanie

Urządzenie ładuje się przez **USB-C** (kabel w zestawie, zasilacz nie). Ładowarka USB-C ≥1 A ładuje akumulator z pustego do pełnego w około 5 godzin. Typowa żywotność baterii to ~2 lata (~5 miesięcy ciągłego sezonu grzewczego przy typowym użyciu).

> [!WARNING]
> Podczas ładowania obudowa urządzenia nagrzewa się, a wewnętrzny czujnik temperatury odczytuje niepoprawnie. Dopóki `charger` nie jest `disconnected`, spodziewaj się zafałszowanych wartości temperatury pokoju.

## Konfiguracja

### Import w TapHome

Podczas importu szablonu TapHome pyta o jeden parametr:

| Parametr | Opis | Domyślnie |
|----------|------|-----------|
| `IpAddress` | Lokalny adres IP lub nazwa mDNS urządzenia | `192.168.0.1` |

Port `80` jest stały. HTTPS nie jest obsługiwany w Gen1. HTTP Basic Auth musi być **wyłączona** na urządzeniu — TapHome nie uwierzytelnia się wobec urządzeń Gen1 Shelly.

Tam, gdzie to możliwe, używaj nazwy mDNS (`shellytrv-XXXXXX.local`) — jest odporna na zmiany dzierżaw DHCP. **IP Scanner** TapHome (Ustawienia → Sieć → Skanuj) wykrywa zarówno IP, jak i nazwę mDNS.

### Wyłączenie harmonogramu tygodniowego

Shelly TRV ma wbudowany harmonogram tygodniowy (5 profili, do 18 zaplanowanych zmian tygodniowo na profil). Gdy harmonogram jest włączony, firmware nadpisuje każdy zapis z zewnątrz przy najbliższym zaplanowanym zdarzeniu — setpointy TapHome są po cichu cofane.

Szablon sygnalizuje to ostrzeżeniem (`Schedule is enabled`). Zanim oddasz sterowanie TapHome, wykonaj jedno z:

- uruchom akcję serwisową **Disable schedule** na module (wysyła `/settings/thermostats/0?schedule=false`), lub
- w aplikacji Shelly Cloud lub w interfejsie WWW urządzenia wybierz profil **Disable**.

### Zewnętrzny czujnik pokojowy (zalecane)

Wbudowany czujnik temperatury znajduje się fizycznie blisko gorącej rury grzejnika i typowo odczytuje **1-3 °C powyżej rzeczywistej temperatury pokoju**. Dostępne są dwie ścieżki korekty:

- **Czujnik zewnętrzny** — sparuj osobny termometr Wi-Fi (np. **Shelly H&T**) w interfejsie WWW urządzenia → **Sensor Settings** → **Enable external temperature corrections endpoint**. Zewnętrzny czujnik przesyła następnie temperaturę otoczenia do TRV poprzez POST.
- **Statyczne przesunięcie** — użyj akcji serwisowej **Set temperature offset** na urządzeniu Thermostat (zakres ±20 °C) do kompensacji stałej różnicy.

Dla najlepszego komfortu cieplnego połącz wiarygodny czujnik zewnętrzny z niewielkim statycznym przesunięciem jako rezerwą.

## Możliwości urządzenia

Główny szablon udostępnia urządzenie jako wskaźnik baterii oraz termostat w pętli zamkniętej. Szablon valve zachowuje ten sam moduł i baterię, ale udostępnia pozycję zaworu jako ściemniacz i używa wariantu setpoint, który przy zapisie wyłącza automatyczną regulację PID. Diagnostyki i akcje na poziomie modułu są identyczne dla obu szablonów.

### Stan baterii

Bateria jest udostępniana jako **przełącznik wielowartościowy** wyprowadzony z raportowanego poziomu naładowania i stanu ładowarki USB-C. Stan ładowarki ma pierwszeństwo przed poziomem naładowania:

| Stan | Warunek |
|------|---------|
| Critical | `bat.value < 25` |
| Low | `bat.value 25-50` |
| Normal | `bat.value 50-75` |
| Full | `bat.value > 75` |
| Charging | `charger != disconnected` |

Dwa dodatkowe atrybuty serwisowe raportują surowy poziom naładowania (`%`) oraz napięcie ogniwa (V, nominalnie ~3,7 V, typowy zakres 2,6-4,2 V). Szablon generuje `Low battery` poniżej 50 % i `Battery charge is critically low` poniżej 25 %.

### Termostat (szablon główny)

Termostat pokojowy z pętlą zamkniętą: TapHome zapisuje zadany setpoint, a firmware TRV steruje pozycją zaworu wewnętrznie na podstawie wbudowanego (lub zewnętrznego) czujnika temperatury.

- **Odczyt:** zmierzona temperatura pokoju (`thermostats[0].tmp.value`) i aktywny cel (`thermostats[0].target_t.value`)
- **Zapis:** setpoint 5-30 °C przez `/settings/thermostats/0?target_t={Se}`

Uzupełniające atrybuty termostatu obejmują **Temperature offset [°C]**, **Valve position [%]** (tylko do odczytu, dla widoczności wyjścia PID), **Force close**, **Extra pressure** i **Automatic calibration correction**. Odpowiadające akcje serwisowe pozwalają TapHome ustawić przesunięcie, przełączyć tryb wymuszonego zamknięcia (zawór pozostaje w pełni zamknięty niezależnie od setpointu) oraz tryb dodatkowego nacisku (zwiększa siłę aktuacji dla sztywnych zaworów).

Zapisy setpointu kończą się `Device is not calibrated`, dopóki `calibrated=false`, a szablon dodaje ostrzeżenie, gdy harmonogram tygodniowy jest aktywny (ponieważ firmware nadpisze zapisy zewnętrzne przy najbliższym zdarzeniu harmonogramu).

### Ściemniacz zaworu (szablon valve)

Alternatywny szablon udostępnia aktuator zaworu bezpośrednio jako urządzenie ściemniacza (0.0-1.0 → 0-100 %). TapHome zapisuje pozycję przez `/thermostats/0?pos={Le*100}` — firmware przesuwa silnik do żądanej pozycji i niejawnie wyłącza automatyczną regulację temperatury docelowej.

Szablon valve dodaje na urządzeniu zaworu atrybuty serwisowe `Force close`, `Extra pressure` i `Automatic calibration correction` (plus odpowiednie akcje toggle), tak aby autorzy inteligentnych reguł mogli bezpośrednio sterować silnikiem w scenariuszach takich jak awaryjne zamknięcie, ręczne rozgrzewanie czy sekwencje boost.

### Termostat (wariant szablonu valve)

Szablon valve nadal udostępnia urządzenie termostat, tak aby setpoint można było zapisać z tej samej grupy urządzeń TapHome, jednak jego skrypt zapisu wysyła **jednocześnie** `target_t` i `target_t_enabled=false`, aby PID firmware'u nie walczył z ręcznie sterowanym zaworem. Zestaw atrybutów serwisowych jest zredukowany do **Temperature offset [°C]** (atrybuty korpusu zaworu, takie jak `force_close` i `valve_state`, przenoszą się do urządzenia zaworu). Szablon ostrzega, gdy zaobserwowany zostanie `target_t.enabled=true` — to wskazuje na konflikt między ściemniaczem zaworu a sterowaniem automatycznym.

### Diagnostyki i akcje modułu

Moduł (head unit) odpytuje `/status` i `/settings` co 3 sekundy i udostępnia diagnostyki i akcje całego urządzenia:

- **Diagnostyki:** SSID Wi-Fi, adres IP, MAC, siła sygnału (RSSI w dBm), stan kalibracji, harmonogram wł./wył., jasność wyświetlacza (1-7) i stan obróconego wyświetlacza.
- **Akcje:** Disable schedule, Reboot, Calibrate (wyzwala `/calibrate`), Update firmware (pobiera `SHTRV-01_build.gbl` z oficjalnego serwera firmware Shelly EU), Set display brightness i Flip display.

### Dodatkowe możliwości

Urządzenie udostępnia także — choć obecne szablony tego jeszcze nie obejmują — kilka funkcji Gen1: pasywne wykrywanie otwartego okna (`/window`), symetryczną akcję **Force open**, awaryjną temperaturę otoczenia (`auto_temp`), blokadę rodzicielską, opóźnienie automatycznego zamknięcia przy otwartym oknie, czujnik zaplanowanego setpointu (`schedule_t`), indeks aktywnego profilu, pozostałe minuty boost oraz akcję **Trigger boost** (`/thermostats/0?boost_minutes=N`), stan termiczny wewnętrznej elektroniki (`tmp_state`) i dostępność aktualizacji firmware jako czujnik. Push CoIoT i transport MQTT są obsługiwane na poziomie urządzenia, ale nieużywane — TapHome zamiast tego pobiera `/status` co 3 s. Funkcje te mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Device is not calibrated

Każdy zapis setpointu i pozycji zaworu zwraca `Device is not calibrated`, dopóki TRV nie zakończy udanego cyklu kalibracji.

1. Upewnij się, że urządzenie jest mocno osadzone na korpusie zaworu — nakrętka zaciskowa musi być na tyle mocna, aby silnik mógł oddziaływać na trzpień zaworu, ale nie tak, aby go deformowała.
2. Uruchom akcję serwisową **Calibrate** na module (wysyła `/calibrate`). Wyświetlacz krótko pokaże `CL`, gdy silnik porusza się w obu kierunkach.
3. Przy sukcesie `calibrated` zmienia się na `true` i zapisy zaczynają działać; niepowodzenie pokazuje na wyświetlaczu `E1` — zwykle oznacza nieprawidłowe osadzenie.

### Setpoint co kilka godzin wraca do innej wartości

To harmonogram tygodniowy nadpisujący zapisy zewnętrzne. Sprawdź atrybut serwisowy **Schedule** — jeśli jest włączony, uruchom akcję **Disable schedule** na module lub wyłącz aktywny profil w aplikacji Shelly Cloud.

### Temperatura pokojowa jest zbyt wysoka

Dwie typowe przyczyny:

- **Podłączona ładowarka.** Odczyty temperatury pokoju są nieważne, dopóki `charger != disconnected`. Odłącz USB-C i pozwól urządzeniu wystygnąć.
- **Odchylenie wbudowanego czujnika.** Czujnik znajduje się blisko gorących rur i typowo odczytuje 1-3 °C za wysoko. Włącz endpoint korekcji temperatury zewnętrznej i sparuj Shelly H&T (lub kompatybilny termometr Wi-Fi) w tym samym pokoju, albo zastosuj statyczne **Set temperature offset** (np. `-1,5 °C`).

### Na wyświetlaczu pojawia się E1 / E2

`E1` — błąd kalibracji. Przełóż urządzenie, ostrożnie dokręć nakrętkę i uruchom nowy cykl kalibracji.

`E2` — błąd czujnika temperatury. `tmp.is_valid` w `/status` staje się `false`, a szablon dodaje błąd `Temperature sensor error`. Jeśli problem utrzymuje się po restarcie, czujnik prawdopodobnie uległ uszkodzeniu — skontaktuj się ze wsparciem Shelly.

### Urządzenie jest nieosiągalne

1. Sprawdź, czy TRV jest podłączony do Wi-Fi — przytrzymaj **Up + Down** przez 5 s i przewiń parametry stanu; `CO` oznacza podłączonego klienta Wi-Fi.
2. Upewnij się, że CCU TapHome i TRV znajdują się w tej samej sieci / VLAN — Shelly Gen1 domyślnie nie routuje między podsieciami.
3. Spróbuj nazwy mDNS (`shellytrv-XXXXXX.local`) zamiast IP — dzierżawa DHCP mogła się zmienić.
4. Otwórz `http://{device-ip}/status` w przeglądarce. Jeśli przyjdzie odpowiedź JSON, urządzenie jest osiągalne, a problem leży w konfiguracji TapHome.

> [!WARNING]
> Urządzenia Gen1 Shelly akceptują tylko **2 równoczesne połączenia HTTP**. Jeśli TapHome i inny system (Home Assistant, Node-RED) odpytują to samo urządzenie w tym samym czasie, komunikacja staje się niestabilna. Pozostaw interwał pollingu na domyślnej wartości szablonu (3 s) i unikaj dodatkowych pollerów.

> [!NOTE]
> Włączenie MQTT na urządzeniach Gen1 Shelly **nieodwracalnie wyłącza Shelly Cloud**. TapHome używa wyłącznie HTTP — zostaw MQTT wyłączone, chyba że świadomie chcesz odejść od Shelly Cloud.

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

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

Shelly TRV Moduł

Atrybuty serwisowe

|                          |                                                                                                                                           |
|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| SSID Wi-Fi               |                                                                                                                                           |
| Adres IP                 |                                                                                                                                           |
| Adres MAC                |                                                                                                                                           |
| Siła odbieranego sygnału | Siła sygnału Wi-Fi w dBm — typowy dobry zakres od -55 do -70 dBm, poniżej -80 dBm zawodny                                                 |
| Skalibrowany             | Czy kalibracja mechaniczna zaworu jest zakończona — zapisy setpointu i pozycji zaworu są odrzucane do momentu powodzenia kalibracji       |
| Harmonogram              | Harmonogram tygodniowy wł./wył. — gdy włączony, firmware nadpisuje zewnętrznie zapisane setpointy przy najbliższym zdarzeniu harmonogramu |
| Jasność wyświetlacza     | Poziom jasności wyświetlacza LED (1 = słaby, 7 = mocny)                                                                                   |
| Odwrócony wyświetlacz    | Czy wyświetlacz LED jest obrócony o 180° do montażu do góry nogami                                                                        |

Akcje serwisowe

|                            |                                                                                                                  |
|----------------------------|------------------------------------------------------------------------------------------------------------------|
| Wyłącz harmonogram         | Wyłącza harmonogram tygodniowy, aby zewnętrzne setpointy nie były cofane przy najbliższym zdarzeniu harmonogramu |
| Restart                    |                                                                                                                  |
| Kalibruj                   | Uruchamia cykl mechanicznej kalibracji zaworu — wymagany po każdym przełożeniu na inny korpus zaworu             |
| Aktualizuj firmware        | Uruchamia aktualizację OTA firmware z oficjalnego serwera firmware Shelly EU                                     |
| Ustaw jasność wyświetlacza | Ustawia jasność wyświetlacza LED (1 = słaby, 7 = mocny)                                                          |
| Odwróć wyświetlacz         | Przełącza obrót wyświetlacza o 180° dla zaworów zamontowanych do góry nogami                                     |

Zmienne niestandardowe

Odczyt (moduł)

```taphome
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
    status := response.Content;
END

response := SENDHTTPREQUEST("/settings");
IF response.IsSuccess
    settings := response.Content;
END

if(PARSEJSON(status, "$.thermostats[0].schedule"), adderror("Schedule is enabled"));
if(PARSEJSON(status, "$.update.has_update"), addwarning("Firmware update is available"));

var bat := PARSEJSON(status, "$.bat.value");
if bat < 25
    addwarning("Battery charge is criticaly low");
elseif bat < 50
    addwarning("Low battery");
end
```

Atrybuty serwisowe

Wifi

```taphome
PARSEJSON(status, "$.wifi_sta.ssid")
```

${ipAddress}

```taphome
PARSEJSON(status, "$.wifi_sta.ip")
```

MAC

```taphome
PARSEJSON(status, "$.mac")
```

Received signal strength

```taphome
PARSEJSON(status, "$.wifi_sta.rssi")
```

Calibrated

```taphome
if(PARSEJSON(status, "$.calibrated"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Schedule

```taphome
 VAR response := SENDHTTPREQUEST("/thermostats/0");
IF response.IsSuccess
 VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(SWITCH(PARSEJSON(content, "$.schedule"), true, "On", "Off"));
END
```

Display brightness

```taphome
PARSEJSON(settings, "$.display.brightness")
```

Display flipped

```taphome
if(PARSEJSON(settings, "$.display.flipped"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Akcje serwisowe

Disable schedule

```taphome
var response := SENDHTTPREQUEST("/settings/thermostats/0?schedule=false");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Reboot

```taphome
VAR response := SENDHTTPREQUEST("/reboot");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Calibrate

```taphome
VAR response := SENDHTTPREQUEST("/calibrate");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Update firmware

```taphome
VAR response := SENDHTTPREQUEST("/ota?url=http://shelly-api-eu.shelly.cloud/firmware/SHTRV-01_build.gbl");
if(response.IsSuccess, return("OK"), return(response.Content));
```

Set display brightness

Parametry: Brightness (1-7) (1–7 Br)

```taphome
var response := SENDHTTPREQUEST("/settings?display_brightness=" + Br);
if(response.IsSuccess, return("OK"), return(response.Content));
```

Flip display

```taphome
var response := SENDHTTPREQUEST("/settings?display_flipped=" + if(PARSEJSON(settings, "$.display.flipped"), "false", "true"));
if(response.IsSuccess, return("OK"), return(response.Content));
```

Bateria Przełącznik wielowartościowy Tylko do odczytu

Poziom naładowania baterii jako przełącznik wielowartościowy — Critical (&lt;25 %), Low (25-50 %), Normal (50-75 %), Full (&gt;75 %), Charging (podłączone USB-C). Stan ładowania ma pierwszeństwo przed poziomem

numeric Jednostka: % multi-value switch

Wartości / Stany: Critical · Low · Normal · Full · Charging

Odczyt stanu przełącznika

```taphome
if PARSEJSON(status, "$.charger")
    return(4);
end

var bat := PARSEJSON(status, "$.bat.value");
if bat > 75
    return(3);
elseif bat > 50
    return(2);
elseif bat > 25
    return(1);
else
    return(0);
end
```

Atrybuty serwisowe

Value \[%]

```taphome
PARSEJSON(status, "$.bat.value");
```

Voltage \[V]

```taphome
PARSEJSON(status, "$.bat.voltage");
```

Termostat Termostat Odczyt i zapis

Termostat pokojowy z pętlą zamkniętą — zapis temperatury docelowej (5-30 °C), firmware wewnętrznie steruje zaworem za pomocą wbudowanego lub zewnętrznego czujnika

numeric Jednostka: °C

Atrybuty serwisowe

|                                 |                                                                                                                                                               |
|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Przesunięcie temperatury \[°C]  | Statyczne przesunięcie dodawane do zmierzonej temperatury pokoju — przydatne, gdy wbudowany czujnik odczytuje wyższe wartości z powodu bliskości gorących rur |
| Pozycja zaworu \[%]             | Aktualne otwarcie zaworu w procentach (0 = w pełni zamknięty, 100 = w pełni otwarty)                                                                          |
| Wymuszone zamknięcie            | Czy zawór jest wymuszony do pełnego zamknięcia niezależnie od setpointu                                                                                       |
| Dodatkowy nacisk                | Czy tryb dodatkowego nacisku jest aktywny — stosuje dodatkową siłę mechaniczną do uruchamiania sztywnych zaworów                                              |
| Automatyczna korekta kalibracji | Czy do skoku mechanicznego stosowana jest drobna korekta kalibracji                                                                                           |

Akcje serwisowe

|                                |                                                                                                                 |
|--------------------------------|-----------------------------------------------------------------------------------------------------------------|
| Ustaw przesunięcie temperatury | Ustawia przesunięcie temperatury czujnika (od -20 do +20 °C) w celu kompensacji odchylenia wbudowanego czujnika |
| Przełącz wymuszone zamknięcie  | Przełącza tryb wymuszonego zamknięcia — zawór pozostaje w pełni zamknięty niezależnie od setpointu              |
| Przełącz dodatkowy nacisk      | Przełącza tryb dodatkowego nacisku — zwiększa siłę aktuacji dla sztywnych zaworów                               |

Odczyt temperatury

```taphome
PARSEJSON(status, "$.thermostats[0].tmp.value")
```

Odczyt (moduł)

```taphome
if(! PARSEJSON(status, "$.thermostats[0].tmp.is_valid"), adderror("Temperature sensor error"));
```

Odczyt temperatury zadanej

```taphome
PARSEJSON(status, "$.thermostats[0].target_t.value")
```

Zapis temperatury zadanej

```taphome
if(status = "0", return(Se));

if !PARSEJSON(status, "$.calibrated")
    ADDERROR("Device is not calibrated");
    return(NaN);
end

VAR response := SENDHTTPREQUEST("/settings/thermostats/0?target_t=" + Se);
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
```

Atrybuty serwisowe

Temperature offset \[°C]

```taphome
PARSEJSON(settings, "$.thermostats[0].temperature_offset")
```

${device\_variable\_valvestate} \[%]

```taphome
PARSEJSON(status, "$.thermostats[0].pos")
```

Force close

```taphome
if(PARSEJSON(settings, "$.thermostats[0].force_close"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Extra pressure

```taphome
if(PARSEJSON(settings, "$.thermostats[0].extra_pressure"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Automatic calibration correction

```taphome
if(PARSEJSON(settings, "$.thermostats[0].calibration_correction"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
```

Akcje serwisowe

Set temperature offset

Parametry: Offset (-20–20 C)

```taphome
VAR response := SENDHTTPREQUEST("/settings/thermostats/0?temperature_offset=" + C);
if(response.IsSuccess, return("OK"), return(response.Content));
```

Toggle force close

```taphome
var response := SENDHTTPREQUEST("/settings/thermostats/0?force_close=" + if(PARSEJSON(settings, "$.thermostats[0].force_close"), "false", "true"));
if(response.IsSuccess, return("OK"), return(response.Content));
```

Toggle extra pressure

```taphome
var response := SENDHTTPREQUEST("/settings/thermostats/0?extra_pressure=" + if(PARSEJSON(settings, "$.thermostats[0].extra_pressure"), "false", "true"));
if(response.IsSuccess, return("OK"), return(response.Content));
```

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

Możliwe ulepszenia (14)

- Active schedule profile — Currently active profile index (0-4) when scheduling is enabled. Could be added as a multi-value indicator
- Scheduled setpoint — Setpoint that the firmware would apply on the next schedule event
- Boost remaining — Remaining boost time in minutes; pairs with /thermostats/0?boost\_minutes=N write
- Trigger boost — Temporary heating boost action — not currently exposed as service action
- Internal thermal state — Electronics thermal state (Normal / High / Very High); early warning for overheating
- Firmware update availability — Currently surfaced only as warning in module readscript — could be a service attribute
- Open window detection — Passive open-window detection based on temperature drop; publishes 'state: open|closed' and MQTT topic shellies/{id}/window
- Force open — Forces valve 100% open — symmetrical counterpart to force\_close which IS implemented
- Window-open auto-close delay — Delay (1-3600 s) before closing the valve after open-window detection
- Fallback ambient temperature — Fallback setpoint (0-27 °C, 0 = disabled) used when no active setpoint exists
- Child lock — Locks the physical Up/Down buttons on the device
- Schedule rules configuration — Up to 18 rules/profile, 5 named profiles. Complex config — usually managed via Shelly Cloud app
- CoIoT push updates — Optional multicast push (CoAP) — TapHome uses pull polling, not required
- MQTT control — Gen1 MQTT alternative transport — enabling MQTT irreversibly disables Shelly Cloud

## 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 TRV — HTTP API (TRV-specific endpoints)
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv) 2026-04-16
- Shelly TRV — Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-trv) 2026-04-16
- Shelly TRV — Multilingual User & Safety Guide
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-trv) 2026-04-16
  
  [PDF](https://taphome.com/compatibility/devices/shelly-trv/manufacturer/user-guide.pdf)
- Peyanski — Home Assistant and Shelly TRV
  
  [peyanski.com](https://peyanski.com/home-assistant-and-shelly-trv/) 2026-04-16

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

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

