---
title: "Shelly TRV (valve)"
description: "Steruj pozycją zaworu Shelly TRV (0-100 %) ze smart rules TapHome po lokalnym HTTP, bez własnej regulacji. Bateria, temperatura zadana, diagnostyka Wi-Fi."
url: "https://taphome.com/pl/compatibility/shelly-trv-valve/"
language: pl
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["http","thermostat","wifi","battery-powered","radiator-valve","valve-position-control","smart-rule","mdns"]
  questions: ["Jak sterować pozycją zaworu Shelly TRV bezpośrednio ze smart rule w TapHome?","Jaka jest różnica między szablonami Shelly TRV dla termostatu i zaworu?","Dlaczego szablon zaworu Shelly TRV wyłącza automatyczną regulację temperatury?","Jak połączyć Shelly TRV z Wi-Fi i skalibrować go po zamontowaniu na grzejniku?","Dlaczego Shelly TRV odrzuca zapis pozycji zaworu z komunikatem Device is not calibrated?","Jak wyłączyć harmonogram tygodniowy Shelly TRV, aby nie nadpisywał TapHome?"]
---

# Shelly TRV (valve)

Komunikacja: Packet Parser → HTTP

## 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 zmienia przepływ gorącej wody przez grzejnik, przesuwając trzpień zaworu wewnętrznym silnikiem. TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — bez bramy, bez chmury, bez brokera MQTT.

Ten szablon udostępnia pozycję zaworu jako osobne urządzenie **Stan zaworu**, dzięki czemu smart rule w TapHome może sterować zaworem bezpośrednio. Własna regulacja temperatury urządzenia jest wyłączona: każda temperatura zadana zapisana z TapHome jest wysyłana razem z `target_t_enabled=false`, więc firmware nie porusza już zaworem samodzielnie.

Shelly TRV jest **produktem wycofanym**, zastąpionym przez [Shelly BLU TRV](https://www.shelly.com/products/shelly-blu-trv) działający przez Bluetooth. Istniejące egzemplarze nadal działają, a ten 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 jeden w zależności od zamierzonego sposobu sterowania.

| Szablon | Udostępnia | Zastosowanie |
|---------|------------|--------------|
| [**Shelly TRV**](https://taphome.com/pl/compatibility/shelly-trv/) (główny) | Baterię + termostat w pętli zamkniętej | Sterowanie temperaturą pokoju przez użytkownika końcowego za pomocą temperatury zadanej (5-30 °C). Firmware steruje zaworem wewnętrznie. |
| **Shelly TRV (valve)** (ten szablon) | Baterię + ściemniacz zaworu + termostat (wariant z temperaturą zadaną) | Smart rules, które wymagają bezpośredniego sterowania zaworem — pozycja zaworu jest udostępniona jako ściemniacz 0-100 %, automatyczna regulacja jest wyłączona. |

> [!WARNING]
> Nie importuj obu szablonów dla tego samego fizycznego urządzenia. 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 (Panasonic NCR18650BD, 3,6 V / 6500 mAh). Mocuje się ją na korpusie zaworu za pomocą metalowej nakrętki zaciskowej. Urządzenie jest przeznaczone wyłącznie do użytku wewnątrz pomieszczeń i musi być chronione przed brudem, wilgocią i bryzgami wody.

### Zgodne korpusy zaworów

Jeśli grzejnik ma już głowicę termostatyczną (zwykle pokrętło ze skalą od 1 do 5), korpus zaworu jest najprawdopodobniej zgodny. Grzejniki z małymi zaworami ręcznymi — typowe tam, gdzie zainstalowano osobny termostat pokojowy lub centralny — **nie** są zgodne.

Natywny gwint: **M30 × 1,5**. W opakowaniu 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ą głowicę w lewo, aż zawór będzie całkowicie otwarty, a następnie odkręć metalową nakrętkę w lewo i zdejmij ją.
3. Jeśli gwint zaworu nie jest natywnym M30 × 1,5, załóż odpowiedni adapter.
4. Przymocuj Shelly TRV do korpusu zaworu, obracając metalową nakrętkę w prawo — nie dokręcaj jej jeszcze do końca.
5. Obróć wyświetlacz do żądanej orientacji, a następnie całkowicie dokręć metalową nakrętkę.

> [!WARNING]
> Nie próbuj obracać urządzenia, gdy metalowa nakrętka jest całkowicie dokręcona — może to je uszkodzić.

### Ładowanie

Urządzenie ładuje się przez **USB-C** ładowarką zgodną ze standardem USB-C o prądzie co najmniej 1 A. Przed pierwszym użyciem naładuj je do pełna przez około 7 godzin. Podczas ładowania linia poziomu baterii na wyświetlaczu miga, a kropka obok dolnej linii sygnalizuje podłączoną ładowarkę. Bateria wystarcza na maksymalnie 2 lata, w zależności od tego, jak często porusza się zawór, oraz od jakości sygnału Wi-Fi.

> [!WARNING]
> Podczas ładowania obudowa urządzenia nagrzewa się, a wewnętrzny czujnik temperatury odczytuje niepoprawnie. Gdy ładowarka jest podłączona, spodziewaj się zafałszowanych wartości temperatury pokoju.

## Kalibracja

Kalibracja uczy silnik skoku konkretnego korpusu zaworu. Bez niej TapHome nie może odczytywać ani zapisywać pozycji zaworu.

1. Krótko naciśnij **Reset** (tył urządzenia). Wyświetlacz pokaże `CL`, a wewnętrzny silnik obraca się w obu kierunkach.
2. Udana kalibracja kończy się komunikatem `AP` na wyświetlaczu — urządzenie jest gotowe do połączenia z Wi-Fi.
3. `E1` oznacza, że kalibracja się nie powiodła: nakrętka nie jest wystarczająco dokręcona albo urządzenie nie jest prawidłowo osadzone. Dokręć nakrętkę lub zamontuj urządzenie ponownie, a następnie przytrzymaj **Up** lub **Down** przez 3 sekundy i kilka razy naciśnij **Down**, aby rozpocząć nową kalibrację.

Gdy urządzenie jest już w TapHome, nowy cykl kalibracji można też uruchomić akcją serwisową **Calibrate** na module.

> [!NOTE]
> Skalibruj urządzenie ponownie po każdym przełożeniu na inny korpus zaworu. Dopóki urządzenie nie zgłosi `calibrated=true`, urządzenie Stan zaworu pokazuje `Device is not calibrated`, a TapHome odrzuca zarówno zapisy pozycji zaworu, jak i temperatury zadanej.

## Konfiguracja sieci

Shelly TRV korzysta z Wi-Fi 2,4 GHz (802.11 b/g/n) o zasięgu do 30 m, zależnie od konstrukcji budynku. Po kalibracji uruchamia się w trybie Access Point (`AP` na wyświetlaczu).

> [!WARNING]
> Jeśli urządzenie nie zostanie dodane do sieci Wi-Fi w ciągu 3 minut, wyłączy się. Krótko naciśnij **Reset**, aby uruchomić je ponownie.

### Łączenie z Wi-Fi

Urządzenie można połączyć przez aplikację mobilną Shelly Cloud albo ręcznie przez jego wbudowany interfejs WWW:

1. Połącz telefon lub komputer z siecią Wi-Fi utworzoną przez urządzenie i otwórz `http://192.168.33.1`.
2. Kliknij **Internet & Security** i wybierz **WIFI MODE - CLIENT**.
3. Zaznacz **Connect the Shelly device to an existing WiFi Network**, wpisz nazwę sieci i hasło, a następnie naciśnij **SAVE**.
4. Znajdź adres IP urządzenia w sieci lokalnej (lista klientów routera albo narzędzie Shelly device finder dla Windows lub macOS).

Włączenie trybu Client wyłącza tryb Access Point. Aby wrócić do trybu Access Point, przytrzymaj **Reset** przez 5 sekund.

Rezerwacja DHCP dla urządzenia w routerze utrzymuje stały adres IP używany przez TapHome.

### Uwierzytelnianie

Szablon wysyła żądania HTTP bez danych logowania na port `80`; HTTPS nie jest obsługiwany w urządzeniach Gen1. Jeśli w interfejsie WWW urządzenia włączono ochronę logowaniem, wyłącz ją — w przeciwnym razie TapHome nie będzie mógł odczytywać danych z urządzenia ani nim sterować.

## Konfiguracja

W TapHome zaimportuj szablon i wpisz adres IP urządzenia jako jedyny parametr importu, a następnie utwórz smart rule, która steruje urządzeniem **Stan zaworu**.

### Wyłączenie harmonogramu tygodniowego

Shelly TRV ma wbudowany harmonogram tygodniowy (5 profili, do 20 zmian temperatury na profil). Gdy harmonogram jest aktywny, firmware nadpisuje każdą zapisaną z zewnątrz temperaturę zadaną przy najbliższej zaplanowanej zmianie.

Szablon zgłasza to jako błąd modułu (`Schedule is enabled`). Zanim oddasz urządzenie pod sterowanie TapHome, wykonaj jedno z poniższych:

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

### Automatyczne sterowanie zaworem

Zarówno urządzenie Stan zaworu, jak i urządzenie Termostat pokazują ostrzeżenie `Automatic valve control is on` zawsze, gdy urządzenie zgłasza swoją własną regulację temperatury jako aktywną, ponieważ może ona kolidować z działaniem smart rule. Zapis temperatury zadanej z urządzenia Termostat ponownie ją wyłącza (`target_t_enabled=false`).

### Zewnętrzny czujnik pokojowy (zalecane)

Każdy termostat montowany na grzejniku mierzy temperaturę blisko grzejnika, więc wbudowany czujnik odbiega od rzeczywistej temperatury pokoju. Dostępne są dwie ścieżki korekty:

- **Czujnik zewnętrzny** — Shelly H&T lub kompatybilny czujnik w pomieszczeniu może wysyłać temperaturę otoczenia do TRV. Włącz to w interfejsie WWW urządzenia → **Sensor Settings** → **TEMPERATURE OFFSET** → **Enable external temperature corrections endpoint**.
- **Statyczne przesunięcie** — użyj akcji serwisowej **Set temperature offset** na urządzeniu Termostat (zakres ±20 °C), aby skompensować stałą odchyłkę.

## Możliwości urządzenia

Szablon udostępnia urządzenie jako wskaźnik baterii, ściemniacz pozycji zaworu i termostat. Diagnostyka i akcje na poziomie modułu są takie same jak w szablonie głównym.

### Stan zaworu

Siłownik zaworu jest udostępniony jako ściemniacz (0-100 %). TapHome odczytuje pozycję z `thermostats[0].pos` i zapisuje ją przez `/thermostats/0?pos={0-100}`; firmware przesuwa silnik do żądanej pozycji. Ujemna pozycja oznacza, że zawór nie jest skalibrowany, a urządzenie pokazuje `Device is not calibrated`.

Atrybuty serwisowe raportują **Force close**, **Extra pressure** i **Automatic calibration correction**. Akcje serwisowe przełączają tryb wymuszonego zamknięcia (zawór pozostaje całkowicie zamknięty) oraz tryb dodatkowego nacisku (silniejsze działanie dla sztywnych zaworów), dzięki czemu smart rules mogą obsłużyć scenariusze takie jak awaryjne zamknięcie, wstępne nagrzewanie czy sekwencje boost.

### Termostat

Termostat odczytuje zmierzoną temperaturę pokoju (`thermostats[0].tmp.value`) i zapisaną wartość docelową (`thermostats[0].target_t.value`). Zapis temperatury zadanej wysyła **jednocześnie** `target_t` i `target_t_enabled=false` do `/settings/thermostats/0`, aby firmware nie poruszał zaworem samodzielnie — temperatura zadana służy jako wartość odniesienia dla smart rule, która steruje urządzeniem Stan zaworu.

Jedynym atrybutem serwisowym jest **Temperature offset [°C]** z odpowiadającą mu akcją **Set temperature offset**. Urządzenie dodaje `Temperature sensor error`, gdy odczyt czujnika jest nieprawidłowy.

### Stan baterii

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

| Stan | Warunek |
|------|---------|
| Critical | `bat.value` 25 % lub mniej |
| Low | `bat.value` 26-50 % |
| Normal | `bat.value` 51-75 % |
| Full | `bat.value` powyżej 75 % |
| Charging | podłączona ładowarka |

Dwa atrybuty serwisowe raportują surowy poziom naładowania (`%`) i napięcie (V). Moduł zgłasza `Low battery` poniżej 50 % i `Battery charge is criticaly low` poniżej 25 %.

### Diagnostyka i akcje modułu

Moduł odpytuje `/status` i `/settings` co 3 sekundy i udostępnia diagnostykę i akcje całego urządzenia:

- **Diagnostyka:** SSID Wi-Fi, adres IP, MAC, siła odbieranego sygnału, stan kalibracji, harmonogram wł./wył., jasność wyświetlacza (1-7) i stan obróconego wyświetlacza. Gdy dostępna jest aktualizacja firmware, pojawia się ostrzeżenie.
- **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.

## Rozwiązywanie problemów

### Device is not calibrated

Zapisy pozycji zaworu i temperatury zadanej są odrzucane z komunikatem `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 musi być dokręcona na tyle mocno, aby silnik mógł naciskać na trzpień zaworu.
2. Uruchom akcję serwisową **Calibrate** na module albo rozpocznij kalibrację na urządzeniu (przytrzymaj **Up** lub **Down** przez 3 sekundy, a następnie kilka razy naciśnij **Down**). Wyświetlacz pokazuje `CL`, gdy silnik porusza się w obu kierunkach.
3. Po udanej kalibracji atrybut **Calibrated** zmienia się na `Yes`; `E1` na wyświetlaczu zwykle oznacza nieprawidłowy montaż.

### Zawór się porusza, choć żadna smart rule go nie zmieniła

Aktywna jest własna regulacja urządzenia albo harmonogram tygodniowy. Sprawdź ostrzeżenie `Automatic valve control is on` i atrybut modułu **Schedule** — zapisz temperaturę zadaną z urządzenia Termostat, aby wyłączyć automatyczne sterowanie, a jeśli harmonogram jest włączony, uruchom **Disable schedule**.

### Temperatura pokojowa jest zbyt wysoka

- **Podłączona ładowarka.** Odczyty temperatury pokoju są nieważne podczas ładowania. Odłącz USB-C i pozwól urządzeniu wystygnąć.
- **Odchylenie wbudowanego czujnika.** Czujnik znajduje się blisko grzejnika. Włącz endpoint korekcji temperatury zewnętrznej i sparuj Shelly H&T (lub kompatybilny czujnik) w tym samym pomieszczeniu albo zastosuj statyczne **Set temperature offset**.

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

Aby sprawdzić stan, przytrzymaj jednocześnie **Up** i **Down** przez 5 sekund i przewijaj przyciskami **Up** lub **Down**.

- `E1` — problem z kalibracją. Zamontuj urządzenie ponownie, ostrożnie dokręć nakrętkę i rozpocznij nowy cykl kalibracji.
- `E2` — problem z czujnikiem temperatury. Szablon dodaje na urządzeniu Termostat błąd `Temperature sensor error`. Jeśli problem utrzymuje się po restarcie, skontaktuj się ze wsparciem Shelly.

### Urządzenie jest nieosiągalne

1. Sprawdź, czy TRV jest połączony z Wi-Fi — przytrzymaj **Up** i **Down** przez 5 sekund i przewiń parametry stanu; `CO` oznacza połączenie z siecią Wi-Fi, `AP` oznacza, że urządzenie jest nadal w trybie Access Point.
2. Upewnij się, że TapHome Core i TRV znajdują się w tej samej sieci / VLAN.
3. Spróbuj nazwy hosta mDNS (`shellytrv-XXXXXX.local`) zamiast adresu 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 odpytują to samo urządzenie w tym samym czasie, komunikacja staje się zawodna. Pozostaw interwał pollingu na domyślnej wartości szablonu (3 s) i unikaj dodatkowych systemów odpytujących.

> [!NOTE]
> Włączenie MQTT na urządzeniach Gen1 Shelly wyłącza połączenie z Shelly Cloud. TapHome używa wyłącznie HTTP — zostaw MQTT wyłączone.

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

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

Shelly TRV Moduł

Atrybuty serwisowe

|                          |
|--------------------------|
| Wifi                     |
| ${ipAddress}             |
| MAC                      |
| Received signal strength |
| Calibrated               |
| Schedule                 |
| Display brightness       |
| Display flipped          |

Akcje serwisowe

|                        |
|------------------------|
| Disable schedule       |
| Reboot                 |
| Calibrate              |
| Update firmware        |
| Set display brightness |
| Flip display           |

Zmienne niestandardowe

|                         |
|-------------------------|
| `settings` (string) = 0 |
| `status` (string) = 0   |

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

Battery Przełącznik wielowartościowy

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

${device\_variable\_valvestate} Ściemniacz

Atrybuty serwisowe

|                                  |
|----------------------------------|
| Force close                      |
| Extra pressure                   |
| Automatic calibration correction |

Akcje serwisowe

|                       |
|-----------------------|
| Toggle force close    |
| Toggle extra pressure |

Odczyt (moduł)

```taphome
if(PARSEJSON(status, "$.thermostats[0].target_t.enabled"), addwarning("Automatic valve control is on. It may conflict with smart rule opration."));
```

Odczyt poziomu

```taphome
var pos := PARSEJSON(status, "$.thermostats[0].pos");
if pos >= 0
    return(pos / 100);
else
    adderror("Device is not calibrated");
    return(NaN);
end
```

Zapis poziomu

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

if !PARSEJSON(status, "$.calibrated")
    ADDERROR("Device is not calibrated");
    return(NaN);
end
 
 VAR response := SENDHTTPREQUEST("/thermostats/0?pos=" + Le*100);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
```

Atrybuty serwisowe

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

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

${adddevice\_thermostat} Termostat

Atrybuty serwisowe

|                          |
|--------------------------|
| Temperature offset \[°C] |

Akcje serwisowe

|                        |
|------------------------|
| Set temperature offset |

Odczyt temperatury

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

Odczyt (moduł)

```taphome
if(! PARSEJSON(status, "$.thermostats[0].tmp.is_valid"), adderror("Temperature sensor error"));
if(PARSEJSON(status, "$.thermostats[0].target_t.enabled"), addwarning("Automatic valve control is on. It may conflict with smart rule opration."));
```

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 + "&target_t_enabled=false");
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
```

Atrybuty serwisowe

Temperature offset \[°C]

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

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

**Połączenie:** Packet Parser → HTTP

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

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

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

