---
title: "Shelly TRV"
description: "Steuere Raum-Sollwert (5-30 °C) oder Ventilposition (0-100 %) des batteriebetriebenen WLAN-TRV per HTTP. TapHome-Vorlage für Shelly TRV."
url: "https://taphome.com/de/compatibility/shelly-trv/"
language: de
lastmod: 2026-04-18
generator: hugo
ai:
  topics: ["http","thermostat","wifi","battery-powered","radiator-valve","mdns"]
  questions: ["Wie wird Shelly TRV in TapHome integriert?","Worin unterscheiden sich die Shelly-TRV-Vorlagen thermostat und valve?","Wie wird das Shelly TRV nach der Montage am Heizkörper kalibriert?","Warum lehnt Shelly TRV Sollwert-Schreibvorgänge von TapHome ab?","Warum zeigt das Shelly TRV eine zu hohe Raumtemperatur an?","Wie deaktiviere ich den Wochenplan, damit TapHome den Sollwert steuert?"]
---

# Shelly TRV

Kommunikation: Packet Parser → HTTP

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

> Netzwerkadresse
> 
> TapHome erreicht dieses Gerät unter der beim Import eingegebenen Adresse. Geben Sie dem Gerät eine feste Adresse — eine IP-Reservierung im Router oder seinen mDNS-Namen, falls es einen unterstützt —, sonst funktioniert die Integration nicht mehr, sobald der Router die Adresse ändert.
> 
> [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/)

## Integrationsanleitung

Das Shelly TRV (SHTRV-01) ist ein batteriebetriebenes WLAN-Heizkörperthermostat von Allterco Robotics. Es wird direkt auf das Ventil eines herkömmlichen Warmwasser-Heizkörpers gesetzt und regelt die Raumtemperatur über einen internen Motor am Ventilstift. TapHome kommuniziert mit dem Gerät per HTTP im lokalen Netzwerk — ohne Bridge, ohne Cloud, ohne MQTT-Broker.

Shelly TRV ist **abgekündigt** und wurde durch die Bluetooth-Variante [Shelly BLU TRV](https://www.shelly.com/products/shelly-blu-trv) ersetzt. Bestehende Geräte funktionieren weiter und die Vorlage bleibt vollständig unterstützt; für neue Projekte empfiehlt sich der Nachfolger.

Für dasselbe physische Gerät stehen zwei alternative Vorlagen zur Verfügung — wähle je nach gewünschter Steuerungsart.

| Vorlage | Stellt bereit | Einsatz |
|---------|---------------|---------|
| **Shelly TRV** (main) | Batterie + Thermostat mit geschlossenem Regelkreis | Raumtemperatursteuerung durch den Endnutzer per Sollwert (5-30 °C). Firmware regelt das Ventil intern. |
| **Shelly TRV (valve)** | Batterie + Ventil-Dimmer + Thermostat (Sollwert-Variante) | Smart Rules, die direkten Ventilzugriff benötigen — Ventilposition als Dimmer 0.0-1.0. |

> [!WARNING]
> Importiere nicht beide Vorlagen für dasselbe physische Gerät. Beide greifen auf denselben Endpoint zu und die Polling-Schleifen kollidieren — Schreibvorgänge widersprechen sich und das Ventilverhalten wird unvorhersehbar.

## Hardware-Installation

Das Shelly TRV hat **keine Verkabelung** — es ist ein mechanischer Heizkörperkopf mit interner Elektronik, versorgt durch einen internen Li-Ion-Akku (Panasonic NCR18650BD, 3,7 V / 6500 mAh). Es wird direkt über einen Überwurfring auf den Ventilkörper montiert.

### Kompatible Ventilkörper

Native Gewinde: **M30 × 1,5**. Folgende Adapter liegen dem Gerät bei:

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

Drittanbieter-Adapter (nicht im Lieferumfang) erweitern die Kompatibilität auf Gampper, Ista, Meges, Ondal, Oventrop, Rossweiner, Vaillant und weitere.

### Montageablauf

1. Stelle sicher, dass der Heizkörper ausgeschaltet und abgekühlt ist.
2. Drehe den vorhandenen manuellen Thermostatkopf gegen den Uhrzeigersinn bis zum Anschlag (vollständig offen), schraube dann den Überwurfring ab und nimm den Kopf ab.
3. Setze den passenden Adapter auf, falls das Ventilgewinde nicht M30 × 1,5 ist.
4. Setze das Shelly TRV auf den Ventilkörper und ziehe den Überwurfring im Uhrzeigersinn fest — stramm, aber nicht überdreht. Sowohl zu locker als auch zu fest führen zum Kalibrierfehler.
5. Richte das Display auf die gewünschte Orientierung aus, bevor der Ring vollständig angezogen wird.
6. Drücke kurz **Reset** (Geräterückseite). Das Display zeigt `CL` (Kalibrierung) an und der interne Motor bewegt sich in beide Richtungen. Eine erfolgreiche Kalibrierung endet mit `AP` auf dem Display; ein Fehler zeigt `E1`.

> [!NOTE]
> Die Kalibrierung muss nach jeder Ummontage auf einen anderen Ventilkörper erneut ausgeführt werden. Solange `calibrated=true` nicht erreicht ist, werden Sollwert- und Positions-Schreibvorgänge mit `Device is not calibrated` abgelehnt.

### Laden

Das Gerät lädt über **USB-C** (Kabel im Lieferumfang, Netzteil nicht). Ein USB-C-Ladegerät ≥1 A lädt den Akku in etwa 5 Stunden von leer auf voll. Die typische Akkulaufzeit beträgt ~2 Jahre (~5 Monate durchgehende Heizperiode bei üblichem Einsatz).

> [!WARNING]
> Während des Ladevorgangs erwärmt sich das Gehäuse und der interne Temperatursensor liefert falsche Werte. Solange `charger` nicht `disconnected` meldet, sind Raumtemperatur-Werte verzerrt.

## Konfiguration

### TapHome-Import

Beim Vorlagenimport fragt TapHome einen einzelnen Parameter ab:

| Parameter | Beschreibung | Standard |
|-----------|--------------|----------|
| `IpAddress` | Lokale IP-Adresse oder mDNS-Hostname des Geräts | `192.168.0.1` |

Port `80` ist fest. HTTPS wird von Gen1 nicht unterstützt. HTTP Basic Auth muss am Gerät **deaktiviert** sein — TapHome authentifiziert sich nicht gegenüber Gen1-Shelly-Geräten.

Wo möglich, verwende den mDNS-Hostnamen (`shellytrv-XXXXXX.local`) — er ist robust gegenüber DHCP-Lease-Änderungen. Der TapHome-**IP-Scanner** (Einstellungen → Netzwerk → Scan) ermittelt sowohl die IP als auch den mDNS-Hostnamen.

### Wochenplan deaktivieren

Shelly TRV hat einen eingebauten Wochenplaner (5 Profile, bis zu 18 geplante Änderungen pro Woche je Profil). Ist der Plan aktiv, überschreibt die Firmware jeden extern geschriebenen Sollwert beim nächsten geplanten Ereignis — TapHome-Sollwerte werden stillschweigend zurückgesetzt.

Die Vorlage signalisiert dies als Warnung (`Schedule is enabled`). Bevor das Gerät unter TapHome-Steuerung läuft, entweder:

- die Service-Aktion **Disable schedule** am Modul auslösen (sendet `/settings/thermostats/0?schedule=false`), oder
- in der Shelly-Cloud-App bzw. im Web-UI des Geräts das Profil **Disable** auswählen.

### Externer Raumsensor (empfohlen)

Der integrierte Temperatursensor sitzt physisch nahe an der heißen Heizkörperleitung und liefert typischerweise **1-3 °C höher als die tatsächliche Raumtemperatur**. Zwei Korrekturwege stehen zur Verfügung:

- **Externer Sensor** — koppele einen separaten WLAN-Thermometer (z. B. **Shelly H&T**) über das Web-UI des Geräts → **Sensor Settings** → **Enable external temperature corrections endpoint**. Der externe Sensor postet dann die Umgebungstemperatur an das TRV.
- **Statischer Offset** — verwende die Service-Aktion **Set temperature offset** am Thermostat-Gerät (Bereich ±20 °C), um eine konstante Abweichung auszugleichen.

Für besten thermischen Komfort kombiniere einen zuverlässigen externen Sensor mit einem kleinen statischen Offset als Fallback.

## Gerätefunktionen

Die Hauptvorlage stellt das Gerät als Batterieindikator plus Thermostat mit geschlossenem Regelkreis bereit. Die Valve-Vorlage behält dasselbe Modul und dieselbe Batterie bei, stellt die Ventilposition aber als Dimmer bereit und nutzt eine Sollwert-Variante, die bei einem Schreibvorgang die automatische PID-Regelung abschaltet. Modulbezogene Diagnosen und Aktionen sind in beiden Vorlagen identisch.

### Batteriestatus

Die Batterie wird als **Mehrwert-Schalter** dargestellt, abgeleitet aus dem gemeldeten Ladezustand und dem USB-C-Ladezustand. Der Ladestatus hat Vorrang vor dem Ladezustand:

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

Zwei zusätzliche Service-Attribute melden den rohen Ladezustand (`%`) und die Zellspannung (V, nominell ~3,7 V, typischer Bereich 2,6-4,2 V). Die Vorlage löst `Low battery` bei <50 % und `Battery charge is critically low` bei <25 % aus.

### Thermostat (main-Vorlage)

Raumthermostat mit geschlossenem Regelkreis: TapHome schreibt den Zielsollwert, die TRV-Firmware steuert die Ventilposition intern anhand des integrierten (oder externen) Temperatursensors.

- **Lesen:** gemessene Raumtemperatur (`thermostats[0].tmp.value`) und aktiver Zielwert (`thermostats[0].target_t.value`)
- **Schreiben:** Sollwert 5-30 °C über `/settings/thermostats/0?target_t={Se}`

Zusätzliche Thermostat-Attribute umfassen **Temperature offset [°C]**, **Valve position [%]** (nur lesend, zur Sichtbarkeit der PID-Ausgabe), **Force close**, **Extra pressure** und **Automatic calibration correction**. Die zugehörigen Service-Aktionen erlauben TapHome, den Offset zu setzen, den Force-Close-Modus umzuschalten (Ventil bleibt vollständig geschlossen, unabhängig vom Sollwert) und den Extra-Druck-Modus umzuschalten (verstärkt die Aktorik bei schwergängigen Ventilen).

Sollwert-Schreibvorgänge scheitern mit `Device is not calibrated`, solange `calibrated=false`, und die Vorlage gibt eine Warnung aus, wenn der Wochenplan aktiv ist (da die Firmware externe Schreibvorgänge beim nächsten Plan-Ereignis überschreibt).

### Ventil-Dimmer (valve-Vorlage)

Eine alternative Vorlage stellt den Ventilaktor direkt als Dimmer-Gerät bereit (0.0-1.0 → 0-100 %). TapHome schreibt die Position über `/thermostats/0?pos={Le*100}` — die Firmware fährt den Motor auf die angeforderte Position und deaktiviert dabei implizit die automatische Solltemperaturregelung.

Die Valve-Vorlage ergänzt am Ventilgerät die Service-Attribute `Force close`, `Extra pressure` und `Automatic calibration correction` (plus passende Toggle-Aktionen), sodass Smart-Rule-Autoren den Motor direkt für Szenarien wie Notschließung, manuelles Vorheizen oder Boost-Sequenzen ansteuern können.

### Thermostat (Variante der valve-Vorlage)

Die Valve-Vorlage stellt weiterhin ein Thermostat-Gerät bereit, damit der Sollwert aus derselben TapHome-Gerätegruppe geschrieben werden kann, ihr Schreib-Skript sendet jedoch **sowohl** `target_t` als auch `target_t_enabled=false`, damit die Firmware-PID nicht mit dem manuell gesteuerten Ventil konkurriert. Der Service-Attributsatz ist auf **Temperature offset [°C]** reduziert (Ventilkörper-Attribute wie `force_close` und `valve_state` wandern stattdessen zum Ventil-Gerät). Die Vorlage warnt, wenn `target_t.enabled=true` beobachtet wird — das deutet auf einen Konflikt zwischen Ventil-Dimmer und automatischer Regelung hin.

### Modul-Diagnose und -Aktionen

Das Modul (Head Unit) pollt `/status` und `/settings` alle 3 Sekunden und stellt gerätweite Diagnosen und Aktionen bereit:

- **Diagnose:** WLAN-SSID, IP-Adresse, MAC, Signalstärke (RSSI in dBm), Kalibrierzustand, Zeitplan ein/aus, Displayhelligkeit (1-7) und Status des gedrehten Displays.
- **Aktionen:** Disable schedule, Reboot, Calibrate (löst `/calibrate` aus), Update firmware (lädt `SHTRV-01_build.gbl` vom offiziellen Shelly-EU-Firmware-Server), Set display brightness und Flip display.

### Zusätzliche Funktionen

Das Gerät stellt außerdem — von den aktuellen Vorlagen noch nicht abgebildet — mehrere Gen1-Funktionen bereit: passive Fensteroffen-Erkennung (`/window`), die symmetrische Aktion **Force open**, Fallback-Umgebungstemperatur (`auto_temp`), Kindersicherung, Verzögerung für automatisches Schließen bei offenem Fenster, Sensor für geplanten Sollwert (`schedule_t`), Index des aktiven Profils, verbleibende Boost-Minuten und die Aktion **Trigger boost** (`/thermostats/0?boost_minutes=N`), den thermischen Zustand der internen Elektronik (`tmp_state`) sowie die Verfügbarkeit von Firmware-Updates als Sensor. CoIoT-Push und MQTT-Transport werden auf Geräteebene unterstützt, aber nicht genutzt — TapHome ruft stattdessen alle 3 s `/status` ab. Diese Funktionen können in einem zukünftigen Vorlagen-Update ergänzt werden.

## Fehlerbehebung

### Device is not calibrated

Jeder Sollwert- und Ventilpositions-Schreibvorgang liefert `Device is not calibrated` zurück, bis das TRV einen erfolgreichen Kalibrierzyklus abgeschlossen hat.

1. Stelle sicher, dass das Gerät fest auf dem Ventilkörper sitzt — der Überwurfring muss so fest sein, dass der Motor gegen den Ventilstift drücken kann, aber nicht so fest, dass er sich verformt.
2. Löse die Service-Aktion **Calibrate** am Modul aus (sendet `/calibrate`). Das Display zeigt kurz `CL`, während der Motor in beide Richtungen fährt.
3. Bei Erfolg wird `calibrated` `true` und Schreibvorgänge gelingen; bei Fehlschlag zeigt das Display `E1` — meist ein Zeichen für falsche Montage.

### Sollwert wird alle paar Stunden zurückgesetzt

Das ist der Wochenplan, der externe Schreibvorgänge überschreibt. Prüfe das Service-Attribut **Schedule** — ist es aktiv, löse die Aktion **Disable schedule** am Modul aus oder deaktiviere das aktive Profil in der Shelly-Cloud-App.

### Raumtemperatur liest zu hoch

Zwei häufige Ursachen:

- **Ladegerät angeschlossen.** Raumtemperaturwerte sind ungültig, solange `charger != disconnected`. USB-C abziehen und das Gerät abkühlen lassen.
- **Sensorabweichung.** Der Sensor sitzt nahe an heißen Rohren und liest typischerweise 1-3 °C zu hoch. Aktiviere entweder den Endpoint für externe Temperaturkorrektur und koppele ein Shelly H&T (oder kompatibles WLAN-Thermometer) im selben Raum, oder setze einen statischen **Set temperature offset** (z. B. `-1,5 °C`).

### Display zeigt E1 / E2

`E1` — Kalibrierfehler. Gerät neu montieren, den Ring vorsichtig festziehen und einen neuen Kalibrierzyklus auslösen.

`E2` — Fehler des Temperatursensors. `tmp.is_valid` wird in `/status` zu `false` und die Vorlage erzeugt einen Fehler `Temperature sensor error`. Bleibt das Problem nach einem Neustart bestehen, ist der Sensor wahrscheinlich defekt — Shelly-Support kontaktieren.

### Gerät nicht erreichbar

1. Prüfe, ob das TRV mit dem WLAN verbunden ist — halte **Up + Down** 5 s gedrückt und blättere durch die Statusparameter; `CO` bedeutet verbundener WLAN-Client.
2. Bestätige, dass TapHome-CCU und TRV im gleichen Netzwerk / VLAN sind — Shelly Gen1 routet standardmäßig nicht über Subnetze.
3. Versuche den mDNS-Hostnamen (`shellytrv-XXXXXX.local`) statt der IP — die DHCP-Lease kann sich geändert haben.
4. Öffne `http://{device-ip}/status` im Browser. Wenn die JSON-Antwort kommt, ist das Gerät erreichbar und das Problem liegt in der TapHome-Konfiguration.

> [!WARNING]
> Gen1-Shelly-Geräte akzeptieren nur **2 gleichzeitige HTTP-Verbindungen**. Wenn TapHome und ein weiteres System (Home Assistant, Node-RED) dasselbe Gerät gleichzeitig pollen, wird die Kommunikation instabil. Belasse das Polling-Intervall auf dem Vorlagen-Standard (3 s) und vermeide weitere Poller.

> [!NOTE]
> Das Aktivieren von MQTT deaktiviert **unwiderruflich die Shelly-Cloud** auf Gen1-Geräten. TapHome nutzt ausschließlich HTTP — lasse MQTT aus, sofern du nicht ausdrücklich von der Shelly-Cloud weg möchtest.

## Installation in TapHome

### Voraussetzungen

- Shelly-Gerät installiert und eingeschaltet
- Lokales Wi-Fi-Netzwerk (2,4 GHz)
- TapHome CCU im selben Netzwerk

### Schritt 1 — Shelly mit Wi-Fi verbinden

**Option A — Shelly-App (empfohlen):**

1. Laden Sie die [Shelly-App](https://www.shelly.com/en/support/shelly-app) herunter (iOS / Android)
2. Tippen Sie auf **+** → **Add Device** und folgen Sie dem Bluetooth-Kopplungsassistenten
3. Geben Sie Ihre Wi-Fi-Zugangsdaten ein, wenn Sie dazu aufgefordert werden

**Option B — AP-Modus (ohne App):**

1. Beim ersten Einschalten erstellt das Gerät einen Hotspot: `ShellyXXX-AABBCCDDEE`
2. Verbinden Sie Ihr Telefon/PC mit diesem Hotspot
3. Öffnen Sie `http://192.168.33.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Geben Sie SSID und Passwort ein → **Save**

> [!NOTE]
> Shelly unterstützt nur **2,4 GHz**-Netzwerke. 5 GHz-Netzwerke werden beim Scannen nicht angezeigt.

### Schritt 2 — IP-Adresse ermitteln

Nach der Verbindung mit Wi-Fi ermitteln Sie die zugewiesene IP-Adresse auf eine der folgenden Arten:

- **Shelly-App:** Gerätedetail → **Device info** → IP-Adresse
- **Shelly-Weboberfläche:** Verbinden Sie sich mit dem Geräte-AP vor der Wi-Fi-Einrichtung — die IP wird nach dem Speichern angezeigt
- **Router-DHCP-Tabelle:** Suchen Sie nach einem Hostnamen wie `shelly1pm-AABBCCDDEE`
- **mDNS:** Pingen Sie `shelly<model>-<mac>.local` (z. B. `shelly1pm-AABBCCDDEE.local`) aus dem selben Netzwerk

> [!TIP]
> Weisen Sie dem Shelly-Gerät eine **statische IP** (DHCP-Reservierung) in Ihrem Router zu, damit sich die Adresse nach einem Router-Neustart nicht ändert.

### Schritt 3 — Konfiguration in TapHome

1. Fügen Sie in TapHome ein neues Modul **Packet Parser (HTTP)** hinzu
2. **IP Address:** Geben Sie die IP aus Schritt 2 ein (z. B. `192.168.1.50`)
3. **Port:** `80` (Standard, keine Änderung erforderlich)
4. Importieren Sie die Vorlage — TapHome fragt regelmäßig `/status` ab, um den Gerätestatus zu lesen

> [!NOTE]
> Die HTTP-Authentifizierung ist auf Shelly-Geräten standardmäßig deaktiviert. Wenn Sie den Anmeldeschutz aktiviert haben, unterstützt TapHome derzeit kein HTTP Basic Auth — lassen Sie die Authentifizierung für die TapHome-Integration deaktiviert.

## Verfügbare Geräte 2

Diese Geräte erscheinen nach dem Import in TapHome.

Shelly TRV Modul

Serviceattribute

|                         |                                                                                                                                                                |
|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| WLAN-SSID               |                                                                                                                                                                |
| IP-Adresse              |                                                                                                                                                                |
| MAC-Adresse             |                                                                                                                                                                |
| Empfangene Signalstärke | WLAN-Signalstärke in dBm — typischer guter Bereich -55 bis -70 dBm, unter -80 dBm unzuverlässig                                                                |
| Kalibriert              | Ob die mechanische Kalibrierung des Ventils abgeschlossen ist — Sollwert- und Positions-Schreibvorgänge werden abgelehnt, bis die Kalibrierung erfolgreich war |
| Zeitplan                | Wochenplan ein/aus — ist er aktiv, überschreibt die Firmware extern geschriebene Sollwerte beim nächsten Plan-Ereignis                                         |
| Displayhelligkeit       | Helligkeitsstufe des LED-Displays (1 = dunkel, 7 = hell)                                                                                                       |
| Display gedreht         | Ob das LED-Display um 180° gedreht ist, um eine kopfüber-Montage zu ermöglichen                                                                                |

Serviceaktionen

|                              |                                                                                                                         |
|------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| Zeitplan deaktivieren        | Deaktiviert den Wochenplan, damit externe Sollwerte beim nächsten Plan-Ereignis nicht zurückgesetzt werden              |
| Neustart                     |                                                                                                                         |
| Kalibrieren                  | Startet den mechanischen Kalibrierzyklus des Ventils — nach jeder Ummontage auf einen anderen Ventilkörper erforderlich |
| Firmware aktualisieren       | Löst ein OTA-Firmware-Update vom offiziellen Shelly-EU-Firmware-Server aus                                              |
| Displayhelligkeit einstellen | Stellt die Helligkeit des LED-Displays ein (1 = dunkel, 7 = hell)                                                       |
| Display drehen               | Schaltet die 180°-Drehung des Displays für kopfüber montierte Ventile um                                                |

Benutzerdefinierte Variablen

Lesen (Modul)

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

Serviceattribute

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

Serviceaktionen

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

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

Batterie Mehrwertschalter Nur lesen

Batterieladezustand als Mehrwert-Schalter — Critical (&lt;25 %), Low (25-50 %), Normal (50-75 %), Full (&gt;75 %), Charging (USB-C verbunden). Der Ladestatus hat Vorrang vor dem Ladezustand

numeric Einheit: % multi-value switch

Werte / Zustände: Critical · Low · Normal · Full · Charging

Schaltzustand lesen

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

Serviceattribute

Value \[%]

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

Voltage \[V]

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

Thermostat Thermostat Lesen und Schreiben

Raumthermostat mit geschlossenem Regelkreis — Schreiben der Solltemperatur (5-30 °C), Firmware regelt das Ventil intern über den integrierten oder externen Sensor

numeric Einheit: °C

Serviceattribute

|                                 |                                                                                                                                                         |
|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| Temperatur-Offset \[°C]         | Statischer Offset, der zur gemessenen Raumtemperatur addiert wird — nützlich, wenn der integrierte Sensor wegen der Nähe zu heißen Rohren zu hoch liest |
| Ventilposition \[%]             | Aktuelle Ventilöffnung in Prozent (0 = vollständig geschlossen, 100 = vollständig offen)                                                                |
| Zwangsschließen                 | Ob das Ventil unabhängig vom Sollwert vollständig geschlossen gehalten wird                                                                             |
| Extra-Druck                     | Ob der Extra-Druck-Modus aktiv ist — bringt zusätzliche mechanische Kraft für schwergängige Ventile auf                                                 |
| Automatische Kalibrierkorrektur | Ob eine Feinjustierung der Kalibrierung auf den mechanischen Hub angewendet wird                                                                        |

Serviceaktionen

|                              |                                                                                                                      |
|------------------------------|----------------------------------------------------------------------------------------------------------------------|
| Temperatur-Offset einstellen | Stellt den Sensor-Temperatur-Offset (-20 bis +20 °C) ein, um die Abweichung des integrierten Sensors zu kompensieren |
| Zwangsschließen umschalten   | Schaltet den Zwangsschließ-Modus um — das Ventil bleibt unabhängig vom Sollwert vollständig geschlossen              |
| Extra-Druck umschalten       | Schaltet den Extra-Druck-Modus um — verstärkt die Ventilbetätigung bei schwergängigen Ventilen                       |

Temperatur lesen

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

Lesen (Modul)

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

Solltemperatur lesen

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

Solltemperatur schreiben

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

Serviceattribute

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

Serviceaktionen

Set temperature offset

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

**Verbindung:** Packet Parser → HTTP • Hostname: `shellytrv-{MAC}.local`

Mögliche Verbesserungen (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

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard      |
|----------------------|---------------|
| IP-Adresse           | `192.168.0.1` |

## Quellen

- 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

Herstellerdokumente sind © ihrer jeweiligen Eigentümer. Sie werden so bereitgestellt, wie der Hersteller sie veröffentlicht hat, nur zur Information.

## Verwandte Dokumentation

- [Packet-Parser-Integration](https://taphome.com/de/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/de/docs/integration/packet-parser/)
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/)
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/)

