
A Shelly Sensor Add-On (a kereskedelmi neve Shelly Plus Add-On) egy galvanikusan leválasztott bővítőkártya, amely egy kompatibilis Shelly Plus, Gen3 vagy Gen4 készülék add-on csatlakozójára csatlakozik. A gazda Shelly-t kiegészíti egy 1-Wire hőmérséklet-busszal (DS18B20), egy digitális bemenettel (mágneses / száraz kontaktus), egy analóg bemenettel (0–10 V / 0–100 %) és egy 0–10 V voltmérővel. Az add-on nem önálló Wi-Fi eszköz — a gazda Shelly HTTP felületén keresztül olvasható a helyi hálózaton, így a TapHome a gazda IP-jét címzi, nem az add-on saját IP-jét.
A TapHome sablon négy DS18B20 hőmérséklet-érzékelőt (Component ID 100–103), egy mágneses kontaktust, egy analóg bemenetet és egy voltmérőt tesz elérhetővé. Minden érték a szabványos Shelly Gen2+ JSON-RPC API-n keresztül a 80-as porton kerül lekérdezésre — felhőkapcsolat nem szükséges.
Hardveres csatlakozás
Az add-on egy egyedi soros csatlakozón keresztül illeszkedik a gazda Shelly-re, és közvetlenül a gazdából kap 3,3 V DC tápot (érzékelők nélküli fogyasztás 0,5 W alatt). A felhasználó által elérhető sorkapcsok analóg/digitális blokkra és három 1-Wire érzékelőpozícióra vannak osztva.
Analóg és digitális sorkapcsok
ANALOG IN— 0–10 V analóg bemenet (pontosság ±5 %, jelentési küszöb 1 %)DIGITAL IN— száraz kontaktus / mágneses kapcsoló bemenet (True: −15 V és 0,5 V között, False: 2,5 V és 15 V között)VREF OUT— referenciafeszültség (max. 1 mA) potenciométeres érzékelők táplálásáhozVREF+R1 OUT— referenciafeszültség 10 kΩ pull-up ellenállással, NTC és fotoellenállás feszültségosztókhozGND× 2 — földvisszatérők
1-Wire busz
Három háromkapcsos csoport (VCC, DATA, GND) osztozik belsőleg egy közös 1-Wire adatvezetéken. Akár 5 DS18B20 szonda párhuzamosan köthető a közös buszra; alternatívaként egyetlen DHT22 érzékelő foglalhatja el a buszt (a DHT22 aktív állapotban blokkolja a OneWire keresést). A teljes VCC-kimenet 10 mA-re van korlátozva, ami elegendő öt DS18B20 szondához.
A vezeték maximális keresztmetszete minden sorkapcson 1 mm² (17 AWG).
Ne keverje a DHT22-t és a DS18B20 szondákat ugyanazon a buszon. A DHT22 blokkolja a OneWire enumerációt, és a gazda Shelly nem tudja újra felderíteni a buszt, amíg csatlakoztatva van.
Konfiguráció
A Shelly Sensor Add-On nem rendelkezik saját IP-címmel. A TapHome sablon importálása során az IpAddress paraméterbe a gazda Shelly IP-címét írd be (a Plus / Gen3 / Gen4 készüléket, amelyre az add-on fel van helyezve) — az alapértelmezett 192.168.0.1.
A teljes kommunikáció Gen2+ JSON-RPC API-n keresztül zajlik HTTP GET kéréssel a 80-as porton. Pollonként egyszer a sablon betölti a /rpc/Sys.GetStatus és /rpc/SensorAddon.GetPeripherals válaszát belső cache változókba, majd minden eszköz szkriptje a saját endpointját kérdezi (Temperature.GetStatus, Input.GetStatus vagy Voltmeter.GetStatus).
Kompatibilis gazdakészülékek
Az add-on a következő Shelly készülékekkel működik együtt (a gyártó kompatibilitási listája alapján):
- 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
A gazda Shelly firmware-ének elérhetővé kell tennie a SensorAddon szolgáltatást — régebbi Plus firmware verziókból ez hiányozhat. Frissítsd a gazdát a legújabb firmware-re, ha a web UI-ban hiányzik az add-on menü.
Add-on perifériák aktiválása
Az add-on-t egyszer kell konfigurálni a gazda Shelly webes felületén — a TapHome nem állítja be. A sablon importálása előtt végezd el a következőket:
- Helyezd rá az add-on kártyát a gazda Shelly add-on csatlakozójára, és kapcsold be a gazdát.
- Nyisd meg a gazda web UI-t a
http://{host-ip}/címen, és jelentkezz be. - Navigálj a Settings → Add-on menühöz és regisztráld az add-on-t (ez a háttérben meghívja a
Sys.SetConfig-otdevice.addon_type = "sensor"paraméterrel). Kérés esetén indítsd újra a gazdát. - Nyisd meg a Settings → Components → Peripherals menüt, és kattints a + gombra.
- Válaszd ki a periféria típusát — Temperature (DS18B20), Digital Input, Analog Input vagy Voltmeter.
- DS18B20 esetén kattints a Rescan gombra, pipáld be az észlelt szondákat, majd válaszd az Add and reboot opciót. Az első szonda a
100Component ID-t kapja, a második101-et, és így tovább. - Digital Input esetén állítsd a Mode-ot Switch vagy Button értékre (a sablon ebből a Component-ből olvassa a
state-et). - Analog Input és Voltmeter esetén az alapbeállítások megfelelőek — csak a név és a delta küszöb releváns.
A TapHome sablon rögzíti a Component ID-kat 100–103 értékre DS18B20-hoz és 100-ra a mágneses kontaktushoz, analóg bemenethez és voltmérőhöz. Perifériák hozzáadásakor a Shelly web UI-ban ellenőrizd, hogy a kiosztott ID-k megfelelnek-e ennek a számozásnak — ha törölsz és újra hozzáadsz egy perifériát, a Shelly a következő szabad ID-t adja, ami 103 fölé tolódhat, és a TapHome eszköz csendben leáll az adatfogadással.
Periféria eltávolítása előtt jegyezd fel a Component ID-ját. Ha egy DS18B20 szondát cserélsz, használd inkább az Edit → Update address műveletet a web UI-ban — így a Component ID változatlan marad.
A gazda Shelly-n ki kell kapcsolni a HTTP Digest Authentication-t — a TapHome nem küld hitelesített kéréseket. Hagyd hitelesítés nélkül, vagy korlátozd a hozzáférést hálózati szinten.
Eszközképességek
A sablon hét csak olvasható érzékelő eszközt csoportosít egyetlen HTTP modul alá, amely a gazda Shelly-t címzi.
Hőmérsékletszondák (DS18B20)
Négy DS18B20 OneWire hőmérsékletszonda érhető el, egy-egy a Component ID 100–103 értékeken:
- Temperature Sensor DS18B20 (100) — olvassa
/rpc/Temperature.GetStatus?id=100→tC(°C) - Temperature Sensor DS18B20 (101) — olvassa
/rpc/Temperature.GetStatus?id=101→tC - Temperature Sensor DS18B20 (102) — olvassa
/rpc/Temperature.GetStatus?id=102→tC - Temperature Sensor DS18B20 (103) — olvassa
/rpc/Temperature.GetStatus?id=103→tC
Minden eszköz rendelkezik egy felhasználó által konfigurálható Id egyedi változóval (az alapérték megfelel a pozíciónak). A lekérdezési időköz szondánként 15 másodperc. A Shelly web UI-ban finomhangolható minden szonda delta küszöbe (0,1–5 °C) és offsetje (±50 °C) a kalibrációhoz.
Mágneses kontaktus (digitális bemenet)
A Reed Contact (100) olvassa /rpc/Input.GetStatus?id=100 → state (boolean). A Shelly UI-ban a bemenetet Switch vagy Button módban kell konfigurálni (nem Analog vagy Count). Lekérdezési időköz: 2,5 másodperc. Az Id egyedi változó alapértéke 100.
Analóg bemenet
Az Analog Input (100) olvassa /rpc/Input.GetStatus?id=100 → percent, és 100-zal osztja, így a TapHome által várt 0,0–1,0 töredékre normalizálja. A bemenetet a Shelly UI-ban Analog módban kell konfigurálni. Pontosság ±5 %, jelentési küszöb 1 %. Lekérdezési időköz: 2,5 másodperc.
Vedd figyelembe, hogy a mágneses kontaktus és az analóg bemenet osztoznak a 100 Component ID-n — a Shelly hardverben az add-on-on csak egy digitális és egy analóg bemenet van, és az aktív módot a bemenet típusa határozza meg a web UI-ban (switch/button vs. analog). A TapHome-ban használd vagy a Reed Contact, vagy az Analog Input eszközt, de nem mindkettőt egyszerre.
Voltmérő
A Voltmeter (100) olvassa /rpc/Voltmeter.GetStatus?id=100 → voltage (V). A tartomány 0–10 V, ±5 % pontossággal és 0,1 V jelentési küszöbbel. PacketParserVariable-ként modellezve sensor képességgel — a nyers feszültség skalár értékként jelenik meg, nem önálló voltmérő eszköztípusként. Lekérdezési időköz: 15 másodperc.
További képességek
A Shelly Sensor Add-On natívan támogat egy DHT22 hőmérséklet- és páraérzékelőt is (egyetlen szonda, amely a gazdán párosított temperature:100 és humidity:100 Component-eket hoz létre). A TapHome sablon mind a négy DS18B20 eszközön átvezeti a hőmérsékletet, de a páraolvasó szkriptet NaN értékre rögzíti — a DHT22 páratartalom tehát nem érhető el. Ha páratartalomra van szükség, bővítsd a sablont egy külön read szkripttel a /rpc/Humidity.GetStatus?id=100 végpontra.
Két további képesség létezik hardver/firmware szinten, de nem tartozik ehhez a sablonhoz: az ötödik DS18B20 pozíció (a Shelly busz akár öt szondát támogat; a sablon csak a 100–103 ID-kat olvassa), valamint a digitális bemenet impulzusszámláló módja (counts.total, counts.by_minute, freq), amelyhez a bemenetet type=count értékre kell állítani a Shelly UI-ban. Mindkettő pótolható egy jövőbeli sablonfrissítésben.
Hibaelhárítás
A gazda Shelly nem válaszol
- Ellenőrizd, hogy a gazda Shelly Wi-Fi-hez van csatlakoztatva és érvényes IP-címe van.
- Próbáld meg a gazda mDNS hostnevét használni (pl.
shellyplus1pm-AABBCCDDEE.local) az IP helyett — az IP egy DHCP renew után megváltozhatott. Az add-on a gazda hostnevét örökli, saját nincs. - Nyisd meg böngészőben:
http://{host-ip}/rpc/Shelly.GetDeviceInfo— ha JSON-nal válaszol, a gazda elérhető. - Ellenőrizd, hogy a TapHome CCU és a gazda Shelly ugyanazon a hálózaton / VLAN-on van.
- Győződj meg róla, hogy a HTTP Digest Authentication ki van kapcsolva a Shelly web UI-ban.
A szenzorok nem mutatnak adatot
- Nyisd meg a Shelly web UI → Components → Peripherals menüt. Ellenőrizd, hogy a periféria pontosan azzal a Component ID-val szerepel, amelyet a sablon vár (
temperature:100–103,input:100,voltmeter:100). Ha az ID103fölött van vagy eltolódott, számozd újra a perifériákat úgy, hogy a megfelelő sorrendben törlöd és újra hozzáadod őket, vagy módosítsd a sablont az ID-khoz. - DS18B20 esetén: kattints a Rescan gombra a DS18B20 periféria sorában — a buszcímet fel kell ismernie. Ha N/A-t mutat, ellenőrizd a VCC/DATA/GND bekötést és a 10 kΩ pull-up ellenállást a
DATAvonalon (egyes generikus DS18B20 kártyák ezt kihagyják; a Shelly belsőleg biztosítja). - Tesztelheted a végpontot közvetlenül:
GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. A válasznak tartalmaznia kell egy nem nullatCértéket. - Periféria hozzáadása vagy eltávolítása után indítsd újra a gazda Shelly-t. A Componentek csak újraindítás után jelenhetnek meg.
Az analóg bemenet nullát olvas
- Ellenőrizd, hogy a bemenet
typeértéke a Shelly UI-bananalog-ra van állítva (nemswitch,buttonvagycount). A sablon apercentmezőt olvassa, amely csak analóg módban kerül feltöltésre. - Ellenőrizd a bekötést — egy 0–10 V forrásnak kell lennie az
ANALOG INésGNDközött. Potenciométeres érzékelőknél (NTC, fotoellenállás) használd aVREF+R1 OUT-ot (beépített 10 kΩ pull-up-pal) aVREF OUThelyett. - Ne feledd, hogy a TapHome az értéket 0,0–1,0 töredékként kapja meg (a sablon a
percent-et 100-zal osztja).
Hiányzik a DHT22 páratartalom
Ez a sablon szándékos korlátja — a readhumidity szkript minden DS18B20 eszköz pozícióban NaN-ra van rögzítve. Az add-on hardver támogatja a DHT22-t, de a páratartalom TapHome-ban való megjelenítéséhez a sablont ki kell bővíteni egy külön eszközzel, amely a /rpc/Humidity.GetStatus?id=100 → rh végpontot olvassa. A DS18B20 és a DHT22 nem lehet egyszerre ugyanazon a buszon — ha DHT22-re váltasz, távolítsd el a DS18B20 szondákat.
Az ötödik DS18B20 szonda nem látható
A sablon csak a 100–103 ID-kat olvassa. Egy ötödik szonda, amelyet a Shelly web UI-ban temperature:104 néven regisztráltak, a gazdán létezik, de a TapHome nem olvassa. Vagy helyezd át a számodra fontos szondát egy 100–103 pozícióba (töröld és rendben add hozzá újra), vagy bővítsd a sablont egy ötödik eszközzel, amely az id=104 végpontot célozza.