TapHome

Shelly TRV

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 04. 2026
Shelly TRV

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

VorlageStellt bereitEinsatz
Shelly TRV (main)Batterie + Thermostat mit geschlossenem RegelkreisRaumtemperatursteuerung 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.

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.

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).

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:

ParameterBeschreibungStandard
IpAddressLokale IP-Adresse oder mDNS-Hostname des Geräts192.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 SettingsEnable 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:

ZustandBedingung
Criticalbat.value < 25
Lowbat.value 25-50
Normalbat.value 50-75
Fullbat.value > 75
Chargingcharger != 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.

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.

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 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.1Internet & SecurityWi-Fi Mode - Client
  4. Geben Sie SSID und Passwort ein → Save

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

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

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

Shelly TRV Modul
Serviceattribute
WLAN-SSID
IP-Adresse
MAC-Adresse
Empfangene SignalstärkeWLAN-Signalstärke in dBm — typischer guter Bereich -55 bis -70 dBm, unter -80 dBm unzuverlässig
KalibriertOb die mechanische Kalibrierung des Ventils abgeschlossen ist — Sollwert- und Positions-Schreibvorgänge werden abgelehnt, bis die Kalibrierung erfolgreich war
ZeitplanWochenplan ein/aus — ist er aktiv, überschreibt die Firmware extern geschriebene Sollwerte beim nächsten Plan-Ereignis
DisplayhelligkeitHelligkeitsstufe des LED-Displays (1 = dunkel, 7 = hell)
Display gedrehtOb das LED-Display um 180° gedreht ist, um eine kopfüber-Montage zu ermöglichen
Serviceaktionen
Zeitplan deaktivierenDeaktiviert den Wochenplan, damit externe Sollwerte beim nächsten Plan-Ereignis nicht zurückgesetzt werden
Neustart
KalibrierenStartet den mechanischen Kalibrierzyklus des Ventils — nach jeder Ummontage auf einen anderen Ventilkörper erforderlich
Firmware aktualisierenLöst ein OTA-Firmware-Update vom offiziellen Shelly-EU-Firmware-Server aus
Displayhelligkeit einstellenStellt die Helligkeit des LED-Displays ein (1 = dunkel, 7 = hell)
Display drehenSchaltet die 180°-Drehung des Displays für kopfüber montierte Ventile um
Benutzerdefinierte Variablen

Shelly TRV

Lesen (Modul)
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
PARSEJSON(status, "$.wifi_sta.ssid")
${ipAddress}
PARSEJSON(status, "$.wifi_sta.ip")
MAC
PARSEJSON(status, "$.mac")
Received signal strength
PARSEJSON(status, "$.wifi_sta.rssi")
Calibrated
if(PARSEJSON(status, "$.calibrated"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Schedule
 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
PARSEJSON(settings, "$.display.brightness")
Display flipped
if(PARSEJSON(settings, "$.display.flipped"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Serviceaktionen
Disable schedule
var response := SENDHTTPREQUEST("/settings/thermostats/0?schedule=false");
if(response.IsSuccess, return("OK"), return(response.Content));
Reboot
VAR response := SENDHTTPREQUEST("/reboot");
if(response.IsSuccess, return("OK"), return(response.Content));
Calibrate
VAR response := SENDHTTPREQUEST("/calibrate");
if(response.IsSuccess, return("OK"), return(response.Content));
Update firmware
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)
var response := SENDHTTPREQUEST("/settings?display_brightness=" + Br);
if(response.IsSuccess, return("OK"), return(response.Content));
Flip display
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 (<25 %), Low (25-50 %), Normal (50-75 %), Full (>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

Batterie

Schaltzustand lesen
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 [%]
PARSEJSON(status, "$.bat.value");
Voltage [V]
PARSEJSON(status, "$.bat.voltage");
Thermostat Thermostat

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ßenOb das Ventil unabhängig vom Sollwert vollständig geschlossen gehalten wird
Extra-DruckOb der Extra-Druck-Modus aktiv ist — bringt zusätzliche mechanische Kraft für schwergängige Ventile auf
Automatische KalibrierkorrekturOb eine Feinjustierung der Kalibrierung auf den mechanischen Hub angewendet wird
Serviceaktionen
Temperatur-Offset einstellenStellt den Sensor-Temperatur-Offset (-20 bis +20 °C) ein, um die Abweichung des integrierten Sensors zu kompensieren
Zwangsschließen umschaltenSchaltet den Zwangsschließ-Modus um — das Ventil bleibt unabhängig vom Sollwert vollständig geschlossen
Extra-Druck umschaltenSchaltet den Extra-Druck-Modus um — verstärkt die Ventilbetätigung bei schwergängigen Ventilen

Thermostat

Temperatur lesen
PARSEJSON(status, "$.thermostats[0].tmp.value")
Lesen (Modul)
if(! PARSEJSON(status, "$.thermostats[0].tmp.is_valid"), adderror("Temperature sensor error"));
Solltemperatur lesen
PARSEJSON(status, "$.thermostats[0].target_t.value")
Solltemperatur schreiben
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]
PARSEJSON(settings, "$.thermostats[0].temperature_offset")
${device_variable_valvestate} [%]
PARSEJSON(status, "$.thermostats[0].pos")
Force close
if(PARSEJSON(settings, "$.thermostats[0].force_close"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Extra pressure
if(PARSEJSON(settings, "$.thermostats[0].extra_pressure"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Automatic calibration correction
if(PARSEJSON(settings, "$.thermostats[0].calibration_correction"), "${detail_deviceSettings_true}", "${detail_deviceSettings_false}")
Serviceaktionen
Set temperature offset
Parameter: Offset (-20–20 C)
VAR response := SENDHTTPREQUEST("/settings/thermostats/0?temperature_offset=" + C);
if(response.IsSuccess, return("OK"), return(response.Content));
Toggle force close
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
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
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

Quellen