TapHome

Shelly 2.5

Packet Parser → HTTP
Trimis de
Ultima actualizare: 03. 2026

Acest dispozitiv acceptă mDNS

În loc să folosiți o adresă IP, puteți accesa dispozitivul la:

shellyswitch25-{MAC}.local

Înlocuiți {MAC} cu adresa MAC a dispozitivului dvs. (majuscule, fără două puncte).

TapHome acceptă mDNS — folosirea unui nume de gazdă este mai fiabilă decât un IP static.

Shelly 2.5

Shelly 2.5 este un releu Wi-Fi compact cu două canale și măsurarea integrată a puterii pe ambele canale. Se montează în spatele unui întrerupător de perete standard și poate comanda două circuite independente, fiecare de până la 10 A (2300 W la 230 V), cu un total maxim de 20 A. Dispozitivul are două moduri de funcționare — releu (două întrerupătoare independente) și rulou (comanda coordonată a motorului) — dar șablonul TapHome implementează doar modul releu. TapHome comunică cu dispozitivul prin HTTP în rețeaua locală — nu este necesară conexiunea la cloud.

Șablonul oferă două întrerupătoare cu releu și două contoare electrice (câte unul pe canal), plus o acțiune de service pentru comutarea între modul releu și modul rulou.

Configurare

Shelly 2.5 se conectează prin Wi-Fi. La importul șablonului în TapHome, introduceți adresa IP a dispozitivului (valoarea implicită: 192.168.0.1).

Modul de funcționare curent este disponibil ca atribut de service la nivelul modulului („Mod”) și poate fi schimbat prin acțiunea de service „Mod”. Comutarea între modul releu și modul rulou intră în vigoare după repornirea dispozitivului.

Funcțiile dispozitivului

Comanda releelor

Șablonul oferă două canale de releu independente. Starea fiecărui releu se citește din endpointul /relay/ corespunzător (câmpul ison), iar releul se comandă prin turn=on sau turn=off.

  • Canalul 1 — citește și comandă /relay/0
  • Canalul 2 — citește și comandă /relay/1

Fiecare releu are trei atribute de service:

  • Depășire putere — indică dacă pe canal a fost detectată o depășire a puterii
  • Supratemperatură — indică dacă dispozitivul a depășit temperatura de funcționare sigură
  • Contor de putere — validitatea măsurării (OK sau Fault)
Măsurarea puterii

Fiecare canal are un contor electric dedicat, care citește două valori din endpointul său /meter/:

  • Putere în timp real — power, raportată în wați și convertită de șablon în kW
  • Consum total — total, raportat în wați-minut și convertit de șablon în kWh

Fiecare contor electric oferă atributul de service „Depășire putere”, care afișează pragul de depășire a puterii (în wați, împărțit la 1000).

Contoarele sunt doar pentru citire — se actualizează automat la fiecare ciclu de interogare (interval de 15 secunde).

Problemă cunoscută — valoarea energiei pe canalul 1 este de 10 ori prea mare. Pentru canalul 1, șablonul împarte total la 6000 în loc de 60000 (valoare folosită corect pentru canalul 2). Prin urmare, energia cumulată pe canalul 1 va fi de aproximativ 10 ori mai mare decât consumul real. Este o eroare în formula de conversie a șablonului.

Funcții suplimentare

Shelly 2.5 acceptă nativ comanda completă a ruloului (deschidere/închidere/oprire cu poziție 0–100 % după calibrare), medii mobile ale puterii pe un minut pentru fiecare canal, starea intrărilor fizice pentru întrerupătoare, temperatura internă a dispozitivului, puterea semnalului Wi-Fi și temporizatoare de oprire automată pentru fiecare canal. Dispozitivul poate memora și până la patru poziții preferate ale ruloului. Aceste funcții pot fi adăugate într-o actualizare viitoare a șablonului.

Spre deosebire de șablonul Shelly 1PM, șablonul Shelly 2.5 nu oferă date de diagnosticare ale dispozitivului, cum ar fi numele de gazdă, adresa MAC, timpul de funcționare, utilizarea RAM, starea cloud/MQTT, disponibilitatea actualizării firmware-ului sau temperatura internă. De asemenea, îi lipsesc acțiunea de service pentru protecția la depășirea puterii (limita de putere maximă) și acțiunea de repornire.

Rezolvarea problemelor

Dispozitivul nu răspunde
  1. Verificați dacă Shelly este conectat la Wi-Fi și are o adresă IP validă
  2. Încercați să folosiți numele de gazdă mDNS (shellyswitch25-AABBCCDDEE.local) în locul adresei IP — adresa IP se poate schimba după reînnoirea DHCP
  3. Deschideți http://{device-ip}/shelly în browser — dacă răspunde, dispozitivul este accesibil
  4. Verificați dacă unitatea centrală TapHome (CCU) și Shelly sunt în aceeași rețea / VLAN
Puterea afișată este zero
  1. Verificați dacă sarcina este conectată prin releul Shelly (nu ocolește releul)
  2. Verificați dacă releul este pornit — contorul măsoară doar atunci când curentul trece prin releu
  3. Interogați manual /meter/0 sau /meter/1 și verificați dacă power returnează o valoare diferită de zero
Energia totală pe canalul 1 pare incorectă

Pentru canalul 1, șablonul împarte valoarea totală la 6000 în loc de valoarea corectă 60000 (folosită pentru canalul 2). Ca urmare, energia cumulată pe canalul 1 este de 10 ori mai mare decât cea reală. În prezent nu există o soluție alternativă în cadrul șablonului — factorul de conversie este inclus în scriptul de interogare.

Dispozitivele Shelly Gen1 acceptă doar 2 conexiuni HTTP simultane. Dacă TapHome și un alt sistem (de ex. Home Assistant) interoghează simultan același dispozitiv, comunicarea poate deveni instabilă. Endpointurile releelor sunt interogate la fiecare 2,5 secunde, iar endpointurile contoarelor la fiecare 15 secunde.

Cum se instalează în TapHome

Cerințe preliminare

  • Dispozitiv Shelly instalat și pornit
  • Rețea Wi-Fi locală (2,4 GHz)
  • TapHome CCU în aceeași rețea

Pasul 1 — Conectați dispozitivul Shelly la Wi-Fi

Varianta A — aplicația Shelly (recomandat):

  1. Descărcați aplicația Shelly (iOS / Android)
  2. Atingeți + → Add Device și urmați asistentul de împerechere prin Bluetooth
  3. Introduceți datele de conectare la Wi-Fi când vi se solicită

Varianta B — modul AP (fără aplicație):

  1. La prima pornire, dispozitivul creează un hotspot: ShellyXXX-AABBCCDDEE
  2. Conectați telefonul/PC-ul la acest hotspot
  3. Deschideți http://192.168.33.1 → Internet & Security → Wi-Fi Mode - Client
  4. Introduceți SSID-ul și parola → Save

Shelly acceptă doar rețele de 2,4 GHz. Rețelele de 5 GHz nu vor apărea la scanare.

Pasul 2 — Găsiți adresa dispozitivului

Dispozitivele Shelly Gen1 acceptă mDNS (Zeroconf). Puteți accesa dispozitivul folosind un nume de gazdă în locul adresei IP:

1
shelly<model>-<MAC>.local

De exemplu: shelly1pm-AABBCCDDEE.local (adresa MAC în hexazecimal cu majuscule, fără două puncte).

Recomandat: folosiți Scanner IP din TapHome. Deschideți aplicația TapHome și folosiți Scanner IP (Setări → Rețea → Scanare). Scannerul descoperă dispozitivele din rețea și afișează atât adresa IP, cât și numele de gazdă mDNS. Pentru o conexiune mai fiabilă folosiți numele de gazdă în locul adresei IP — acesta rămâne același chiar dacă adresa IP a dispozitivului se schimbă după o repornire a routerului.

Metode alternative pentru aflarea adresei IP:

  • Aplicația Shelly: detaliile dispozitivului → Device info → adresa IP
  • Interfața web Shelly: conectați-vă la AP-ul dispozitivului înainte de configurarea Wi-Fi — adresa IP se afișează după salvare
  • Tabelul DHCP al routerului: căutați un nume de gazdă de forma shelly1pm-AABBCCDDEE

Pasul 3 — Configurați dispozitivul în TapHome

  1. În TapHome adăugați un nou modul Packet Parser (HTTP)
  2. Address: introduceți numele de gazdă mDNS (de ex. shelly1pm-AABBCCDDEE.local) sau adresa IP de la pasul 2
  3. Port: 80 (implicit, nu este necesară nicio modificare)
  4. Importați șablonul — TapHome va interoga periodic /status pentru a citi starea dispozitivului

Autentificarea HTTP este dezactivată implicit pe dispozitivele Shelly. Dacă ați activat protecția prin autentificare, rețineți că TapHome nu acceptă momentan HTTP Basic Auth — pentru integrarea cu TapHome lăsați autentificarea dezactivată.

Dispozitive disponibile

Shelly 2.5 Modul
Atribute de service
Mod
Acțiuni de service
Mod

Shelly2.5

Atribute de service
Mode
 VAR response := SENDHTTPREQUEST("/settings");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "mode"));
 END
Acțiuni de service
Mode
Parametri: Mode
var St := SWITCH(mo, 1, "roller", "relay");
 VAR response := SENDHTTPREQUEST("/settings?mode=" + St);
Contor electric — canalul 1 Contor electric Doar citire

Măsurarea puterii și a consumului de energie pentru canalul 1 — putere instantanee (kW) și energie cumulată (kWh). Notă: valoarea energiei este de 10 ori prea mare din cauza unui divizor greșit în șablon (/6000 în loc de /60000)

numeric Unitate: W / kWh
Atribute de service
Depășire putere

Contor electric — canalul 1

Citirea consumului total
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/6000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Citirea cererii
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Atribute de service
Overpower
 VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Contor electric — canalul 2 Contor electric Doar citire

Măsurarea puterii și a consumului de energie pentru canalul 2 — putere instantanee (kW) și energie cumulată (kWh)

numeric Unitate: W / kWh
Atribute de service
Depășire putere

Contor electric — canalul 2

Citirea consumului total
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/60000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Citirea cererii
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Atribute de service
Overpower
 VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Releu — canalul 1 Comutator
boolean
Valori / Stări: ON · OFF

Releu — canalul 1

Citirea stării comutatorului
VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Scrierea stării comutatorului
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/0?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Atribute de service
Overpower
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
Overtemperature
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
Power Meter
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
Releu — canalul 2 Comutator
boolean
Valori / Stări: ON · OFF

Releu — canalul 2

Citirea stării comutatorului
VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Scrierea stării comutatorului
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/1?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Atribute de service
Overpower
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
Overtemperature
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
Power Meter
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
Conexiune: Packet Parser → HTTP • Nume gazdă: shellyswitch25-{MAC}.local
Îmbunătățiri posibile (9)
  • Roller Shutter Control — Full roller shutter control (open/close/stop/position 0-100%) — the Shelly 2.5's key dual-mode feature. Template only implements relay mode.
  • Roller Position — Current roller position 0-100% (requires calibration). Not available without /roller/ endpoint.
  • Roller Calibration — Initiates travel-time calibration procedure for position control.
  • Rolling Power Averages — 3 rolling one-minute power averages per channel, available in /meter/ response
  • Input States — Physical switch input states (0/1) for both channels, available in /status response
  • Internal Device Temperature — Internal temperature in C available in /status response (not exposed as a device, only as relay SA)
  • Auto-off Timer — Per-channel auto-off timer in seconds, could be added as service action parameter
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Favorite Positions (Roller Mode) — Up to 4 saved roller shutter positions — only relevant if roller mode is implemented

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal