TapHome

Shelly i3

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 06. 2026
Shelly i3

Der Shelly i3 ist eine kompakte Wi-Fi 3-Eingangs-Aktions- und Szenensteuerung (Modell SHIX3-1). Er hat keine Relais oder Ausgänge — er fungiert ausschließlich als Eingabegerät, das drei externe Schalter oder Taster überwacht, die an die Klemmen SW1, SW2 und SW3 angeschlossen sind. Die Abmessungen 40 × 36 × 10 mm ermöglichen die Installation in einer Standard-Unterputzdose hinter einem bestehenden Wandschalter. Er wird mit 110–230 VAC (Neutralleiter erforderlich) oder 24–60 VDC betrieben und verbraucht weniger als 1 W.

TapHome kommuniziert mit dem Gerät über HTTP im lokalen Wi-Fi-Netzwerk — eine Cloud-Verbindung ist nicht erforderlich. Für jeden Eingang erstellt die Vorlage zwei Geräte: einen Multi-Wert-Schalter, der Multi-Klick-Ereignisse dekodiert (Einzel-, Doppel-, Dreifach-, Lang- und kombinierte Sequenzen), und einen Reed-Kontakt, der den rohen 0/1-Eingangszustand sowie eine Service-Aktion zum Umschalten zwischen Toggle- und Momentary-Modus bereitstellt.

Einrichtung

Wi-Fi-Kopplung und IP-Adresse

Nach dem Einschalten startet der i3 im Access-Point-Modus mit der SSID shellyi3-XXXXXX (wobei XXXXXX die letzten 6 Hex-Ziffern der MAC sind). Zum Koppeln mit dem Heimnetzwerk:

  1. Verbinde Telefon oder Laptop mit dem i3 Access Point
  2. Öffne http://192.168.33.1 im Browser (oder verwende die Shelly Mobile App)
  3. Gehe in der Web-Oberfläche zu Internet & Security → WIFI MODE - CLIENT, gib die WLAN-Zugangsdaten ein und speichere
  4. Das Gerät startet neu und tritt dem Heimnetzwerk per DHCP bei

Die zugewiesene IP-Adresse findest du in der DHCP-Lease-Tabelle des Routers oder über den mDNS-Hostnamen shellyi3-XXXXXXXXXXXX.local (12-stelliger MAC-Suffix, angekündigt als _http._tcp.local.). Beim Import der TapHome-Vorlage gib diese IP-Adresse als einzigen erforderlichen Parameter ein.

HTTP-Authentifizierung deaktivieren

TapHome kann sich nicht gegen das Gerät authentifizieren. Gehe in der Shelly-Weboberfläche zu Internet & Security → RESTRICT LOGIN und stelle sicher, dass diese Option deaktiviert ist, bevor du die Vorlage importierst — sonst schlägt jede Abfrage mit HTTP 401 fehl.

Tastentyp-Konfiguration

Jeder der drei Eingänge kann in einem von fünf btn_type-Modi laufen. Nur zwei sind für TapHome relevant und werden als Service-Aktion auf den Geräten I1 / I2 / I3 bereitgestellt:

  • Momentary — für Taster. Die Firmware dekodiert einzelnen kurzen Druck (S), langen Druck (L), doppelten kurzen Druck (SS), dreifachen kurzen Druck (SSS), kurz→lang (SL) und lang→kurz (LS). Erforderlich, damit die Events I{N}-Geräte etwas anderes als None auslösen.
  • Toggle — für klassische Wipp- oder Kippschalter. Es wird nur der rohe 0/1-Zustand gemeldet; der Multi-Wert-Schalter bleibt auf Index 0.

Der Tastentyp kann jederzeit von TapHome über die Service-Aktion Button Type auf jedem I1 / I2 / I3-Gerät geändert werden, oder direkt in der Shelly-Weboberfläche unter Settings → Input/Output settings.

Die Firmware unterstützt auch die Modi edge, detached und action, diese werden jedoch nicht in der TapHome-Vorlage bereitgestellt. Sie können trotzdem über die Shelly-Weboberfläche eingestellt werden, ohne die Integration zu beeinträchtigen — nur das Multi-Klick-Dekodierungsverhalten ändert sich.

Gerätefunktionen

Multi-Klick-Ereignisdekodierung (Events I1, Events I2, Events I3)

Für jeden Eingang dekodiert ein Multi-Wert-Schalter den firmware-seitigen Ereigniscode in einen von sieben Werten:

IndexEreignisShelly-Code
0None"" (idle)
1ShortpushS
2LongpushL
3Double ShortpushSS
4Triple ShortpushSSS
5Shortpush + LongpushSL
6Longpush + ShortpushLS

Die Vorlage fragt /input/{0,1,2} alle 2,5 Sekunden ab und liest das Feld event. Mit 6 Ereignissen × 3 Eingängen vermarktet Shelly den i3 als Unterstützung für bis zu 18 verschiedene Multi-Klick-Aktionen (24, wenn rohe On/Off-Zustandsänderungen als separate Auslöser gezählt werden).

Der Long-Push-Schwellwert und das Multi-Push-Fenster sind global auf dem Gerät konfiguriert (Standardwerte: 800 ms für Langdruck, 500 ms Inter-Druck-Fenster). Sie können in der Shelly-Weboberfläche unter Settings → Long Push Duration und Multi Push Time angepasst werden.

Roher Eingangszustand und Tastentyp-Steuerung (I1, I2, I3)

Für jeden Eingang stellt ein Reed-Kontakt-Gerät den rohen logischen Zustand bereit, der aus dem input-Feld in /input/{N} gelesen wird (0 = offen, 1 = geschlossen, nach optionaler btn_reverse-Umkehrung). Jedes I1 / I2 / I3-Gerät enthält außerdem:

  • Button Type — Service-Attribut mit dem aktuellen btn_type-Wert (toggle / momentary / edge / detached / action)
  • Button Type — Service-Aktion, die den Eingang zwischen Toggle und Momentary umschaltet, indem sie POST /settings/input/{N}?btn_type=... schreibt

Der rohe Zustand eignet sich für Magnetkontakte von Türen / Fenstern, die an die SW-Klemmen verdrahtet sind, oder für die Echtzeitverfolgung der Position eines Kippschalters.

Service-Diagnostik

Ein einzelnes Service-Attribut auf Modulebene stellt die Wi-Fi-SSID bereit, mit der der i3 derzeit verbunden ist (gelesen aus /statuswifi_sta.ssid). Andere Gen1-Diagnostiken (Uptime, MAC, RSSI, Firmware-Update-Flag) sind über die REST-API des Geräts verfügbar, werden aber in dieser Vorlage nicht bereitgestellt.

Multi-Klick-Ereignisse werden nur im Momentary-Modus ausgelöst. Wenn ein physischer Eingang über einen klassischen Kippschalter verdrahtet ist, konfiguriere diesen Eingang als Toggle und verwende das Reed-Kontakt-Gerät I{N}, um seinen 0/1-Zustand zu lesen — das entsprechende Events I{N}-Gerät bleibt auf Index 0.

Fehlerbehebung

Multi-Klick-Ereignisse werden nicht erkannt
  1. Überprüfe, ob der Eingang im Momentary-Modus ist — öffne das I{N}-Gerät in TapHome, führe die Service-Aktion Button Type aus und wähle Momentary, oder stelle es direkt in der Shelly-Weboberfläche unter Settings → Input/Output settings ein
  2. Im Toggle-Modus meldet die Firmware nur Zustandsänderungen; der Events I{N}-Multi-Wert-Schalter bleibt auf Index 0
  3. Passe Long Push Duration (Standard 800 ms) und Multi Push Time (Standard 500 ms) in der Shelly-Weboberfläche an, wenn Drücke als falsches Ereignis dekodiert werden
  4. Lange Sequenzen wie SSS, SL oder LS erfordern, dass der Benutzer alle Drücke innerhalb des Multi-Push-Fensters hält — Pausen, die länger als dieses Fenster sind, werden als separate S-Ereignisse dekodiert
Dasselbe Ereignis wiederholt sich für immer / „festgefahrenes" Ereignis

Das von /input/{N} zurückgegebene Feld event ist das letzte dekodierte Ereignis — die Firmware löscht es nicht automatisch. TapHome liest dieses Feld bei jeder Abfrage, sodass der Multi-Wert-Schalter das vorherige Ereignis weiterhin meldet, bis ein neues auftritt. Dies ist normales Verhalten und weist nicht auf einen Fehler hin. Beim Schreiben benutzerdefinierter Logik, die bei jedem Druck ausgelöst wird, paare das Ereignis mit dem monotonen event_cnt-Zähler (ebenfalls in /input/{N} verfügbar), um eine Änderung zu erkennen, anstatt sich nur auf den event-Wert zu verlassen.

Gerät reagiert nicht
  1. Überprüfe, ob der i3 mit Wi-Fi verbunden ist — öffne http://{device-ip}/shelly im Browser; wenn ein JSON-Objekt zurückgegeben wird, ist das Gerät erreichbar
  2. Versuche den mDNS-Hostnamen shellyi3-XXXXXXXXXXXX.local anstelle der IP-Adresse — die IP kann sich nach einer DHCP-Erneuerung geändert haben
  3. Stelle sicher, dass die HTTP-Authentifizierung unter Internet & Security → Restrict login deaktiviert ist — TapHome kann keine Anmeldedaten senden und jede Anfrage gibt HTTP 401 zurück
  4. Überprüfe, ob TapHome Core und das Shelly-Gerät sich im selben Netzwerk oder VLAN mit erlaubtem mDNS / Multicast befinden

Gen1 Shelly-Geräte akzeptieren maximal 2 gleichzeitige HTTP-Verbindungen. Die mitgelieferte Vorlage fragt jeden Eingang in 2,5-s-Intervallen ab, was bereits nahe am Limit liegt. Senke das Abfrageintervall nicht und vermeide den Betrieb eines anderen Systems (z. B. Home Assistant, eigene Skripte), das denselben i3 gleichzeitig abfragt — die Kommunikation kann unzuverlässig werden.

Die XML-Vorlage enthält drei reservierte Multi-Wert-Indizes (7, 8, 9 mit Rohcodes 71/72/73 und generischen Bezeichnungen „7" / „8" / „9"). Die Gen1-Firmware sendet keine Ereignisse außer S, L, SS, SSS, SL und LS, sodass diese Indizes ungenutzte Platzhalter sind und der Wert des Events I{N}-Geräts in der Praxis niemals 7-9 erreichen sollte.

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 i3 Modul
Serviceattribute
Wi-FiSSID des Wi-Fi-Netzwerks, mit dem das Gerät derzeit verbunden ist

Shelly i3

Serviceattribute
Wifi
 VAR response := SENDHTTPREQUEST("/status");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "$.wifi_sta.ssid"));
  End
Events I1 Mehrwertschalter Nur lesen

Dekodiertes Multi-Klick-Ereignis für Eingang I1 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (wird nur ausgelöst, wenn Button Type auf Momentary gesetzt ist)

string (decoded to UInt8 via SWITCH) json_path
Werte / Zustände: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Events I1

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/input/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(SWITCH(PARSEJSON(content, "event"),"S", 1, "L", 2, "SS", 3, "SSS", 4, "SL", 5, "LS", 6, 0));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Events I2 Mehrwertschalter Nur lesen

Dekodiertes Multi-Klick-Ereignis für Eingang I2 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (wird nur ausgelöst, wenn Button Type auf Momentary gesetzt ist)

string (decoded to UInt8 via SWITCH) json_path
Werte / Zustände: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Events I2

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/input/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(SWITCH(PARSEJSON(content, "event"),"S", 1, "L", 2, "SS", 3, "SSS", 4, "SL", 5, "LS", 6, 0));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Schaltzustand schreiben
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Mu);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Mu, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Mu + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Mu + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Mu, "write"); # use "append" mode to append data to existing file
Events I3 Mehrwertschalter Nur lesen

Dekodiertes Multi-Klick-Ereignis für Eingang I3 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (wird nur ausgelöst, wenn Button Type auf Momentary gesetzt ist)

string (decoded to UInt8 via SWITCH) json_path
Werte / Zustände: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Events I3

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/input/2");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(SWITCH(PARSEJSON(content, "event"),"S", 1, "L", 2, "SS", 3, "SSS", 4, "SL", 5, "LS", 6, 0));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Schaltzustand schreiben
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Mu);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Mu, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Mu + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Mu + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Mu, "write"); # use "append" mode to append data to existing file
Eingang I1 Reed-Kontakt Nur lesen

Roher logischer Zustand des Eingangs I1 — 0 (offen) oder 1 (geschlossen), spiegelt die Live-Position des an Klemme SW1 angeschlossenen Schalters wider

boolean json_path
Serviceattribute
TastentypAktueller Verhaltensmodus des Eingangs I1 — Toggle (klassischer Schalter) oder Momentary (Taster, erforderlich für die Multi-Klick-Dekodierung)
Serviceaktionen
TastentypSchaltet Eingang I1 zwischen Toggle (klassischer Schalter) und Momentary (Taster — erforderlich, damit die Multi-Klick-Dekodierung von Events I1 ausgelöst wird) um

Eingang I1

Lesen
VAR response := SENDHTTPREQUEST("/input/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "input"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Lesen (Modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Serviceattribute
Button Type
 VAR response := SENDHTTPREQUEST("/settings/input/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "btn_type"));
 END
Serviceaktionen
Button Type
Parameter: Button Type
 var Ru := SWITCH(Bu, 0, "toggle","momentary") ;
 VAR response := SENDHTTPREQUEST("/settings/input/0?btn_type=" + Ru);
Eingang I2 Reed-Kontakt Nur lesen

Roher logischer Zustand des Eingangs I2 — 0 (offen) oder 1 (geschlossen), spiegelt die Live-Position des an Klemme SW2 angeschlossenen Schalters wider

boolean json_path
Serviceattribute
TastentypAktueller Verhaltensmodus des Eingangs I2 — Toggle (klassischer Schalter) oder Momentary (Taster, erforderlich für die Multi-Klick-Dekodierung)
Serviceaktionen
TastentypSchaltet Eingang I2 zwischen Toggle (klassischer Schalter) und Momentary (Taster — erforderlich, damit die Multi-Klick-Dekodierung von Events I2 ausgelöst wird) um

Eingang I2

Lesen
VAR response := SENDHTTPREQUEST("/input/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "input"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Serviceattribute
Button Type
 VAR response := SENDHTTPREQUEST("/settings/input/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "btn_type"));
 END
Serviceaktionen
Button Type
Parameter: Button Type
 var Ru := SWITCH(Bu, 0, "toggle","momentary") ;
 VAR response := SENDHTTPREQUEST("/settings/input/1?btn_type=" + Ru);
Eingang I3 Reed-Kontakt Nur lesen

Roher logischer Zustand des Eingangs I3 — 0 (offen) oder 1 (geschlossen), spiegelt die Live-Position des an Klemme SW3 angeschlossenen Schalters wider

boolean json_path
Serviceattribute
TastentypAktueller Verhaltensmodus des Eingangs I3 — Toggle (klassischer Schalter) oder Momentary (Taster, erforderlich für die Multi-Klick-Dekodierung)
Serviceaktionen
TastentypSchaltet Eingang I3 zwischen Toggle (klassischer Schalter) und Momentary (Taster — erforderlich, damit die Multi-Klick-Dekodierung von Events I3 ausgelöst wird) um

Eingang I3

Lesen
VAR response := SENDHTTPREQUEST("/input/2");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "input"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Lesen (Modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Serviceattribute
Button Type
 VAR response := SENDHTTPREQUEST("/settings/input/2");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "btn_type"));
 END
Serviceaktionen
Button Type
Parameter: Button Type
 var Ru := SWITCH(Bu, 0, "toggle","momentary") ;
 VAR response := SENDHTTPREQUEST("/settings/input/2?btn_type=" + Ru);
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (14)
  • Input Event Counter — Monotonic UInt16 counter incrementing on every decoded event — required to reliably detect rapid repeats since the event field is sticky. Could be exposed as a Variable per input.
  • Extended Button Type modes — Template's Button Type service action only exposes Toggle/Momentary; firmware also supports edge, detached and action modes.
  • Input Logic Reverse — Inverts logical state of an input. Could be added as bool service action per input.
  • Long-push Minimum Duration — Default 800 ms, range 1–5000 ms. Global parameter applied to all three inputs.
  • Long-push Maximum Duration — Default 800 ms, range 1–5000 ms.
  • Multi-push Window — Default 500 ms, range 1–1000 ms. Window for joining short pushes into SS/SSS sequences.
  • Action / Webhook Table — Per-event HTTP webhook URLs (btn_on_url, btn_off_url, shortpush_url, longpush_url, double_shortpush_url, triple_shortpush_url, shortpush_longpush_url, longpush_shortpush_url). Out of scope for TapHome which polls inputs directly.
  • Wi-Fi Signal Strength — RSSI in dBm, available in /status. Could be added as a module-level service attribute.
  • Firmware Update Available — Boolean from /status. Other Shelly Gen1 templates expose this as 'FW update' service attribute.
  • Uptime — Seconds since boot. Diagnostic value commonly exposed by other Shelly Gen1 templates.
  • MAC Address — Diagnostic identifier, commonly exposed by other Shelly Gen1 templates as a service attribute.
  • Cloud Status — Shelly Cloud enable + connection booleans.
  • MQTT Connection Status — MQTT broker connection state.
  • While-pressed Long-push Pulse — MQTT-only feature: stays at 1 for the duration of a long press, useful for 'while-pressed' actions. Not available via HTTP polling.

Quellen

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Von TapHome verifiziert

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen