TapHome

Shelly Sensor Add-On

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 10. 2026

Ovaj uređaj podržava mDNS

Umjesto IP adrese uređaju možete pristupiti na adresi:

shellyplus{model}-{MAC}.local

Zamijenite {MAC} MAC adresom svog uređaja (velika slova, bez dvotočaka).

TapHome podržava mDNS. Naziv računala (hostname) pouzdaniji je od statične IP adrese.

Shelly Sensor Add-On

Shelly Sensor Add-On (u prodaji kao Shelly Plus Add-On) je galvanski odvojena proširna pločica koja se utakne na priključak za dodatak kompatibilnog uređaja Shelly Plus, Gen3 ili Gen4. Uređaju domaćinu Shelly dodaje 1-Wire sabirnicu za temperaturu (DS18B20), digitalni ulaz (magnetski / beznaponski kontakt), analogni ulaz (0–10 V / 0–100 %) i voltmetar 0–10 V. Dodatak nije samostalan Wi-Fi uređaj: čita se preko HTTP sučelja uređaja domaćina Shelly u lokalnoj mreži, pa TapHome koristi IP adresu uređaja domaćina, a ne zasebnu IP adresu dodatka.

Predložak TapHome daje četiri temperaturna senzora DS18B20 (Component ID 100–103), jedan magnetski kontakt, jedan analogni ulaz i jedan voltmetar. Sva se očitanja dobivaju preko standardnog JSON-RPC API-ja Shelly Gen2+ na portu 80, pa veza s oblakom nije potrebna.

Hardversko spajanje

Dodatak se postavlja na uređaj domaćin Shelly preko vlasničkog serijskog priključka i napaja se s 3,3 V DC izravno iz uređaja domaćina (potrošnja ispod 0,5 W bez senzora). Stezaljke dostupne korisniku podijeljene su u analogni/digitalni blok i tri mjesta za 1-Wire senzore.

Analogne i digitalne stezaljke
  • ANALOG IN: analogni ulaz 0–10 V (točnost ±5 %, prag javljanja 1 %)
  • DIGITAL IN: ulaz za beznaponski kontakt / reed sklopku (True: −15 V do 0,5 V, False: 2,5 V do 15 V)
  • VREF OUT: referentni napon (najviše 1 mA) za napajanje senzora tipa potenciometra
  • VREF+R1 OUT: referentni napon s pull-up otpornikom od 10 kΩ, namijenjen djelilima napona s NTC otpornikom i fotootpornikom
  • GND × 2: povratni vodiči mase
1-Wire sabirnica

Tri skupine s po tri stezaljke (VCC, DATA, GND) interno dijele zajednički 1-Wire podatkovni vod. Na zajedničku sabirnicu može se paralelno spojiti do 5 sondi DS18B20; umjesto toga sabirnicu može zauzeti jedan senzor DHT22 (DHT22 dok je aktivan blokira OneWire pretraživanje). Ukupna izlazna struja VCC ograničena je na 10 mA, što je dovoljno za pet sondi DS18B20.

Najveći presjek vodiča na svim stezaljkama je 1 mm² (17 AWG).

Na sabirnici ne kombinirajte DHT22 sa sondama DS18B20. DHT22 blokira OneWire pretraživanje, a uređaj domaćin Shelly dok je DHT22 spojen ne može ponovno pretražiti sabirnicu.

Konfiguracija

Shelly Sensor Add-On nema vlastitu IP adresu. Pri uvozu predloška u TapHome u parametar IpAddress unesite IP adresu uređaja domaćina Shelly (uređaja Plus / Gen3 / Gen4 na koji je dodatak postavljen) (u predlošku je unaprijed upisan primjer 192.168.0.1).

Sva komunikacija koristi JSON-RPC API Gen2+ preko HTTP GET na portu 80. Predložak jednom u svakom ciklusu očitavanja čita /rpc/Sys.GetStatus i /rpc/SensorAddon.GetPeripherals u interne varijable predmemorije, a zatim skripta svakog uređaja šalje upit svojoj krajnjoj točki (Temperature.GetStatus, Input.GetStatus ili Voltmeter.GetStatus).

Kompatibilni uređaji domaćini

Dodatak radi sa sljedećim uređajima Shelly (prema popisu kompatibilnosti proizvođača):

  • 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

Firmver uređaja domaćina Shelly mora imati uslugu SensorAddon; starija izdanja firmvera za uređaje Plus možda je nemaju. Ako izbornik dodatka nedostaje u web-sučelju, ažurirajte uređaj domaćin na najnoviji firmver.

Uključivanje perifernih uređaja dodatka

Dodatak se postavlja jednokratno u web-sučelju uređaja domaćina Shelly; TapHome ga ne konfigurira. Prije uvoza predloška napravite sljedeće:

  1. Postavite pločicu dodatka na priključak za dodatak uređaja domaćina Shelly i uključite napajanje uređaja domaćina.
  2. Otvorite web-sučelje uređaja domaćina na http://{host-ip}/ i prijavite se.
  3. Idite na Settings → Add-on i registrirajte dodatak (u pozadini se poziva Sys.SetConfig s device.addon_type = "sensor"). Ako se to zatraži, ponovno pokrenite uređaj domaćin.
  4. Otvorite Settings → Components → Peripherals i kliknite gumb +.
  5. Odaberite vrstu perifernog uređaja: Temperature (DS18B20), Digital Input, Analog Input ili Voltmeter.
  6. Za DS18B20 kliknite Rescan, označite svaku pronađenu sondu, a zatim odaberite Add and reboot. Prva sonda dobiva Component ID 100, druga 101 i tako dalje.
  7. Za Digital Input postavite Mode na Switch ili Button (predložak iz ove komponente čita state).
  8. Za Analog Input i Voltmeter zadane postavke su u redu: važni su samo naziv i prag promjene (delta).

Predložak TapHome ima fiksno zadane Component ID-eve 100–103 za DS18B20 i ID 100 za magnetski kontakt, analogni ulaz i voltmetar. Pri dodavanju perifernih uređaja u web-sučelju Shelly provjerite odgovaraju li dodijeljeni ID-evi ovom numeriranju: ako periferni uređaj izbrišete i ponovno dodate, Shelly dodjeljuje sljedeći slobodni ID, koji može prijeći 103, a uređaj u sustavu TapHome tada bez upozorenja prestaje primati podatke.

Prije uklanjanja perifernog uređaja zapišite njegov Component ID. Ako prespajate sondu DS18B20, radije upotrijebite radnju Edit → Update address u web-sučelju, kako bi Component ID ostao isti.

Na uređaju domaćinu Shelly HTTP Digest Authentication mora biti isključena: TapHome ne šalje zahtjeve s autentifikacijom. Uređaj ostavite bez zaštite lozinkom ili ograničite pristup na razini mreže.

Mogućnosti uređaja

Predložak objedinjuje sedam senzorskih uređaja samo za čitanje u jednom HTTP modulu koji komunicira s uređajem domaćinom Shelly.

Temperaturne sonde (DS18B20)

Predložak daje četiri OneWire temperaturne sonde DS18B20, po jednu za svaki Component ID 100–103:

  • Senzor temperature (DS18B20 #1): čita /rpc/Temperature.GetStatus?id=100 → tC (°C)
  • Senzor temperature (DS18B20 #2): čita /rpc/Temperature.GetStatus?id=101 → tC
  • Senzor temperature (DS18B20 #3): čita /rpc/Temperature.GetStatus?id=102 → tC
  • Senzor temperature (DS18B20 #4): čita /rpc/Temperature.GetStatus?id=103 → tC

Svaki uređaj ima korisničku varijablu Id koju možete promijeniti (zadana vrijednost odgovara položaju). Interval očitavanja je 15 sekundi po sondi. U web-sučelju Shelly za svaku sondu možete fino podesiti prag promjene (0,1–5 °C) i pomak (±50 °C) radi kalibracije.

Magnetski kontakt (digitalni ulaz)

Magnetski kontakt (100) čita /rpc/Input.GetStatus?id=100 → state (logička vrijednost). U sučelju Shelly ulaz mora biti postavljen kao Switch ili Button (ne Analog ni Count). Interval očitavanja je 2,5 sekunde. Zadana vrijednost korisničke varijable Id je 100.

Analogni ulaz

Analogni ulaz (100) čita /rpc/Input.GetStatus?id=100 → percent i dijeli ga sa 100, tako da je vrijednost normalizirana na udio 0,0–1,0 koji TapHome očekuje za analogne ulaze. Ulaz mora biti postavljen kao Analog u sučelju Shelly. Točnost je ±5 %, uz prag javljanja od 1 %. Interval očitavanja je 2,5 sekunde.

Magnetski kontakt i analogni ulaz dijele Component ID 100: hardver Shelly na dodatku ima samo jedan digitalni i jedan analogni ulaz, a aktivni način određuje vrsta (type) ulaza u web-sučelju (switch/button ili analog). U sustavu TapHome koristite uređaj „Magnetski kontakt” ili uređaj „Analogni ulaz”, ne oba istodobno.

Voltmetar

Voltmetar (100) čita /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Raspon je 0–10 V uz točnost ±5 % i prag javljanja 0,1 V. Modeliran je kao PacketParserVariable sa sposobnošću sensor: neobrađeni napon daje se kao skalarna vrijednost, a ne kao zasebna vrsta uređaja za mjerenje napona. Interval očitavanja je 15 sekundi.

Dodatne mogućnosti

Shelly Sensor Add-On izvorno podržava i senzor temperature i vlažnosti DHT22 (jedna sonda koja na uređaju domaćinu stvara par komponenti temperature:100 i humidity:100). Predložak TapHome temperaturu prosljeđuje na sva četiri uređaja DS18B20, ali skriptu za vlažnost ima fiksno postavljenu na NaN, pa se vlažnost senzora DHT22 ne prikazuje. Korisnici kojima treba vlažnost mogu proširiti predložak zasebnom skriptom za čitanje na /rpc/Humidity.GetStatus?id=100.

Na razini hardvera i firmvera postoje još dvije mogućnosti koje nisu obuhvaćene ovim predloškom: peto mjesto za DS18B20 (sabirnica Shelly podržava do pet sondi, a predložak očitava samo ID-eve 100–103) i način brojača impulsa digitalnog ulaza (counts.total, counts.by_minute, freq), koji zahtijeva postavljanje ulaza kao type=count u sučelju Shelly. Obje se mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Uređaj domaćin Shelly ne odgovara
  1. Provjerite je li uređaj domaćin Shelly spojen na Wi-Fi i ima li valjanu IP adresu.
  2. Umjesto IP adrese pokušajte koristiti mDNS naziv hosta uređaja domaćina (npr. shellyplus1pm-AABBCCDDEE.local): IP adresa se možda promijenila nakon obnove DHCP zakupa. Dodatak preuzima naziv hosta uređaja domaćina i nema vlastiti.
  3. U pregledniku otvorite http://{host-ip}/rpc/Shelly.GetDeviceInfo: ako odgovori u formatu JSON, uređaj domaćin je dostupan.
  4. Provjerite jesu li centralna jedinica TapHome (CCU) i uređaj domaćin Shelly u istoj mreži / VLAN-u.
  5. Provjerite je li HTTP Digest Authentication isključena u web-sučelju Shelly.
Senzori ne prikazuju podatke
  1. Otvorite web-sučelje Shelly → Components → Peripherals. Provjerite je li periferni uređaj naveden s točno onim Component ID-em koji predložak očekuje (temperature:100–103, input:100, voltmeter:100). Ako je ID veći od 103 ili pomaknut, prenumerirajte periferne uređaje tako da ih izbrišete i ponovno dodate ispravnim redoslijedom ili prilagodite predložak svojim ID-evima.
  2. Za DS18B20: u retku perifernog uređaja DS18B20 kliknite Rescan; adresa na sabirnici trebala bi se prepoznati. Ako se prikazuje N/A, provjerite spajanje VCC/DATA/GND i pull-up otpornik od 10 kΩ na DATA (neke generičke pločice DS18B20 ga nemaju; Shelly ga ima interno).
  3. Izravno očitajte krajnju točku: GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. Odgovor treba sadržavati vrijednost tC različitu od null.
  4. Nakon dodavanja ili uklanjanja perifernih uređaja ponovno pokrenite uređaj domaćin Shelly. Komponente se možda neće pojaviti prije ponovnog pokretanja.
Analogni ulaz pokazuje nulu
  1. Provjerite je li type ulaza u sučelju Shelly postavljen na analog (a ne na switch, button ili count). Predložak čita percent, koji se popunjava samo u analognom načinu.
  2. Provjerite spajanje: izvor 0–10 V mora biti spojen između ANALOG IN i GND. Za senzore tipa potenciometra (NTC, fotootpornik) koristite VREF+R1 OUT (s ugrađenim pull-up otpornikom od 10 kΩ) umjesto VREF OUT.
  3. Imajte na umu da TapHome vrijednost prima kao udio 0,0–1,0 (predložak dijeli percent sa 100).
Nedostaje vlažnost senzora DHT22

To je namjerno ograničenje predloška: skripta readhumidity u svakom uređaju DS18B20 ima fiksno postavljenu vrijednost NaN. Hardver dodatka podržava DHT22, ali da biste vlažnost prikazali u sustavu TapHome, predložak morate proširiti zasebnim uređajem koji čita /rpc/Humidity.GetStatus?id=100 → rh. DS18B20 i DHT22 ne mogu istodobno raditi na istoj sabirnici: ako prelazite na DHT22, uklonite sonde DS18B20.

Peta sonda DS18B20 nije vidljiva

Predložak očitava samo ID-eve 100–103. Peta sonda registrirana u web-sučelju Shelly kao temperature:104 postojat će na uređaju domaćinu, ali je TapHome neće čitati. Sondu koja vam je važna premjestite na jedno od mjesta 100–103 (izbrišite i ponovno dodajte redom) ili proširite predložak petim uređajem koji čita id=104.

Kako ga instalirati u TapHome

Preduvjeti

  • Uređaj Shelly ugrađen i uključen
  • Lokalna Wi-Fi mreža (2,4 GHz)
  • TapHome CCU u istoj mreži

Korak 1 — Spojite Shelly na Wi-Fi

Opcija A — aplikacija Shelly (preporučeno):

  1. Preuzmite aplikaciju Shelly (iOS / Android)
  2. Dodirnite + → Add Device i slijedite čarobnjak za uparivanje preko Bluetootha
  3. Kada se to zatraži, unesite podatke za prijavu na Wi-Fi

Opcija B — način rada AP (bez aplikacije):

  1. Pri prvom uključivanju uređaj stvara pristupnu točku: ShellyXXX-AABBCCDDEE
  2. Spojite telefon ili računalo na tu pristupnu točku
  3. Otvorite http://192.168.33.1 → Internet & Security → Wi-Fi Mode - Client
  4. Unesite SSID i lozinku → Save

Shelly podržava samo mreže od 2,4 GHz. Mreže od 5 GHz neće se prikazati pri skeniranju.

Korak 2 — Pronađite adresu uređaja

Uređaji Shelly Gen1 podržavaju mDNS (Zeroconf). Uređaju možete pristupiti preko naziva hosta umjesto IP adrese:

1
shelly<model>-<MAC>.local

Na primjer: shelly1pm-AABBCCDDEE.local (MAC adresa velikim slovima u heksadecimalnom zapisu, bez dvotočaka).

Preporučeno: koristite IP skener TapHome. Otvorite aplikaciju TapHome i pokrenite IP skener (Postavke → Mreža → Skeniranje). Skener pronalazi uređaje u vašoj mreži i prikazuje IP adresu i mDNS naziv hosta. Za pouzdaniju vezu koristite naziv hosta umjesto IP adrese, jer ostaje isti i kada se IP adresa uređaja promijeni nakon ponovnog pokretanja usmjerivača.

Drugi načini za pronalaženje IP adrese:

  • Aplikacija Shelly: detalji uređaja → Device info → IP adresa
  • Web-sučelje Shelly: spojite se na AP uređaja prije postavljanja Wi-Fi mreže — IP adresa prikazuje se nakon spremanja
  • DHCP tablica usmjerivača: potražite naziv hosta poput shelly1pm-AABBCCDDEE

Korak 3 — Konfiguracija u sustavu TapHome

  1. U sustavu TapHome dodajte novi modul Packet Parser (HTTP)
  2. Adresa: unesite mDNS naziv hosta (npr. shelly1pm-AABBCCDDEE.local) ili IP adresu iz koraka 2
  3. Port: 80 (zadano, nije potrebno mijenjati)
  4. Uvezite predložak — TapHome će čitati /status kako bi očitao stanje uređaja

HTTP autentifikacija na uređajima Shelly zadano je isključena. Ako ste uključili zaštitu prijavom, TapHome trenutačno ne podržava HTTP Basic Auth — za integraciju sa sustavom TapHome ostavite autentifikaciju isključenom.

Dostupni uređaji

Shelly Sensor Add-On Modul
Prilagođene varijable

Shelly Sensor Add-On

Čitanje (modul)
var res := sendhttprequest("/rpc/Sys.GetStatus");
SysGetStatus := res.Content;
res := sendhttprequest("/rpc/SensorAddon.GetPeripherals");
SensorAddonGetPeripherals := res.Content;
Analogni ulaz Analogni ulaz Samo za čitanje

Analogni ulaz 0–10 V / 0–100 % — čita /rpc/Input.GetStatus?id=100 → percent i dijeli sa 100, pa vrijednost daje kao udio 0,0–1,0. Zahtijeva da vrsta ulaza u web-sučelju Shelly bude postavljena na analog. Točnost ±5 %

numeric Jedinica: % (normalised) json_path
Varijabla: Id — Component ID perifernog analognog ulaza na uređaju domaćinu Shelly (periferni uređaji dodatka koriste 100–199; prvi analogni ulaz je 100)

Analogni ulaz

Čitanje razine ulaza
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "percent") / 100
Magnetski kontakt Magnetski kontakt Samo za čitanje

Digitalni ulaz za beznaponski / magnetski kontakt — čita /rpc/Input.GetStatus?id=100 → state (true = zatvoreno, false = otvoreno). Zahtijeva da vrsta ulaza u web-sučelju Shelly bude postavljena na switch ili button (dijeli Component ID 100 s analognim ulazom — u jednom trenutku aktivan je samo jedan način)

boolean json_path
Varijabla: Id — Component ID perifernog digitalnog ulaza na uređaju domaćinu Shelly (zadano 100)

Magnetski kontakt

Čitanje
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "state")
Senzor temperature (DS18B20 #1) Senzor temperature Samo za čitanje

Prva sonda DS18B20 na sabirnici 1-Wire — čita /rpc/Temperature.GetStatus?id=100 → tC (°C). Vlažnost je fiksno postavljena na NaN (predložak ne prikazuje DHT22)

numeric Jedinica: °C json_path
Varijabla: Id — Component ID prve sonde DS18B20 na uređaju domaćinu Shelly (zadano 100)

Senzor temperature (DS18B20 #1)

Čitanje vlažnosti
NaN
Čitanje temperature
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Senzor temperature (DS18B20 #2) Senzor temperature Samo za čitanje

Druga sonda DS18B20 na sabirnici 1-Wire — čita /rpc/Temperature.GetStatus?id=101 → tC (°C)

numeric Jedinica: °C json_path
Varijabla: Id — Component ID druge sonde DS18B20 na uređaju domaćinu Shelly (zadano 101)

Senzor temperature (DS18B20 #2)

Čitanje vlažnosti
NaN
Čitanje temperature
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Senzor temperature (DS18B20 #3) Senzor temperature Samo za čitanje

Treća sonda DS18B20 na sabirnici 1-Wire — čita /rpc/Temperature.GetStatus?id=102 → tC (°C)

numeric Jedinica: °C json_path
Varijabla: Id — Component ID treće sonde DS18B20 na uređaju domaćinu Shelly (zadano 102)

Senzor temperature (DS18B20 #3)

Čitanje vlažnosti
NaN
Čitanje temperature
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Senzor temperature (DS18B20 #4) Senzor temperature Samo za čitanje

Četvrta sonda DS18B20 na sabirnici 1-Wire — čita /rpc/Temperature.GetStatus?id=103 → tC (°C). Posljednje mjesto za DS18B20 u predlošku — sabirnica Shelly podržava do 5 sondi, ali očitavaju se samo ID-evi 100–103

numeric Jedinica: °C json_path
Varijabla: Id — Component ID četvrte sonde DS18B20 na uređaju domaćinu Shelly (zadano 103)

Senzor temperature (DS18B20 #4)

Čitanje vlažnosti
NaN
Čitanje temperature
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Voltmetar Varijabla Samo za čitanje

Mjerenje napona 0–10 V — čita /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Daje se kao skalarna vrijednost samo za čitanje preko PacketParserVariable (nije zasebna vrsta uređaja za mjerenje napona). Točnost ±5 %, prag javljanja 0,1 V

numeric Jedinica: V json_path
Varijabla: Id — Component ID perifernog voltmetra na uređaju domaćinu Shelly (zadano 100)

Voltmetar

Čitanje
var res := sendhttprequest("/rpc/Voltmeter.GetStatus?id=" + Id);
parsejson(res.Content, "voltage")
Povezivanje: Packet Parser → HTTP • Naziv računala (hostname): shellyplus{model}-{MAC}.local
Moguća poboljšanja (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.

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu