TapHome

Shelly Sensor Add-On

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

Acest dispozitiv acceptă mDNS

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

shellyplus{model}-{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 Sensor Add-On

Shelly Sensor Add-On (comercializat ca Shelly Plus Add-On) este o placă de extensie izolată galvanic, care se montează pe conectorul pentru add-on al unui dispozitiv compatibil Shelly Plus, Gen3 sau Gen4. Extinde dispozitivul Shelly gazdă cu o magistrală de temperatură 1-Wire (DS18B20), o intrare digitală (contact reed / contact uscat), o intrare analogică (0–10 V / 0–100 %) și un voltmetru 0–10 V. Add-on-ul nu este un dispozitiv Wi-Fi independent — se citește prin interfața HTTP a dispozitivului Shelly gazdă în rețeaua locală, astfel încât TapHome folosește adresa IP a dispozitivului gazdă, nu o adresă IP separată pentru add-on.

Șablonul TapHome oferă patru senzori de temperatură DS18B20 (Component ID 100–103), un contact reed, o intrare analogică și un voltmetru. Toate valorile sunt interogate prin API-ul JSON-RPC standard Shelly Gen2+ pe portul 80 — nu este necesară conexiunea la cloud.

Conectarea hardware

Add-on-ul se montează pe dispozitivul Shelly gazdă printr-un conector serial proprietar și se alimentează cu 3,3 V DC direct de la gazdă (consum sub 0,5 W fără senzori). Bornele accesibile utilizatorului sunt grupate într-un bloc analogic/digital și trei poziții pentru senzori 1-Wire.

Bornele analogice și digitale
  • ANALOG IN — intrare analogică 0–10 V (precizie ±5 %, prag de raportare 1 %)
  • DIGITAL IN — intrare pentru contact uscat / contact reed (True: −15 V până la 0,5 V, False: 2,5 V până la 15 V)
  • VREF OUT — tensiune de referință (maximum 1 mA) pentru alimentarea senzorilor de tip potențiometru
  • VREF+R1 OUT — tensiune de referință cu rezistor pull-up de 10 kΩ, destinată divizoarelor de tensiune cu NTC și fotorezistor
  • GND × 2 — borne de masă
Magistrala 1-Wire

Trei grupuri de câte trei borne (VCC, DATA, GND) au intern o linie de date 1-Wire comună. Pe magistrala comună se pot conecta în paralel până la 5 sonde DS18B20; alternativ, magistrala poate fi ocupată de un singur senzor DHT22 (DHT22 blochează scanarea OneWire cât timp este activ). Ieșirea VCC totală este limitată la 10 mA, ceea ce este suficient pentru cinci sonde DS18B20.

Secțiunea maximă a conductoarelor la toate bornele este de 1 mm² (17 AWG).

Nu combinați pe magistrală un senzor DHT22 cu sonde DS18B20. DHT22 blochează enumerarea OneWire, iar dispozitivul Shelly gazdă nu va putea rescana magistrala cât timp acesta este conectat.

Configurare

Shelly Sensor Add-On nu are o adresă IP proprie. La importul șablonului în TapHome, introduceți în parametrul IpAddress (valoarea implicită: 192.168.0.1) adresa IP a dispozitivului Shelly gazdă, adică a dispozitivului Plus / Gen3 / Gen4 pe care este montat add-on-ul.

Toată comunicația folosește API-ul JSON-RPC Gen2+ prin HTTP GET pe portul 80. O dată la fiecare ciclu de interogare, șablonul citește /rpc/Sys.GetStatus și /rpc/SensorAddon.GetPeripherals în variabile cache interne, apoi scriptul fiecărui dispozitiv interoghează endpointul său dedicat (Temperature.GetStatus, Input.GetStatus sau Voltmeter.GetStatus).

Dispozitive gazdă compatibile

Add-on-ul funcționează cu următoarele dispozitive Shelly (conform listei de compatibilitate a producătorului):

  • Shelly Plus: 1, 1PM, 1 UL, 1PM UL, 2PM, 2PM UL, i4, i4DC, 0-10 V Dimmer PM, RGBW PM
  • Shelly Gen3: 1, 1PM, 2PM, Shutter, i4, DALI Dimmer, Dimmer 0/1-10 V PM, EM
  • Shelly Gen4: 1, 1PM, 2PM

Firmware-ul dispozitivului Shelly gazdă trebuie să ofere serviciul SensorAddon — este posibil ca versiunile mai vechi de firmware Plus să nu îl aibă. Dacă meniul pentru add-on lipsește din interfața web, actualizați dispozitivul gazdă la cel mai recent firmware.

Activarea perifericelor add-on-ului

Add-on-ul se configurează o singură dată în interfața web a dispozitivului Shelly gazdă — TapHome nu îl configurează. Înainte de a importa șablonul, efectuați următorii pași:

  1. Montați placa add-on pe conectorul pentru add-on al dispozitivului Shelly gazdă și alimentați dispozitivul gazdă.
  2. Deschideți interfața web a dispozitivului gazdă la http://{host-ip}/ și autentificați-vă.
  3. Mergeți la Settings → Add-on și înregistrați add-on-ul (în fundal se apelează Sys.SetConfig cu device.addon_type = "sensor"). Dacă vi se solicită, reporniți dispozitivul gazdă.
  4. Deschideți Settings → Components → Peripherals și faceți clic pe butonul +.
  5. Alegeți tipul perifericului — Temperature (DS18B20), Digital Input, Analog Input sau Voltmeter.
  6. Pentru DS18B20, faceți clic pe Rescan, bifați fiecare sondă găsită, apoi alegeți Add and reboot. Prima sondă primește Component ID 100, a doua 101 și așa mai departe.
  7. Pentru Digital Input, setați Mode la Switch sau Button (șablonul citește state din această componentă).
  8. Pentru Analog Input și Voltmeter, valorile implicite sunt potrivite — contează doar numele și pragul delta.

Șablonul TapHome are Component ID 100–103 fixate în cod pentru DS18B20 și ID-ul 100 pentru contactul reed, intrarea analogică și voltmetru. Când adăugați periferice în interfața web Shelly, verificați dacă ID-urile atribuite corespund acestei numerotări — dacă ștergeți un periferic și îl adăugați din nou, dispozitivul Shelly atribuie următorul ID liber, care poate depăși 103, iar dispozitivul TapHome nu va mai primi date, fără niciun mesaj de eroare.

Înainte de a elimina un periferic, notați-i Component ID-ul. Dacă reconectați o sondă DS18B20, folosiți de preferință acțiunea Edit → Update address din interfața web, astfel încât Component ID-ul să rămână același.

Autentificarea HTTP Digest trebuie să fie dezactivată pe dispozitivul Shelly gazdă — TapHome nu trimite cereri autentificate. Lăsați dispozitivul fără autentificare sau restricționați accesul la nivelul rețelei.

Funcțiile dispozitivului

Șablonul grupează șapte dispozitive senzor, doar pentru citire, sub un singur modul HTTP care se conectează la dispozitivul Shelly gazdă.

Sonde de temperatură (DS18B20)

Sunt oferite patru sonde de temperatură OneWire DS18B20, câte una pentru fiecare Component ID 100–103:

  • Senzor de temperatură (DS18B20 #1) — citește /rpc/Temperature.GetStatus?id=100 → tC (°C)
  • Senzor de temperatură (DS18B20 #2) — citește /rpc/Temperature.GetStatus?id=101 → tC
  • Senzor de temperatură (DS18B20 #3) — citește /rpc/Temperature.GetStatus?id=102 → tC
  • Senzor de temperatură (DS18B20 #4) — citește /rpc/Temperature.GetStatus?id=103 → tC

Fiecare dispozitiv are o variabilă personalizată Id configurabilă de utilizator (valoarea implicită corespunde poziției). Intervalul de interogare este de 15 secunde pentru fiecare sondă. Interfața web Shelly permite reglajul fin al pragului delta (0,1–5 °C) și al offsetului (±50 °C) pentru fiecare sondă, în scop de calibrare.

Contact reed (intrare digitală)

Contact reed (100) citește /rpc/Input.GetStatus?id=100 → state (boolean). În interfața Shelly, intrarea trebuie configurată ca Switch sau Button (nu ca Analog sau Count). Intervalul de interogare este de 2,5 secunde. Valoarea implicită a variabilei personalizate Id este 100.

Intrare analogică

Intrare analogică (100) citește /rpc/Input.GetStatus?id=100 → percent, împărțit la 100, astfel încât valoarea este normalizată în intervalul 0,0–1,0 pe care TapHome îl așteaptă pentru intrările analogice. Intrarea trebuie configurată ca Analog în interfața Shelly. Precizia este ±5 %, cu un prag de raportare de 1 %. Intervalul de interogare este de 2,5 secunde.

Rețineți că contactul reed și intrarea analogică au același Component ID 100 — hardware-ul Shelly are pe add-on o singură intrare digitală și o singură intrare analogică, iar modul activ se stabilește prin tipul intrării în interfața web (switch/button sau analog). În TapHome folosiți fie dispozitivul contact reed, fie dispozitivul intrare analogică, nu pe amândouă în același timp.

Voltmetru

Voltmetru (100) citește /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Domeniul este 0–10 V, cu precizie de ±5 % și prag de raportare de 0,1 V. Este modelat ca PacketParserVariable cu capabilitatea sensor — tensiunea brută este oferită ca valoare scalară, nu ca tip de dispozitiv voltmetru dedicat. Intervalul de interogare este de 15 secunde.

Funcții suplimentare

Shelly Sensor Add-On acceptă nativ și un senzor de temperatură și umiditate DHT22 (o singură sondă care creează pe dispozitivul gazdă componentele pereche temperature:100 și humidity:100). Șablonul TapHome transmite temperatura pe toate cele patru dispozitive DS18B20, dar scriptul pentru umiditate are fixată în cod valoarea NaN — prin urmare, umiditatea de la DHT22 nu este disponibilă. Dacă aveți nevoie de umiditate, puteți extinde șablonul cu un script de citire separat pentru /rpc/Humidity.GetStatus?id=100.

La nivel de hardware/firmware există încă două funcții, care nu fac obiectul acestui șablon: un al cincilea slot DS18B20 (magistrala Shelly acceptă până la cinci sonde; șablonul interoghează doar ID-urile 100–103) și modul contor de impulsuri al intrării digitale (counts.total, counts.by_minute, freq), care necesită configurarea intrării ca type=count în interfața Shelly. Ambele pot fi adăugate într-o actualizare viitoare a șablonului.

Rezolvarea problemelor

Dispozitivul Shelly gazdă nu răspunde
  1. Verificați dacă dispozitivul Shelly gazdă este conectat la Wi-Fi și are o adresă IP validă.
  2. Încercați numele de gazdă mDNS al dispozitivului gazdă (de ex. shellyplus1pm-AABBCCDDEE.local) în locul adresei IP — adresa IP s-ar fi putut schimba după reînnoirea DHCP. Add-on-ul preia numele de gazdă al dispozitivului gazdă, nu are unul propriu.
  3. Deschideți http://{host-ip}/rpc/Shelly.GetDeviceInfo într-un browser — dacă răspunde cu JSON, dispozitivul gazdă este accesibil.
  4. Verificați dacă unitatea de control TapHome (CCU) și dispozitivul Shelly gazdă se află în aceeași rețea / VLAN.
  5. Asigurați-vă că autentificarea HTTP Digest este dezactivată în interfața web Shelly.
Senzorii nu afișează date
  1. Deschideți interfața web Shelly → Components → Peripherals. Verificați dacă perifericul apare în listă cu exact Component ID-ul pe care îl așteaptă șablonul (temperature:100–103, input:100, voltmeter:100). Dacă ID-ul este mai mare de 103 sau decalat, renumerotați perifericele ștergându-le și adăugându-le din nou în ordinea corectă sau modificați șablonul astfel încât să corespundă ID-urilor dvs.
  2. Pentru DS18B20: faceți clic pe Rescan în rândul perifericului DS18B20 — adresa de pe magistrală ar trebui să fie identificată. Dacă adresa apare ca N/A, verificați cablajul VCC/DATA/GND și rezistorul pull-up de 10 kΩ pe DATA (unele plăci DS18B20 generice nu îl au; dispozitivul Shelly îl asigură intern).
  3. Interogați direct endpointul: GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. Răspunsul trebuie să conțină o valoare tC diferită de null.
  4. Reporniți dispozitivul Shelly gazdă după adăugarea sau eliminarea perifericelor. Este posibil ca acestea să apară doar după repornire.
Intrarea analogică indică zero
  1. Verificați dacă parametrul type al intrării este setat în interfața Shelly la analog (nu switch, button sau count). Șablonul citește percent, care se completează doar în modul analogic.
  2. Verificați cablajul — o sursă de 0–10 V trebuie conectată între ANALOG IN și GND. Pentru senzorii de tip potențiometru (NTC, fotorezistor), folosiți VREF+R1 OUT (cu rezistorul pull-up integrat de 10 kΩ) în loc de VREF OUT.
  3. Rețineți că TapHome primește valoarea ca fracție 0,0–1,0 (șablonul împarte percent la 100).
Lipsește umiditatea de la DHT22

Aceasta este o limitare intenționată a șablonului — scriptul readhumidity are fixată în cod valoarea NaN pe fiecare slot de dispozitiv DS18B20. Hardware-ul add-on-ului acceptă DHT22, dar pentru a afișa umiditatea în TapHome trebuie să extindeți șablonul cu un dispozitiv dedicat care citește /rpc/Humidity.GetStatus?id=100 → rh. Senzorii DS18B20 și DHT22 nu pot coexista pe aceeași magistrală — dacă treceți la DHT22, eliminați sondele DS18B20.

A cincea sondă DS18B20 nu este vizibilă

Șablonul interoghează doar ID-urile 100–103. O a cincea sondă înregistrată în interfața web Shelly ca temperature:104 va exista pe dispozitivul gazdă, dar nu va fi citită de TapHome. Fie mutați sonda care vă interesează într-unul dintre sloturile 100–103 (ștergeți-o și adăugați-o din nou în ordine), fie extindeți șablonul cu un al cincilea dispozitiv care folosește id=104.

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 Sensor Add-On Modul
Variabile personalizate

Shelly Sensor Add-On

Citire (modul)
var res := sendhttprequest("/rpc/Sys.GetStatus");
SysGetStatus := res.Content;
res := sendhttprequest("/rpc/SensorAddon.GetPeripherals");
SensorAddonGetPeripherals := res.Content;
Intrare analogică Intrare analogică Doar citire

Intrare analogică 0–10 V / 0–100 % — citește /rpc/Input.GetStatus?id=100 → percent și împarte la 100, oferind valoarea ca fracție 0,0–1,0. Necesită setarea tipului de intrare la analog în interfața web Shelly. Precizie ±5 %

numeric Unitate: % (normalised) json_path
Variabilă: Id — Component ID-ul perifericului de tip intrare analogică de pe dispozitivul Shelly gazdă (perifericele add-on folosesc 100–199; prima intrare analogică este 100)

Intrare analogică

Citirea nivelului de intrare
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "percent") / 100
Contact reed Contact reed Doar citire

Intrare digitală pentru contact uscat / contact reed — citește /rpc/Input.GetStatus?id=100 → state (true = închis, false = deschis). Necesită setarea tipului de intrare la switch sau button în interfața web Shelly (are același Component ID 100 ca intrarea analogică — un singur mod activ odată)

boolean json_path
Variabilă: Id — Component ID-ul perifericului de tip intrare digitală de pe dispozitivul Shelly gazdă (implicit 100)

Contact reed

Citire
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "state")
Senzor de temperatură (DS18B20 #1) Senzor de temperatură Doar citire

Prima sondă DS18B20 de pe magistrala 1-Wire — citește /rpc/Temperature.GetStatus?id=100 → tC (°C). Umiditatea are fixată în cod valoarea NaN (șablonul nu oferă DHT22)

numeric Unitate: °C json_path
Variabilă: Id — Component ID-ul primei sonde DS18B20 pe dispozitivul Shelly gazdă (implicit 100)

Senzor de temperatură (DS18B20 #1)

Citirea umidității
NaN
Citirea temperaturii
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Senzor de temperatură (DS18B20 #2) Senzor de temperatură Doar citire

A doua sondă DS18B20 de pe magistrala 1-Wire — citește /rpc/Temperature.GetStatus?id=101 → tC (°C)

numeric Unitate: °C json_path
Variabilă: Id — Component ID-ul celei de-a doua sonde DS18B20 pe dispozitivul Shelly gazdă (implicit 101)

Senzor de temperatură (DS18B20 #2)

Citirea umidității
NaN
Citirea temperaturii
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Senzor de temperatură (DS18B20 #3) Senzor de temperatură Doar citire

A treia sondă DS18B20 de pe magistrala 1-Wire — citește /rpc/Temperature.GetStatus?id=102 → tC (°C)

numeric Unitate: °C json_path
Variabilă: Id — Component ID-ul celei de-a treia sonde DS18B20 pe dispozitivul Shelly gazdă (implicit 102)

Senzor de temperatură (DS18B20 #3)

Citirea umidității
NaN
Citirea temperaturii
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Senzor de temperatură (DS18B20 #4) Senzor de temperatură Doar citire

A patra sondă DS18B20 de pe magistrala 1-Wire — citește /rpc/Temperature.GetStatus?id=103 → tC (°C). Ultimul slot DS18B20 din șablon — magistrala Shelly acceptă până la 5 sonde, dar sunt interogate doar ID-urile 100–103

numeric Unitate: °C json_path
Variabilă: Id — Component ID-ul celei de-a patra sonde DS18B20 pe dispozitivul Shelly gazdă (implicit 103)

Senzor de temperatură (DS18B20 #4)

Citirea umidității
NaN
Citirea temperaturii
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Voltmetru Variabilă Doar citire

Măsurarea tensiunii 0–10 V — citește /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Oferită ca valoare scalară doar pentru citire prin PacketParserVariable (nu ca dispozitiv voltmetru nativ). Precizie ±5 %, prag de raportare 0,1 V

numeric Unitate: V json_path
Variabilă: Id — Component ID-ul perifericului de tip voltmetru de pe dispozitivul Shelly gazdă (implicit 100)

Voltmetru

Citire
var res := sendhttprequest("/rpc/Voltmeter.GetStatus?id=" + Id);
parsejson(res.Content, "voltage")
Conexiune: Packet Parser → HTTP • Nume gazdă: shellyplus{model}-{MAC}.local
Îmbunătățiri posibile (7)
  • DHT22 Humidity — Template hardcodes readhumidity = NaN on all four DS18B20 temperature devices. The add-on physically supports a DHT22 sensor (temperature + humidity) which creates paired humidity:100 + temperature:100 Components on the host. A separate PacketParser device reading humidity:100 → rh would expose this.
  • 5th DS18B20 slot — The Shelly Plus Add-on supports up to 5 DS18B20 probes on the shared 1-Wire bus. The template only wires 4 (IDs 100–103). A fifth probe registered as temperature:104 in the Shelly web UI would not be polled.
  • OneWire bus scan — Manufacturer API can discover unmapped DS18B20 probes. Not exposed as a TapHome service action — users must scan via the Shelly web UI. Useful for replacing physical probes.
  • Peripheral lifecycle management — Adding/removing/updating peripherals is performed exclusively via the Shelly web UI; the template does not expose these as TapHome service actions by design.
  • Enable / disable add-on — Activation is a one-time setup step performed in the Shelly web UI (or via Sys.SetConfig with device.addon_type = "sensor"). Not exposed by the template.
  • Pulse counter mode — Digital input can be configured as type=count and would expose counts.total / counts.by_minute / freq. Template only reads state (switch/button mode).
  • Voltmeter transformed value — Voltmeter supports an optional JavaScript expression (xvoltage.expr) that transforms the raw voltage (e.g. for a voltage-divided NTC temperature reading). Template reads only raw voltage.

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