
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 potenciometraVREF+R1 OUT: referentni napon s pull-up otpornikom od 10 kΩ, namijenjen djelilima napona s NTC otpornikom i fotootpornikomGND× 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:
- Postavite pločicu dodatka na priključak za dodatak uređaja domaćina Shelly i uključite napajanje uređaja domaćina.
- Otvorite web-sučelje uređaja domaćina na
http://{host-ip}/i prijavite se. - Idite na Settings → Add-on i registrirajte dodatak (u pozadini se poziva
Sys.SetConfigsdevice.addon_type = "sensor"). Ako se to zatraži, ponovno pokrenite uređaj domaćin. - Otvorite Settings → Components → Peripherals i kliknite gumb +.
- Odaberite vrstu perifernog uređaja: Temperature (DS18B20), Digital Input, Analog Input ili Voltmeter.
- Za DS18B20 kliknite Rescan, označite svaku pronađenu sondu, a zatim odaberite Add and reboot. Prva sonda dobiva Component ID
100, druga101i tako dalje. - Za Digital Input postavite Mode na Switch ili Button (predložak iz ove komponente čita
state). - 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
- Provjerite je li uređaj domaćin Shelly spojen na Wi-Fi i ima li valjanu IP adresu.
- 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. - U pregledniku otvorite
http://{host-ip}/rpc/Shelly.GetDeviceInfo: ako odgovori u formatu JSON, uređaj domaćin je dostupan. - Provjerite jesu li centralna jedinica TapHome (CCU) i uređaj domaćin Shelly u istoj mreži / VLAN-u.
- Provjerite je li HTTP Digest Authentication isključena u web-sučelju Shelly.
Senzori ne prikazuju podatke
- 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 od103ili pomaknut, prenumerirajte periferne uređaje tako da ih izbrišete i ponovno dodate ispravnim redoslijedom ili prilagodite predložak svojim ID-evima. - 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). - Izravno očitajte krajnju točku:
GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. Odgovor treba sadržavati vrijednosttCrazličitu od null. - 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
- Provjerite je li
typeulaza u sučelju Shelly postavljen naanalog(a ne naswitch,buttonilicount). Predložak čitapercent, koji se popunjava samo u analognom načinu. - Provjerite spajanje: izvor 0–10 V mora biti spojen između
ANALOG INiGND. Za senzore tipa potenciometra (NTC, fotootpornik) koristiteVREF+R1 OUT(s ugrađenim pull-up otpornikom od 10 kΩ) umjestoVREF OUT. - Imajte na umu da TapHome vrijednost prima kao udio 0,0–1,0 (predložak dijeli
percentsa 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.